For repeat / extend / mirror mode, both wrap and read_clip functions did
the bounds check. Removing it improves performance between 0.5% and 1.5%
in the classroom scene in one test. Clip mode is unchanged.
Pull Request: https://projects.blender.org/blender/blender/pulls/109304
When using ATI GPU on MacOS/Metal compilation of Eevee shaders crashed due to an infinitive
loop in the compiler backend. This change fixes this by using a more reliable loop that
ensures that the loop will be finite.
Thanks for the Apple developers working on finding the root cause and Michael Parking White
for the initial fix.
Fixes#107322Fixes#107451
Pull Request: https://projects.blender.org/blender/blender/pulls/109358
The Undo History menu displays each undo step's name. These are either
operators or property names. Operators are translated upon display,
and they use the operator name. Currently, many of them are not
translated because they do not use the proper translation
context.
This commit changes the translation context to
BLT_I18NCONTEXT_OPERATOR_DEFAULT ("Operator").
Pull Request: https://projects.blender.org/blender/blender/pulls/108872
Since d8388ef36a, the "frame_change_post" handler could not be used
anymore to detect when animation playback stopped.
This functionality is needed by certain addons though and is generally
usefull to have, so this is now added.
Related reports : #109168, #109218
Pull Request: https://projects.blender.org/blender/blender/pulls/109232
Add Sculpt support for the new Draw Manager
and implement Sculpt rendering in Workbench Next.
Instead of using a callback approach, it's now possible to
retrieve a vector of GPUBatches and their material index,
so engines can use them as they see fit.
Pull Request: https://projects.blender.org/blender/blender/pulls/109294
The #109197 introduced the following error to the documentation
builders:
Error: context key 'grease_pencil' not found in context_type_map; update ../doc/python_api/sphinx_doc_gen.py
To reproduce the issue locally the following command could be
used:
```
./bin/Blender.app/Contents/MacOS/Blender \
--background \
--factory-startup \
-noaudio \
--python ../../blender/doc/python_api/sphinx_doc_gen.py -- \
--output ./sphinx/build_doc_api \
--api-changelog-generate \
--api-dump-index-path \
./sphinx/api_dump_index.json
```
Note that even after this fix the command from above would still
fail locally because the script expect information from previous
Blender version to be in the index. It is possible to bypass by
manually editing api_dump_index.json and adding 3.6 key.
Pull Request: https://projects.blender.org/blender/blender/pulls/109365
This essentially replaces the `ed::curves::select_ends` function by using a new masking function (`ed::curves::end_points`) and manipulating the selection attribute directly in the operators.
Pull Request: https://projects.blender.org/blender/blender/pulls/109293
- When string join truncates, break out of the outer loop too.
- Use BLI_string_len_array when calculating the array size for
BLI_string_join_array_by_sep_charN.
- Add tests.
Compute edges of image once based on luminance instead of all 3 channels.
This also gives a modest performance improvement of 8%. Measured on intel i9 CPU using a 1920 x 3199 image.
Pull Request: https://projects.blender.org/blender/blender/pulls/108858
This reverts commit 537fdbbfa2f6081bf8266b06a8a0ee78caa50ce8.
Somehow the revert in 9b708c8650dfe5e600ad486e8c944e8445aae546
was undone by the next merge from the 3.6 branch,
9876ff183f5323b7b15e60441d85b70443b27a33.
This patch implements the Keying node for the realtime compositor. To
ease the implementation, some morphological operators were moved into
algorithms and a mechanism to steal data between results was added to
the Result class.
Pull Request: https://projects.blender.org/blender/blender/pulls/108393
Avoid BLI_strcpy_rlen use as this has the same problems as strcpy
(it just returned the length which is useful at times).
Use memcpy instead when the size is calculated immediately beforehand.
Other uses of have been replaced by BLI_string_join_array that prevents
buffer overruns by taking the destination buffer length.
The algorithm that transforms space from local normal to world space was incorrect.
The problem is only observed with Align Rotation to Target on objects
with shear transformation.
Also rename:
- `SCE_SNAP_MODE_FACE_NEAREST` to `SCE_SNAP_INDIVIDUAL_NEAREST`
- `SCE_SNAP_MODE_FACE_RAYCAST` to `SCE_SNAP_INDIVIDUAL_PROJECT`
And arrange the enums in numerical order.
This brings back the `Fill Volume` and `Exterior Bandwidth` inputs in
the Mesh to Volume node and modifier. Those existed in Blender 3.5 but
were removed in 700d168a5c7f44daa623 because the way they were
implemented did not use the openvdb api in the right way.
While it's rare that people turned off the `Fill Volume` option, the
exterior bandwidth was used more and can have significant impact on
the result. Furthermore, there is no clear replacement for the
functionality.
Therefore, we decided to roll back the changes in 3.6 to avoid breaking
compatibility. We intend to keep the changes in 4.0 for now, but need
to work on a more clear short term replacement for the removed
functionality.
Pull Request: https://projects.blender.org/blender/blender/pulls/109297
This is cached in Render, and gets cleared along with render pass GPU
textures when there is no editor open using it, or a new final render is
started.
The context and texture pool are cached. But the evaluator is re-created
every time as this only runs on compositing node changes, which require
recreating it anyway (unlike the viewport where e.g. camera navigation
does not need a new evaluator).
Pull Request: https://projects.blender.org/blender/blender/pulls/108909
This brings back the `Fill Volume` and `Exterior Bandwidth` inputs in
the Mesh to Volume node and modifier. Those existed in Blender 3.5 but
were removed in 700d168a5c7f44daa623 because the way they were
implemented did not use the openvdb api in the right way.
While it's rare that people turned off the `Fill Volume` option, the
exterior bandwidth was used more and can have significant impact on
the result. Furthermore, there is no clear replacement for the
functionality.
Therefore, we decided to roll back the changes in 3.6 to avoid breaking
compatibility. We intend to keep the changes in 4.0 for now, but need
to work on a more clear short term replacement for the removed
functionality.
Pull Request: https://projects.blender.org/blender/blender/pulls/109297