This allow to move the light evaluation up in the deferred pipeline and
avoid coupling two different steps into one. This add more flexibility
in the implementation of deferred lighting and indirect lighting
algorithms.
This splits the reflection probe evaluation to its own
shader since it is quite different now.
Pull Request: https://projects.blender.org/blender/blender/pulls/112507
For Blender 4.0 only, 3.3 and 3.6 keep using the older Xcode version.
The new linker in Xcode 15 gives many warnings due to duplicated
libraries, generated by CMake to resolve circular dependencies. For now
use the old linker to silence these warnings.
Remove legacy flags for libc++, this is the default for a long time and
generates warnings with the new linker.
Reason for upgrade is to take advantage of MetalRT curve support.
Pull Request: https://projects.blender.org/blender/blender/pulls/110243
This moves the pre-computation offline and store the pre-computed
table in the binary. The pre-computed tables are quite small and are
not a concern with respect to binary size increase.
This rewrites the precomputation to use manually fitted
approximations for both burley and random walk.
The approximations fix a discrepancy between cycles and EEVEE
SSS translucency look. The absolute maximum error is below 2%.
I believe better results could be achieved with automatic fitting
tools.
Note that Cycles Burley translucency profile has some issues as it
does not give a smooth profile. The profile is biased near the end
of the lower radii. For this reason, the fit was done on a white
diffuse with (1,1,1) radii which does not exhibit this artifact.
Note that while this adds the profile for random walk, it isn't
currently used because the profile type is not yet passed down
the deferred path.
The fitting data can be found attached to this PR.
Pull Request: https://projects.blender.org/blender/blender/pulls/112512
To create a connection with the icon that shows up in
ID templates and decorators once library is overriden.
Affects Outliner context and Object menu in 3D Viewport.
Similar to the Asset menu.
This allow to move the light evaluation up in
the deferred pipeline and avoid coupling two
different steps into one. This add more
flexibility in the implementation of
deferred lighting and indirect lighting
algorithms.
This splits the reflection probe evaluation
to its own shader since it is quite different
now.
The goal is to reduce redundancy by abstracting over the different types of node
tree zones. This makes it easier to add new zone types and makes the intend of
code more clear. For example, now it is more obvious what code deals with zones
in general and what does simulation specific things.
Pull Request: https://projects.blender.org/blender/blender/pulls/112531
It was possible to access a mutable drawing from a const GreasePencil
object. This sort of mistake is possible because DNA requires using raw
pointers.
Ensure the string isn't null terminated before len, if this happens
it's likely an error calculating the length argument. Since the length
is passed to memcpy it could result in reading outside `str` bounds.
There was one case where the string was duplicated then grew by 1 byte
afterwards. Replace this with an allocation since it's an uncommon
operation, not especially useful to support.
Make type conversions explicit so it's clear when char/char32_t/uint
values are being mixed, also use int instead of size_t for cursor
functions because the cursor is an int - which caused many int/size_t
comparisons.
This reverts commit cabf935afb.
After more investigation I have realized, that this change introduces
another regression and more importantly it is not suited for RCS keymap.
Slight corrections to embolden, mostly removing any vertical expansion
and better matching "wght" variable axis. Also improved comments for
all the glyph transform routines.
Pull Request: https://projects.blender.org/blender/blender/pulls/112592
Use Select Box tool by default.
After 618f39fca2 box select operator is not run with tweak tool. This
is regression for sequencer, but the new behavior is consistent with
other editors.
Replace the 'armature layers' operator (which would toggle visibility of
armature layers) with the 'bone collections' menu (which allows assigning
to and unassigning from bone collections). The functionality of these
operators is quite different, but it unifies the behaviour between
armature pose and edit modes.
Selecting which bone collections are visible in the 3D Viewport may be
reintroduced after nestable bone collections are implemented. Otherwise
the list of bone collections will likely become unwieldy.
This is a compatibility breaking change to rename all usages of the name
`asset_library_ref` with `asset_library_reference`. Brecht recently
suggested that such abbreviations should be avoided in public API names.
There's no need to use the asset handle type here anymore, it can just
use the asset representation type that is supposed to replace it.
Part of #102877 and #108806.
f6a6b27ac1 made the asset representation type available through context
wherever asset handle was previously. This moves us closer to replacing
the asset handle type.
Part of #102877 and #108806.
Line art doesn't take sequencer scene override camera into account when
computing line results, now it will try to get override camera info from
render and use that camera if line art override camera itself isn't set.
This will however not fix VSE preview line art result, since the preview
render doesn't give actual camera object, but rather uses a set of clip
planes and matrix info, thus it's probably not possible to do preview
camera override under current architecture.
Pull Request: https://projects.blender.org/blender/blender/pulls/110287
The asset handle type is supposed to be replaced by the asset
representation type. It is designed for the asset system as opposed to
the file browser backend. With d421ebac5e, d04cd3f3e6 and f6a6b27ac1, it
can now do everything that is needed in Python to be a replacement.
591a1ae323 removed all usages of these members in the asset handle and
the file entry wrapped by the asset handle. All this should now be
accessed via the `bpy.types.AssetRepresentation` type instead, which is
available everywhere the `AssetHandle` type was available before.
Part of #102877 and #108806.
The asset handle type is supposed to be replaced by the asset
representation type. It is designed for the asset system as opposed to
the file browser backend. With d421ebac5e, d04cd3f3e6 and f6a6b27ac1, it
can now do everything that is needed in Python to be a replacement.
With this commit the asset handle type and the file handle type it uses
is almost entirely replaced in Python files (only for the asset view
template we require a collection property taking asset handles still,
for internal reasons.)
Part of #102877 and #108806.