16142 Commits

Author SHA1 Message Date
Brecht Van Lommel
aab29c1ba6 Merge branch 'blender-v5.0-release' 2025-10-17 16:42:22 +02:00
Damien Picard
58b8ae1717 UI: Fix a few typos
- "Acion Slot" -> "Action": typo.
- "Specifies the input node used the created zone" -> "by the created
  zone": typo.
- "No reference available {!r}, Update..." -> "update": lower case.
- "uninitialized file-list" -> "Uninitialized": sentence case.

Some issues reported by Alexandr Fatih.

Pull Request: https://projects.blender.org/blender/blender/pulls/148265
2025-10-17 16:13:30 +02:00
Jacques Lucke
96d2f3430f Merge branch 'blender-v5.0-release' 2025-10-16 19:20:23 +02:00
Clément Foucault
6b0f57facf Fix #142285: 3D cursor placement ignores unselectable objects
This was caused by 3dfec1ff73
which introduce the new behavior. This was to fix workflows
using a lot of semi-transparent objects which made nagivation
difficult.

This patch first roll back to the previous behavior: The
unselectable object will affect depth-aware operators.

This patch introduces a new visibility property to remove
the influence of objects in all depth picking operations
and selection operations. However the object is still
selectable through non-drawing selection operators
(e.g. select by material) and through the outliner.
This is to adress the aforementionned navigation issues.

Pull Request: https://projects.blender.org/blender/blender/pulls/146706
2025-10-16 19:17:18 +02:00
Julian Eisel
2e76bb47bb Refactor: BKE: Move icon header to C++
Was trying to use a C++ type (`blender::Span`) in the header but
couldn't. I would rather not use a less safe raw pointer to a buffer.

Pull Request: https://projects.blender.org/blender/blender/pulls/148214
2025-10-16 17:45:26 +02:00
Lukas Tönne
443ced685e Merge branch 'blender-v5.0-release' 2025-10-16 12:15:44 +02:00
Damien Picard
a989592654 I18n: Manually extract more node socket enum items
These enum items are only used in node socket declarations, not
exposed to RNA, and not extracted automatically for translation.

Reported by Ye Gui in #43295.

Pull Request: https://projects.blender.org/blender/blender/pulls/148083
2025-10-16 10:59:09 +02:00
Damien Picard
8bf46781b0 I18n: Translate brush direction enum items
Brush directions are dynamic, the enum can have different options
depending on brush type. This commit manually extracts the options.

The labels use the "Brush" translation context, to disambiguate
"Deflate", the operation, with the compression algorithm.

Also `smooth_direction_items` is moved inside
`rna_Brush_direction_itemf()`, since it is used only there, same as
the other brush direction items.

Reported by Ye Gui in #43295.

Pull Request: https://projects.blender.org/blender/blender/pulls/148081
2025-10-16 10:13:17 +02:00
Bastien Montagne
39cbeee0ce Merge branch 'blender-v5.0-release' 2025-10-15 16:36:55 +02:00
Damien Picard
cf7713aac6 I18n: Disambiguate "Second", the unit, not the ordinal
Reported by Alexandr Fatih in #43295.

Pull Request: https://projects.blender.org/blender/blender/pulls/148085
2025-10-15 16:26:48 +02:00
Damien Picard
5e6ea2fa78 I18n: Disambiguate "Value" in the context of colors 2025-10-15 16:26:46 +02:00
Hans Goudey
d0dd9036e8 Merge branch 'blender-v5.0-release' 2025-10-14 10:51:26 -04:00
Damien Picard
f4dd22b7d9 Cleanup: Remove unused, or deduplicate node enum items
- `rna_enum_node_float_compare_items` has not been in use since
  943b919fe8, remove it.
- `rna_enum_node_combsep_color_items` is defined twice, deduplicate
  it.

Pull Request: https://projects.blender.org/blender/blender/pulls/148054
2025-10-14 16:51:03 +02:00
Nika Kutsniashvili
75eaecf350 UI: Dope Sheet: Custom theme color for interpolation modes
Split the "Interpolation Line" theme property into three for each
interpolation mode, and use them accordingly. In the current theme
refactor, almost all theme properties of the dope sheet are getting
either removed (unused), or moved (shared). This decluttering opens up
the possibility to allow more theming, and let artists read the Dope
Sheet better.

## Avoiding Confusion

There's two "Bézier" interpolation types:
- Called "Bézier" in the interpolation type menu, and
- Called "Bézier" in the code, for the types that are labeled as
  **"Easing" and "Dynamic"** in the interpolation type menu.

Since this commit is about the interpolation lines, which are **not**
drawn for the former, **this PR only covers Constant, Linear, and the
latter form of Bézier interpolation types.**

Pull Request: https://projects.blender.org/blender/blender/pulls/144255
2025-10-13 18:01:21 +02:00
Falk David
2a88d748af Merge branch 'blender-v5.0-release' 2025-10-13 17:33:39 +02:00
Falk David
7026911502 Fix: Core: Crash when trying to link shapekey from driver target
Found while trying to append the scene from this file:
https://studio.blender.org/characters/rain/showcase/1/

Before calling `id_lib_extern` when setting the id in the driver target,
check that the ID is linkable.

Pull Request: https://projects.blender.org/blender/blender/pulls/147829
2025-10-13 17:33:08 +02:00
Hans Goudey
1d372bdc8b Refactor: Split CustomData attribute and newer attribute headers
Avoid including DNA_customdata_types.h everywhere we include the
attributes header. Over time the older attribute header should be
used less and less.

Part of #122398

Pull Request: https://projects.blender.org/blender/blender/pulls/147980
2025-10-13 15:38:26 +02:00
Dan Oak
633102c219 Fix: add label to View Center property
For unknown reasons, this property did not have a label before.

Pull Request: https://projects.blender.org/blender/blender/pulls/147712
2025-10-13 13:11:15 +02:00
Hans Goudey
9e89f8fa06 Merge branch 'blender-v5.0-release' 2025-10-12 10:55:30 -04:00
Hans Goudey
8c4c92f304 Fix #147907: Geometry Node Viewer Item "Auto Remove" toggle crash
The RNA property had an incorrect update callback assigned. The
update callback assumed the RNA pointer data was a node rather
than a node's viewer item.
2025-10-12 10:51:08 -04:00
Falk David
258fe41300 Merge branch 'blender-v5.0-release' 2025-10-10 14:16:13 +02:00
Falk David
15d3ef54ee Fix #147653: Deleting a scene while playing it back causes a crash
The `ScreenAnimData` which is saved to the animation timer on the
screen during playback stores a pointer to the scene that is playing.
When deleting a scene, the next time the timer is triggered this will
result in an invalid pointer de-reference.

This fixes the crash by stopping the playback when a scene is deleted.

Pull Request: https://projects.blender.org/blender/blender/pulls/147687
2025-10-10 14:15:45 +02:00
Campbell Barton
61671f2292 Merge branch 'blender-v5.0-release' 2025-10-10 14:02:42 +11:00
Campbell Barton
578a62cc62 RNA: expose the language enum to Python scripts
As far as I know it wasn't possible for scripts to access language
ID's and their names using documented API's.

Ref !147769
2025-10-10 14:01:28 +11:00
Bastien Montagne
3aed0aa7ba Merge branch 'blender-v5.0-release' 2025-10-09 12:10:58 +02:00
Damien Picard
22f339037a I18n: Translate node tree subtypes
In 73fcbaf7c4, the `node_tree_sub_type` enum was given a custom item
function. The items now need to be extracted manually.

In addition, the translation context for this property, "ID", was
removed since it was not useful at a glance, and likely added by
mistake.

Reported by Ye Gui in #43295.
2025-10-09 12:09:56 +02:00
Hans Goudey
8a903c3eec Refactor: Reorder attribute owner checks to handle mesh first
On its own this change is just noise and not really worth it. The point
is to make a future diff for #122398 smaller and more legible. Also it's
semantically more consistent with the way we usually handle early
returns: the "special case" comes first, then the expected normal path
continues un-indented.
2025-10-09 03:24:56 +02:00
Harley Acheson
2eaac0ad74 Fix #147574: Icon_Group Use Instead of Icon_Outliner_Collection
We have icons that represent specific individual collections. like
Icon_Outliner_Collection for a default (uncolored) collection, and
Icon_Collection_color_x for ones with colors. For "collections" as a
general thing though we have icon_group. Sometimes we confuse the two,
for example the list of tabs to show in Properties uses a different
icon than the actual category icon. This PR fixes the complaint by
using the correct icon for each of these purposes.

Pull Request: https://projects.blender.org/blender/blender/pulls/147652
2025-10-08 23:04:11 +02:00
Harley Acheson
765e38677a Fix: Default Collection Color Always White
With #126307 the default collection color (not set to a specific one),
set in Icon Colors / Collection, is always white. This PR restores the
correct behavior of following the theme color (an error in the SVG
source). And does so immediately (change in property_update).

Pull Request: https://projects.blender.org/blender/blender/pulls/147651
2025-10-08 20:58:42 +02:00
Bastien Montagne
89efaee069 Fix #147565: Crash in 'make liboverride' due to threading issues in geonodes.
This is the 'safe and simple' aspect of the fix: prevent `node_warnings`
RNA property of the Node modifier to be overridable.

Its access is 100% not thread safe currently - and it makes no sense to
have this reuntime data overridable anyway!

Another side of the issue will be fixed in a separate commit, for main
only, as it affects quite deeply the behavior of viewlayer resync, and
fixes some unrelated logical issues in the current code.
2025-10-08 15:29:26 +02:00
Andrej730
dec032e12e Anim: Indicate Parent Inverse Matrix State in UI
Show the Parent Inverse matrix in the Object properties, Transform
panel. The matrix is shown decomposed as location/rotation/scale.

Pull Request: https://projects.blender.org/blender/blender/pulls/113364
2025-10-08 11:13:24 +02:00
Christoph Lendenfeld
aef8a05701 Anim: Remove selection rna properties of Bone
With #146102 the selection state of pose bones was moved to
the pose bone itself and syncing code was introduced that
ensures the selection state between pose- and edit mode matches.

While the syncing happens via the `Bone` struct, the flag is
always overridden from either the `EditBone` or the `bPoseChannel`.
Since the selection state of the `Bone` is not  used for  operations anymore
there is no point in keeping it.

In a way this doesn't break backwards compatibility more than
it already was. It's just more visible now because it will actually error.

Pull Request: https://projects.blender.org/blender/blender/pulls/147597
2025-10-08 09:41:51 +02:00
Campbell Barton
f4308aa2d0 UV: remove per-UV-map selection data
Replace per UV map selection with a single UV selection for all UV's.
This uses the same data as UV sync select, meaning that it's no longer
possible to keep a different selection when sync-select is disabled.

There is a minor improvement to functionality - previously not possible
to de-select a single face surrounding by selected faces.
Now this is possible because true face selection is supported.

The selection from the active UV-map is converted to use the shared
selection data.

Ref !147523

Co-authored-by: Hans Goudey <hans@blender.org>
2025-10-08 15:05:20 +11:00
Campbell Barton
0fcbae8c00 Cleanup: spelling, duplicate terms (check_spelling_*)
Also add colon after argument params.
2025-10-07 23:55:12 +00:00
Christoph Lendenfeld
a09d0cfd8c Anim: Move pose bone selection state to bPoseChannel
Move the selection flag for pose bones, from the (edit)bone to the
pose bone.

Previously having multiple instances of armatures in pose mode at the
same time caused issues because selecting a pose bone on one armature
would automatically select it on all instances of it.

This is now fixed since the selection state is stored on the pose bone
(Object level) Doing so breaks API compatibility with 4.5 since the
RNA property on the Bone no longer affects the pose bone. Instead,
there is a new property on the pose bone for that.

Due to this change, some runtime flags for the transform system also
had to be moved to the pose bone. This is due to the fact that these
flags are used by the transform system to pass information between
functions. If we keep the flag at the bone level, this wouldn't work
with armature instances. See `bPoseChannelRuntimeFlag`

Fixes #117892

Pull Request: https://projects.blender.org/blender/blender/pulls/146102
2025-10-07 19:59:36 +02:00
John Kiril Swenson
76c03744a8 VSE: Add render options for sequencer scene and active scene
Addresses #146305.

Ever since moving to the "sequencer scene" paradigm, attempting to
render an image or animation when a sequencer with strips is present
often seems to outright ignore the sequencer in most cases. This is
because the sequencer scene usually differs from the active scene (which
is the true render target), so one must first switch their active scene
to the sequencer scene before rendering.  This is confusing and
seems like a regression in behavior. To improve clarity, this patch does
the following:

When a sequencer scene with at least one strip (and the sequencer step
enabled in the pipeline) exists in the current workspace, new options
"Render Sequencer Image" and "Render Sequencer Animation" appear.  These
options may be invoked by alt-F12 and ctrl-alt-F12, respectively.

Additionally, if such a valid sequencer scene is the same as the active
scene, then only the regular render options are listed, since in this
case they are identical to the sequencer render operators, meaning F12
still works predictably.

To switch back and forth between sequencer and main scene render
outputs, a new toggle has been added to the image editor to "Show
Sequencer Scene" output. This button only appears for the render result
if there is a valid sequencer scene that differs from the active scene.

Pull Request: https://projects.blender.org/blender/blender/pulls/146934
2025-10-07 18:12:08 +02:00
Falk David
0c18c1cfc2 Anim: VSE: Add overlay to visualize scene strip range when using scene syncing
This adds an overlay to the animation editors to visualize the current scene strip
in and out points in the scene timeline when the `Sync Scene Time` option in
the sequencer is used.

* Adds an overlay toggle + panel to the dopesheet.
* Adds a new theme setting (for the overlay) under
  `Common` > `Animation` > `Scene Strip Range`.
* Adds the overlay drawing to the dopesheet.

Pull Request: https://projects.blender.org/blender/blender/pulls/146165
2025-10-07 17:34:47 +02:00
Cartesian Caramel
b67dd35e1f Constraint: order Geometry Attribute alphabetically in menu
Reorder the constraint menu to correctly place the Geometry Attribute
constraint.

Pull Request: https://projects.blender.org/blender/blender/pulls/147552
2025-10-07 17:32:20 +02:00
Brady Johnston
56bb70fee8 Geometry Nodes: Advect Grid node
Given a grid of velocities, this node advects the values of the input
grid. Different options for integration scheme and clamping are
exposed. Currently their names are just as defined in OpenVDB.

Pull Request: https://projects.blender.org/blender/blender/pulls/147273
2025-10-07 16:19:19 +02:00
Cartesian Caramel
8f41d46d74 Constraint: Geometry Attribute
Add a new constraint called "Geometry Attribute", which directly
samples vector, quaternion, or 4x4 matrix attributes from geometry and
applies these to an object's or bone's transform.

This can be used to transfer data generated by geometry nodes to the
object or bone level. By default the constraint will sample a vector
on the vertex domain. The default attribute is `position` for
simplicity, but the attribute value does not have to have anything to
do with neither the transform of the geometry object nor the geometry
itself.

Pull Request: https://projects.blender.org/blender/blender/pulls/136477
2025-10-07 15:14:22 +02:00
Nika Kutsniashvili
f145e1f7e2 Anim: Time jump operator
Adds a new operator that jumps time by a given number of frames or seconds, forward or backward.
Surprisingly, it was lacking in Blender, and prompted many users (including me) to create extensions.

This PR adds two properties: `time_jump_unit` for choosing whether to jump by frames or seconds
and `time_jump_delta` property that defines by how many frames or seconds the operator should jump,
as well as an actual operator that changes the current frame (`screen.time_jump`).

`time_jump_delta` is a float that gives users the ability to jump by half a second, for example, or by subframes.
Default is set to 1 second, which translates to as many frames jump as frame rate / frame base.
The operator is intentionally not bound by frame range, and can go in negative frames as well.
This is very important because it's extremely common to set frame range to the current workload,
but wish to see animation beyond that.

Operators are added in the new footer for animation editors alongside with pop-up menu where
properties can be changed.

Shortcuts are also added: Ctrl+Left/Right Arrow, which was surprisingly free in Blender.
Now timeline controls are:
- **Right Arrow**: Next Frame
- **Ctrl + Right Arrow**: Jump Forward (by default also Next Second)
- **Shift + Right Arrow**: Jump to End

Pull Request: https://projects.blender.org/blender/blender/pulls/140677
2025-10-07 13:43:20 +02:00
Bastien Montagne
854db34385 Fix (unreported) RNA_pointer_is_null returning true on no-ID pointers.
This behavior seems to have been there since initial implementation of
this function in aed1320b24, 8 years ago.

However, it is clearly wrong, and would return wrong positives in many
cases (the Main RNA pointer itself is generated with a nullptr ID by
`RNA_main_pointer_create`, and a _lot_ of code generates RNA pointers
without any ID owner, as shown by a search e.g. on
`RNA_pointer_create_discrete(nullptr`).

WARNING: While logically correct, there is no real way to tell if this
change is not going to break some weird corner case based on wrong
assumption. in addition to unittests, this has also been checked against
several production files.
2025-10-07 12:37:18 +02:00
Bastien Montagne
20a65fd7f4 Fix #147469: Hard Crash when Modifying Addon Keymaps.
Indirectly caused by ada45519a7, the actual issue has been there for
years in the PointerRNA diffing code, which was way too basic and unsafe
in non-liboverride case.

Also fixed a copy/paste assert mistake in related code (same thing was
checked twice, instead of also checking another condition).

Finally, make the more general `RNA_struct_equals` call handle properly
cases where one or both of the given PointerRNA operands are Null ones.
2025-10-07 12:37:18 +02:00
Jacques Lucke
894d9883b1 Cleanup: Geometry Nodes: use cache mutex for lazy function graph generation
This is a more standard way to handle caches and avoids the need for
a custom double checked lock.

Pull Request: https://projects.blender.org/blender/blender/pulls/147345
2025-10-07 10:46:59 +02:00
Harley Acheson
5953ff318c UI: Add Preference for Menu Close on Leave
This PR changes the current behavior that closes menus that are open
when your mouse is moved out of its "safe" area (a bit wider than its
visible bounds). With this PR applied menus stay open unless you click
elsewhere, hover a neighboring menu, press escape, or select an item.
Although this PR turns off menu mouse leave, it also adds a preference
that can be used to turn it back on.

Pull Request: https://projects.blender.org/blender/blender/pulls/145523
2025-10-06 20:19:12 +02:00
Brady Johnston
438b8c303e Geometry Nodes: SDF Grid filtering nodes
This PR gives access to OpenVDB's level set filtering operations
through individual **SDF Grid** nodes.

- **Mean Curvature**: Smoothens high curvature areas more than flatter
  ones.
- **Laplacian**: Approximates mean curvature flow for true SDFs at lower
  computational cost.
- **Median**: Reduces noise while preserving sharp features.
- **Mean**: Fast separable averaging filter for general-purpose
  smoothing with linear computational complexity.
- **Offset**: Uniform dilation/erosion operation that shifts the SDF
  surface by a world-space distance.
- **Fillet**: Rounds off concave internal corners by operating only on
  regions with negative principal curvature.

Pull Request: https://projects.blender.org/blender/blender/pulls/147224
2025-10-06 17:54:25 +02:00
Jacques Lucke
ea965e0adc Geometry Nodes: show warning in viewer when modifier is disabled
It's a common mistake that people want to use the viewer node while the
modifier is disabled and wondering why it doesn't work. This patch adds a
warning that helps users diagnose the issue immediately.

Pull Request: https://projects.blender.org/blender/blender/pulls/147443
2025-10-06 15:20:51 +02:00
Falk David
f694ef839d Cleanup: VSE: Rename for_each_callback to foreach_strip
The function name `for_each_callback` is ambigous (what are we iterating?)
and also doesn't align with the naming of other "for each" functions in Blender
which usually are named `foreach_<thing>` like `IndexMask::foreach_index`
or `animrig::foreach_fcurve_in_action` etc.

Pull Request: https://projects.blender.org/blender/blender/pulls/147440
2025-10-06 14:02:32 +02:00
Jacques Lucke
ceca413bcb RNA: add callback to support dynamic property ui name
This adds a new `PropertyRNA::name_func` property which is similar to the many
existing functions like `editable`, `get_default`, etc. It allows dynamically
getting a UI name for the property.

This is especially useful for node sockets, because those all have the same
hardcoded name "Default Value" which is not helpful. Since we already have
custom tooltips for sockets, this is mostly not visible to the user anymore. The
exception being menu sockets which draw the property name as title. Instead of
"Default Value", this patch makes it show the correct title.

Pull Request: https://projects.blender.org/blender/blender/pulls/147137
2025-10-06 10:40:05 +02:00
Philipp Oeser
47a0d9b52f Fix #146529: Crash getting RNA path to scene rigid body pointcache
Spawning the tooltip or changing values would cause this.

Error in 28827b62f7

Above commit only considered PointCaches associated with **objects**,
not taking into account scene rigid body cache.
This is now added with this PR.
Previously it would cast into modifiers when we actually had a scene as
owner... resulting in a crash.

This was only exposed by 6bf8685628 (it crashes since, was just not
working properly before...). 6bf8685628 changed the data layout of
`struct Object` and only by pure luck the modifiers loop was skipped, now
with the new layout it is entered (but with garbage data resulting in the crash.

Pull Request: https://projects.blender.org/blender/blender/pulls/146577
2025-10-06 09:38:39 +02:00