Commit Graph

2281 Commits

Author SHA1 Message Date
Philipp Oeser
2fd36b0ab7 Fix #142103: Animation decorator not working on Light Temperature value
When having a checkbox and a value both in one row together with an
animation decorator it is questionable whether the decorator should act
on animating the checkbox or the corresponding value.

We had similar cases before (e.g. 7c04ef210e)

In this case as well, one would think it is more desirable to animate
the actual Temperature **value** (instead of the checkbox), so this is
what this PR does.

Pull Request: https://projects.blender.org/blender/blender/pulls/142192
2025-07-17 15:03:50 +02:00
Hans Goudey
b20ecee555 Mesh: Move freestyle tags to generic attributes
This commit moves the freestyle edge and face mark tags to become
generic attributes, similar to other changes over the past years. The
attributes are called "freestyle_edge" and "freestyle_face", and they're
now propagated like regular boolean attributes.

Compatibility wise, forward and backward blend file compatibility are
maintained (for forward compatibility this is implemented a bit
differently than in the past because of the ongoing `AttributeStorage`
transition). In the Python API, `use_freestyle_mark` has been removed;
the attribute API should be used instead (just like bevel weights).
The BMesh (`freestyle`) accessors are removed too.

The conversions benefit from the fact that bit-wise, the old structs are
the same as `bool`, so we can convert to the old and new formats without
reallocating arrays.

Pull Request: https://projects.blender.org/blender/blender/pulls/141996
2025-07-16 18:26:26 +02:00
Campbell Barton
19ee3932c3 Fix #141948: No error on arbitrary assignments to PropertyGroup
Declare `__slots__` to prevent arbitrary assignment.
2025-07-16 17:44:06 +10:00
quackarooni
5bb21bfa07 Fix #141610: Nodes: Active selection points to internal toggle socket after running "Remove Item"
Panel toggles are implemented by having a boolean socket with
`is_panel_toggle` set to `True`, as the first item in that panel's children.
These sockets are then hidden from the user, as the checkbox gets drawn
in the panel's UI.

In specific circumstances described in the bug report, the active selection
can sometimes land on these sockets. Leading to the user being able to
directly access these internal sockets.

The changes in the patch make the "Remove Item" operator check if
the resulting selection lands in a toggle socket, and move the selection
to that toggle's parent panel if that is the case.

Pull Request: https://projects.blender.org/blender/blender/pulls/141859
2025-07-16 07:11:14 +02:00
Campbell Barton
808cc599f8 Cleanup: reduce right shift, wrap long lines 2025-07-11 16:48:15 +10:00
Jeroen Bakker
4d9c5ebd97 Vulkan: Move Wayland/HDR support out of experimental
This PR moves Wayland/HDR support out of experimental.
This allows more people to test and provide feedback. We
can always decide later to disable it for the release, but so
far we only got positive feedback.

Pull Request: https://projects.blender.org/blender/blender/pulls/141666
2025-07-09 13:24:31 +02:00
Bastien Montagne
e2366f6768 Merge branch 'blender-v4.5-release' 2025-07-09 12:03:26 +02:00
Damien Picard
7d4f6faffd I18n: Translate missing node add search menu items
Some items in the node editors' add menus were not properly
translated. The affected items referenced an enum property on a node,
such as Math node's Operation.

Since some of those enums use a specific translation context, the same
context must be used when adding them to the search menus. The context
can simply be retrieved from the bl_rna prop itself.

In addition, some items use labels that are already translated
manually and do not need the auto translation, so disable that in
those cases (translate=False).

No new messages are added by this change.

Reported by Ye Gui in #43295.

Pull Request: https://projects.blender.org/blender/blender/pulls/141629
2025-07-09 12:00:36 +02:00
Campbell Barton
4d7f2f436b Cleanup: quiet unused argument warning 2025-07-09 12:53:28 +10:00
Sebastian Parborg
8153b975a7 Merge branch 'blender-v4.5-release' 2025-07-07 18:33:12 +02:00
Julian Eisel
72a484b503 Fix #136359: Add data-block selector to handle missing texture better
Instead of only showing a button to switch to the texture properties -
which don't actually allow creating a texture for linestyle - add a
data-block selector that allows creating a texture for linestyle. It
will also show a button to switch to the texture properties, if
available.

It seems like the previous UI didn't have any good way of assigning a
texture for linestyle, without going into the texture node editor.

Pull Request: https://projects.blender.org/blender/blender/pulls/141408
2025-07-07 18:31:35 +02:00
Falk David
2b100e0a7e Merge branch 'blender-v4.5-release' 2025-07-07 11:14:52 +02:00
YimingWu
6957242a53 Fix #140615: Grease Pencil: Use brush.strength for context panel
Grease Pencil from 4.3 and above uses `brush.strength` instead of the one from
Grease Pencil brush settings. This fix makes the UI consistent.

Pull Request: https://projects.blender.org/blender/blender/pulls/140632
2025-07-07 11:12:01 +02:00
Richard Antalik
555b22b194 Merge branch 'blender-v4.5-release' 2025-07-05 01:36:49 +02:00
Richard Antalik
59173b6f92 Fix #141399: Operator search throws error in empty VSE
Python AttributeError was thrown, because `strip.type` was accessed, while
`strip` was `None`.

Pull Request: https://projects.blender.org/blender/blender/pulls/141421
2025-07-05 01:34:24 +02:00
Namit Bhutani
e5db240434 Mesh: Spatial Reordering for Sculpt Speed Improvements
**Problem Description**

Blender's current mesh data layout often lacks spatial coherence,
causing performance bottlenecks during BVH construction for sculpting
and painting operations. Each time a BVH is built, the system must
recompute spatial partitioning and vertex groupings from scratch,
leading to redundant calculations and suboptimal memory access patterns.

**Proposed Solution**

This patch implements pre-computed spatial organization of mesh data
through a new `mesh_apply_spatial_organization()` function that:

- Reorders vertices and faces based on spatial locality using recursive
  spatial partitioning.
- Stores pre-computed MeshGroup hierarchies in MeshRuntime for reuse.
- Enables the BVH system to bypass expensive spatial computation when
  pre-organized data is available.

This approach separates the expensive spatial computation from more
frequent BVH rebuilds, providing sustained performance improvements
across multiple sculpting operations.

**Limitations**

- Requires manual invocation (occurs automatically only during remesh
  operations).
- Additional memory overhead for storing MeshGroup metadata.
- One-time computational cost during initial organization.
- Spatial group references are not yet stored in files.

**User Interface**

The feature is accessible via a new "Reorder Mesh Spatially" operator in
the Mesh Data Properties panel under the Geometry Data section. Users
can invoke it manually when needed, or it will be applied automatically
during quadriflow and voxel remesh operations. The operator provides
feedback confirming successful spatial reordering.

Pull Request: https://projects.blender.org/blender/blender/pulls/139536
2025-07-04 20:02:37 +02:00
Dalai Felinto
2c9d14f9c4 Merge remote-tracking branch 'origin/blender-v4.5-release' 2025-07-04 16:08:45 +02:00
Dalai Felinto
7d3b93ed4e Multi-View: Fix (unreported) wrong icons for disabled Render Views
This is likely broken since 60cc73afe6, when I sorted the icons
alphabetically.

Multi-View lives on!
2025-07-04 16:05:49 +02:00
Philipp Oeser
458e224587 Merge branch 'blender-v4.5-release' 2025-07-04 15:01:33 +02:00
Philipp Oeser
eb82ff6166 Fix #141387: Light Probes not integrated into Animation Editors
You could basically not interact with the animation (except for
keyframes in the main region), channels region was totally empty, NLA
could not be used, ...

It is not something users will animate a lot, but we should still have
animation editors in mind when adding a new object type.

Just missing from cc31d7bb49

Pull Request: https://projects.blender.org/blender/blender/pulls/141449
2025-07-04 15:01:15 +02:00
Maxime-Cots
6e3039173d UV: Ensure Pie Menu consistency with 3D Viewport
"Selected to Grid" and "Cursor to Grid" are now swapped to fix the
consistency between UV Snap Pie Menu and 3DView Snap Menu.

Resolves #140714

Co-authored-by: Nig3l <nig3lpro@gmail.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/141300
2025-07-04 04:33:02 +02:00
Campbell Barton
e442c16fef Cleanup: resolve Python linter warnings 2025-07-03 21:05:21 +10:00
Guillermo Venegas
3f9d9c9e6b UI: Add Move to Collection Menu
This replaces the Move/Link to Collection operator popup with a menu,
allowing this to be able to search collection to move and to expand
this menu from other menus.
This removes the expected memory leak of using the popup.

Move to Collection operator now uses `session_uid` to identify
target collection, this now allows to target a collection from another
scene, however, is not exposed throw UI)

Resolves #133772

Pull Request: https://projects.blender.org/blender/blender/pulls/140883
2025-07-02 16:21:36 +02:00
Aras Pranckevicius
293cdac6ab Merge branch 'blender-v4.5-release' 2025-07-01 11:53:30 +03:00
Damien Picard
860b632670 I18n: Translate "MB" (megabyte)
In some languages, MB uses a different symbol (Mo in French for
mégaoctet).

Reported by Ye Gui in #43295.
2025-07-01 10:47:09 +02:00
Damien Picard
0ba83d8958 I18n: Translate GN Add > Input > Import menu items
Geometry Nodes' Add > Input > Import menu includes file format items
such as "Standford PLY (.ply)", "STL (.stl)", "Text (.txt)". The
latter needs to be translated because "Text" is a generic format.

These items are declared using a custom function
`node_add_menu.add_node_type`, with a `label` argument. This commit
adds the `label` argument to the function arguments that can be
extracted from specific node declaration functions, and specifies the
argument position for each:

"add_node_type", "add_node_type_with_outputs", "add_simulation_zone",
"add_repeat_zone", "add_foreach_geometry_element_zone",
"add_closure_zone".

There is currently no facility to specify a translation context but it
could be easily added if the need arises.

Most of these functions do not actually declare new, unique messages,
but it could happen in the future. In addition, two messages were
extracted using manual `iface_()` calls, which are no longer needed
after this change.

Reported by Ye Gui in #43295.
2025-07-01 10:47:09 +02:00
Sean Kim
d73b8dd4f3 Paint: Migrate radial_symmetry from Scene to Mesh
This commit introduces the `radial_symmetry` property on the `Mesh`
datablock and simultaneously removes the `radial_symm` property in
Sculpt, Vertex Paint, and Weight Paint.

This allows users to have these symmetry values defined on a per-object
basis instead of needing to reconfigure it for each mesh.

Current values stored on the `ToolSettings` on a per-scene basis are not
copied to each mesh in a scene. This is done to avoid introducing
potentially inaccurate data to a large number of meshes at the cost of
some minor backwards incompatibility.

Part of #108107

Pull Request: https://projects.blender.org/blender/blender/pulls/141108
2025-06-30 23:58:05 +02:00
Bastien Montagne
3bb53a27bb Merge branch 'blender-v4.5-release' 2025-06-30 11:21:59 +02:00
Bastien Montagne
b4eeddd113 Doc: Comment about using default i18n context for some mirror operators. 2025-06-30 11:21:04 +02:00
Damien Picard
33f31f1842 I18n: Translate a few messages
I18n: Translate a few messages

- Translate add-on types in the user preferences.
- Translate a report which uses formatting.
- Do not translate scene names in `sequencer.scene_strip_add` operator
  UI.
- Do translate the type of new scene in
  `sequencer.scene_strip_add_new` operator.
- Translate Half and Float image format color depth enum items.
- Translate Mix node header with non-color data types.
- Translate sequencer modifiers' names if data translation is enabled.

Most issues reported by Ye Gui in #43295.

Pull Request: https://projects.blender.org/blender/blender/pulls/141145
2025-06-30 11:12:48 +02:00
Damien Picard
50d7c4917b I18n: Disambiguate "Line"
"Line" can mean several things, but in this cases it means a line of
text.

Reported by Ye Gui in #43295.

Pull Request: https://projects.blender.org/blender/blender/pulls/141147
2025-06-30 11:07:40 +02:00
Damien Picard
8b39f577fe I18n: Disambiguate "Volume Min"
"Volume Min" can mean:
- The volume of a bone when modified by a constraint.
- The audio volume of a speaker object.

Reported by Alexandr Fatih in #43295.
2025-06-30 11:07:39 +02:00
Damien Picard
afa51a5d54 I18n: Disambiguate "Mirror"
"Mirror" can mean:
- To symmetrize something (i.e. generate a new mirrored copy of it or
  edit it in a symmetric fashion).
- To flip something (i.e. invert its values along X, Y or Z axes).
- To repeat a texture in a mirrored fashion outside its bounds.

Reported by Gabriel Gazzán in #43295.
2025-06-30 11:07:39 +02:00
Campbell Barton
f5e9731b2d WM: increase the maximum name length for the select_pattern operator
Follow up to !137196.
2025-06-30 16:01:46 +10:00
Campbell Barton
6e67489785 Refactor: use bpy.data.libraries.load(..) for the "Quick Fur" operator
Replace use of bpy.ops.wm.append with the Python equivalent.
This avoids a separate append call for every group.

Also refactor lookups so node-group names only need to be declared once,
then used to populate a named-tuple.
2025-06-30 15:47:16 +10:00
Habib Gahbiche
4463ac083d Merge branch 'blender-v4.5-release' 2025-06-28 15:30:23 +02:00
Habib Gahbiche
120c8165fc Fix #141100: Compositor: Duplicated nodes when pressing Setup Tracking Scene
The default nodes were still present in the node tree when Setup
Tracking Scene operator was called.

The issue was that the operator assumed the default tree always has the
same number and types of nodes, which wasn't true anymore after the
default node tree was changed in df6e65dd93

This PR keeps the changes to a minimum by updating the assumption
about the default node tree.

Pull Request: https://projects.blender.org/blender/blender/pulls/141141
2025-06-28 15:26:53 +02:00
Aras Pranckevicius
acebf4b6d5 IO: make new FBX importer the default one, mark Python as legacy
- Remove "experimental" label from C++ based FBX importer,
- Make drag-n-drop use the C++ FBX importer,
- Add "Legacy" label to the previous Python FBX importer

Pull Request: https://projects.blender.org/blender/blender/pulls/140703
2025-06-28 11:54:06 +02:00
Sean Kim
f14feeb853 Merge branch 'blender-v4.5-release' 2025-06-27 13:36:19 -07:00
Sean Kim
b472570875 Fix #140998: Grease Pencil stroke-level color jitter doesn't work
Introduced with 96e549c092

While the above commit applied versionings to the related flags, it did
not convert either the UI elements or the underlying grease pencil code
to use the now generic `Brush` properties.

Pull Request: https://projects.blender.org/blender/blender/pulls/141001
2025-06-27 22:21:53 +02:00
Pablo Vazquez
e431145e4a Fix: Graph: Do not use deprecated op in footer
The graph.keyframe_jump operator is deprecated. Use the regular
screen.keyframe_jump operator that was recently fixed to work in all
animation editors.
2025-06-27 12:42:00 +02:00
Pablo Vazquez
a90ce938dd UI: Dope Sheet: Add Cache visualization
Add cache visualization to the Dope Sheet editor, previously limited to
just the Timeline.

See PR for details and screenshots.

Part of #131102

Pull Request: https://projects.blender.org/blender/blender/pulls/140966
2025-06-27 12:23:48 +02:00
Jeroen Bakker
f3dafd7040 Merge branch 'blender-v4.5-release' 2025-06-26 15:00:21 +02:00
Jeroen Bakker
360cf7f2fb Vulkan: Hide WoA message on non Woa devices
This PR only shows the Windows on ARM limitation on Windows
on ARM devices. Also some tweaks to the messages were made.

Has been tested on Linux, Windows x86 and Windows on ARM.

Pull Request: https://projects.blender.org/blender/blender/pulls/141023
2025-06-26 14:59:31 +02:00
Campbell Barton
98805d5403 Merge branch 'blender-v4.5-release' 2025-06-25 16:34:38 +10:00
Campbell Barton
a2a1e4a159 Fix #140829: Crash after undoing "Set as Background" in video tracker
Operators that link data-blocks handled by undo must have the "UNDO"
flag enabled.
2025-06-25 16:32:28 +10:00
Ramon Klauck
53578d33ae VSE: Keyframing in Preview
This PR makes it easier to add keyframes for strips in preview.
This works same way as in 3D viewport, using keying sets. Pressing I
key adds keyframe to default keying set, pressing K dhows menu with
available keying sets. For VSE, location, rotation and scale properties
are available for now. Other existing keying sets are not valid for
VSE.

Deleting keyframes and potentially adding more keying sets will be
handled in separate PR.

Pull Request: https://projects.blender.org/blender/blender/pulls/140107
2025-06-25 02:56:55 +02:00
Omar Emara
383c8860a2 Compositor: Remove Texture node
This patch removes the Texture node from the compositor, which was based
on the legacy Internal Textures system in Blender. The main motivation
for removing this node is as follows:

- Procedural texturing nodes that previously existed in shading and
  geometry nodes are now supported in the compositor, which cover 95% of
  what is previously possible using and even adds new possibilities like
  Gabor, Bricks, and various improvements to existing texture types.
- The old texture system did not support GPU evaluation, so it was
  always computed and cached on the CPU, which causes bad performance
  especially for interactive use in the viewport compositor. While the
  new nodes are fully GPU accelerated and do not require any caching.
- The Texture node didn't support Texture nodes, so it was not fully
  supported and we so far had a warning about that.
- The general direction in Blender is to remove the old texture system,
  and the compositor was one of the last main users of it. 5.0 is thus
  the ideal time to remove such use.
- The Texture node was always and still is a source of bugs, since it
  relies on proper tagging for cache invalidation and updates, which is
  so far not perfect. It also suffers from UI/UX issues, since it needs
  to be adjusted from the properties panel, which can break if there are
  other texture nodes in the context.

This is a breaking change and no versioning was attempted since:

1. It is impossible to get the same results as before due to the use of
different random number generators, so any versioning would just give us
the general look.
2. The Texture node supports a lot of possible configurations. For
instance, each general texture can have many options for the basis type,
and each basis type might have multiple options. So versioning all of
that will take a lot of time, code, and effort.

Pull Request: https://projects.blender.org/blender/blender/pulls/140545
2025-06-24 11:54:39 +02:00
Jeroen Bakker
e63a20fee1 Vulkan: HDR support for Wayland
This change enables HDR support for wayland as an experimental feature.
It supports both non-linear extended sRGB and un-clamped sRGB.

Windows isn't supported as the HDR settings are not accessible via an
API and would require similar settings that games use to configure the
monitor. Adding those sliders isn't what we would like to add.

Vulkan (working group) is working on new extensions that might change
the shortcomings. It isn't clear yet what the extension will do and what
the impact is for applications that want to use it. When the extension
is out we should review at the situation again.

Pull Request: https://projects.blender.org/blender/blender/pulls/133159
2025-06-24 11:51:14 +02:00
Campbell Barton
b2f8f1c1c5 Cleanup: remove unused variable, imports, correct typo 2025-06-24 11:35:53 +10:00