Adds a second camera property to the scene that is used only by geometry nodes in the Active Camera node. Necessary for our new environment file pipeline
- Version off shader compile parsing so gooengine uses BLENDER_REQUIRE still
- Localize the common libs that goo engine uses
- Fix library submodules
- Restore datafiles
Patches originally written by Joseph and Thorn. Thank you!
New color ramp node with a better hue shifting interpolation.
Kept separate to avoid versioning issues
Patches originally written by Joseph and Thorn. Thank you!
Adds the film transparent checkbox to the world panel for easy access
Puts the Topology Mirror boolean as a button next to the axis
Adds the scene camera selector to the top bar for easy access
Since the tangent attributes are now recomputed inside the loop over uv
layers, looping directly over this mesh data is dangerous, as computing
the tangents attributes might trigger some re-allocations, leading to
invalid memory accesses when accessing the next uv layer.
Solved by caching uv layers' names in a list beforehand, the uvlayers
themselves are not even needed for tangent data handling.
Regression from e0a9e98cbd.
Only last tangents layer was written to all tangent layers before this fix.
Code before fix evaluate tangents for all layers into mesh loops data (which keeps data only for one layer) and then writes information about 'each' layer which is actually only the last one.
Code after fix evaluates tangents in the beginning of the loop that exports tangent data so that data for correct layer is being written into fbx.
Co-authored-by: Andrey Zhitkov
Pull Request: https://projects.blender.org/blender/blender/pulls/141839
This change moves the tests data files and publish folder of assets
repository to the main blender.git repository as LFS files.
The goal of this change is to eliminate toil of modifying tests,
cherry-picking changes to LFS branches, adding tests as part of a
PR which brings new features or fixes.
More detailed explanation and conversation can be found in the
design task.
Ref #137215
Co-authored-by: Brecht Van Lommel <brecht@blender.org>
Pull Request: https://projects.blender.org/blender/blender/pulls/137219
Pull Request: https://projects.blender.org/blender/blender/pulls/138487
Make the 'Available' keying set look at the F-Curves for the assigned
slot, instead of the backward-compatible API (which only sees the F-Curves
for the first slot).
Pull Request: https://projects.blender.org/blender/blender/pulls/137131
The "new/duplicate" button in the Action Slot selector did not actually
duplicate, and always acted as a "new" button.
This introduces the RNA function `ActionSlot.duplicate()`, which takes
care of duplicating all the animation data associated with the slot as
well. The semantics of this function should remain valid in the
future, when Actions support multiple layers & strips. Note that this
new function does not assign the slot, it just duplicates it and its
data. The assignment of this duplicated slot is done in Python,
through the already-existing API for this.
Pull Request: https://projects.blender.org/blender/blender/pulls/137087
Previously when an action was baked, the slot name was not retained.
This causes problems when switching between actions because the slot
will not automatically be assigned.
This is now fixed by ensuring that the name of the last assigned slot
is used to create the new slot.
----
Backported from [#136814: Fix: Retain slot name when baking action](https://projects.blender.org/blender/blender/pulls/136814)
Change is exactly the same, except for the unit test code because the test in question doesn't exist for 4.4
Pull Request: https://projects.blender.org/blender/blender/pulls/136925
When accessing the key-map for tooltips it's important to use
the final "user" keymap, combine from "active" & "default".
Using the active keyconfig would only keys from key-maps that had
been modified.
Fix a few small mistakes in the action baking code:
- Assigning an action slot should only happen after the action itself has
been assigned.
- `_ensure_channelbag_exists()` didn't actually ensure the channelbag
always exists; now it also creates the layer & strip if necessary.
Pull Request: https://projects.blender.org/blender/blender/pulls/135853
draw_attribute_warnings() called in every attribute panel code.
Following function iterates through entire attribute list
mesh.attributes along with vgroup list to identify the colliding name.
This results in printing collision names in irrelavant panels. Now fixed
by passing relevant attributes to compare in `draw_attribute_warnings`.
First find colliding names, add them to the list if they exists in current attribute list
passed to the function
Pull Request: https://projects.blender.org/blender/blender/pulls/135495
Some wheels don't use "Purelib", meaning the directory layout of the
wheel needs to be manipulated on installation.
Add partial support for Python's "Binary distribution format" when
Purelib is false, since paths such as `includes` & `scripts` are not
remapped into user accessible locations - they will remain in the
wheels "*.data" directory, these could be supported if it's needed
although it seems like a fairly niche use case.
Ref !135709
The underlying issue was that the code was trying to directly assign a Python
dictionary to an add-on defined Group Property accessed via `[]` syntax, like
this:
```
to_bone['rigify_parameters'] = param_dict
```
That only works if 'rigify_parameters' does *not* already exist according to the
`[]` lookup, so this was failing whenever it already did.
This PR fixes that by simply deleting the property first when it already exists.
Co-authored-by: Ayoub ibn Muhammad <cl3m3c7@riseup.net>
Co-authored-by: Sybren A. Stüvel <sybren@blender.org>
Pull Request: https://projects.blender.org/blender/blender/pulls/135233
When baking custom properties that were named exactly the same
as a property already in Blender (in this case `scale`), it would fail.
The issue was introduced with eee32726c7 where the goal was
to not key addon defined properties.
The problem with that approach was that `obj.bpy_rna.properties`
not only contains addon defined properties but also all that are native to Blender.
So the rna path would be created to be identical as for e.g. transform properties.
The fix is to test the property for `is_runtime` which is true for addon
defined properties but false for blender internal properties
I tested with the test file of #121349 to confirm that doing so
doesn't bring that original bug back.
Pull Request: https://projects.blender.org/blender/blender/pulls/135297
When accessing the key-map for tooltips it's important to use
the final "user" keymap, combine from "active" & "default".
Using the active keyconfig would only keys from key-maps that had
been modified.
This commits fixes a type error issue when reporting that a addon was
designed for a version of Blender newer than the current one.
Thanks to @Rakete for the fix.
Ref: !135392
Commit 8ff8fc4859 changed the context for the modes in Merge Nodes
and Change Nodes operators to Nodetree. The enum items were thus
extracted using this context, but the UI Menus were not updated to
reflect this change and a few items were no longer translated.
This commit fixes the issue by using the same translation context for
the menus' drawing.
`IDProperty` of keyitem and operator in UI were not matching in
`wm_keymap_item_find_in_keymap()`. Now fixed by removing explicit
property value from UI menu
Pull Request: https://projects.blender.org/blender/blender/pulls/134724