Commit Graph

3706 Commits

Author SHA1 Message Date
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
Pratik Borhade
a559fb833c Tree View: Multi-select support
Add support to select multiple tree view elements (similar to outliner/anim channels)
`Ctrl + LMB` to select+activate element under the mouse
`Shift + LMB` to select all items between active and clicked item.

As of now, only Shape key has support for multi-select. (straightforward to include
other views). `KEYBLOCK_SEL` flag is used for storing selection state.

Pull Request: https://projects.blender.org/blender/blender/pulls/138979
2025-07-04 15:45:18 +02:00
Ido-Shahar
0e8110fa94 Node Wrangler: Add support for boolean sockets to nw_merge_nodes, results in a Boolean Math node
### Summary

A small fix / addition to Node Wrangler operators.py, specifically the
nw_merge_node operation. I added support for merging nodes with
boolean sockets, which used to not respond to nw_merge_nodes / nw_lazy_mix.

### Motivation

As a user, I found it frustrating that I couldn't use lazy mix on boolean
nodes, as geonodes-heavy projects relied on them, and required adding
Boolean Math nodes often.
I intuitively expected it to add a Boolean Math node, which is the most
similar to Math Add for floats & Join Geometry for geometry.

### Implementation

A boolean nodes list is created when the rest of the lists are cerated,
nodes with boolean outputs get added to it, it's taken into consideration
when checking if PASS_THROUGH, then if we didn't PASS_THROUGH,
a Boolean Math node is created, similar to the existing options.
When the user uses a math merge shortcut (ctrl+0, ctrl+*, etc), the
code ignores it, adds Boolean Math anyway.

Pull Request: https://projects.blender.org/blender/blender/pulls/140236
2025-07-04 15:26:21 +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
Guillermo Venegas
1adf9ce9dc IO: Add FileHandler for importing SVG as curves
This enables drag-n-drop support for the `import_curve.svg` operator.
Since the existing `Import SVG as Grease Pencil` operator handles the
same file type, when dropping `.svg` files this will prompt to choose
between theses 2 operators.

See PR for examples and notes on eventually changing the operator
description.

Pull Request: https://projects.blender.org/blender/blender/pulls/140603
2025-07-03 19:35:53 +02:00
Harley Acheson
bb895e13e2 Merge branch 'blender-v4.5-release' 2025-07-03 10:34:17 -07:00
Harley Acheson
d92523d0b4 Fix #138909: Use space_type_set_or_cycle for Ctrl-Tab in Graph Editor
Our keymap, when pressing Ctrl-Tab in Graph Editor, currently changes
the space type to "Dope Sheet" with "wm.context_set_enum". But this
method is not aware of subtypes. This PR instead changes the space type
using "screen.space_type_set_or_cycle". While in Timeline it will go to
Graph Editor, press again to go back to Timeline.  While in Dope Sheet
you go to Graph Editor, press again to go to Dope Sheet.

Pull Request: https://projects.blender.org/blender/blender/pulls/141360
2025-07-03 19:32:31 +02:00
Campbell Barton
e442c16fef Cleanup: resolve Python linter warnings 2025-07-03 21:05:21 +10:00
Campbell Barton
9ba5963a1e Merge branch 'blender-v4.5-release' 2025-07-03 18:39:23 +10:00
Campbell Barton
9a1ae5b514 Merge branch 'blender-v4.5-release' 2025-07-03 18:39:19 +10:00
Campbell Barton
4127f5c47c Extensions: suppress errors printed because of missing directories
When dropping an extension onto Blender, the URL lookup would print
errors to the STDOUT if a repository directory was missing.

While this didn't break installation, these kinds of errors should
only be shown when the directory is expected to exist.

The issue was raised in #141212.
2025-07-03 18:21:16 +10:00
Campbell Barton
e0d2a0bc1a Fix URL's in extension errors accessing remote data
The base URL was used when reporting errors accessing a URL,
use the full URL being accessed instead since anything else
is misleading, the full URL is needed to troubleshoot issues.
2025-07-03 18:21:16 +10:00
Andrej730
560e81075a Fix: PyDocs - add missing Context.copy() return type
Ref !141359
2025-07-03 10:59:17 +10:00
Andrej730
b06bf220b9 Fix: PyDocs - add missing Context.copy() return type
Ref !141359
2025-07-03 10:15:32 +10:00
Julien Duroure
2aed558f08 Fix #141345 - glTF: Fixes after recent Blender changes on IDprops 2025-07-02 18:04:00 +02: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
084ded1c07 Merge branch 'blender-v4.5-release' 2025-06-30 17:21:10 +10:00
Campbell Barton
0fb80f698a PyDoc: use string literals for enum values
Use literals since their literal values need to be used in code.
2025-06-30 17:12:04 +10: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
Aaron Carlisle
60ba9a2595 Merge branch 'blender-v4.5-release' 2025-06-29 15:29:29 -04:00
Aaron Carlisle
03d7ed05b9 Docs: Update RNA to user manual URL mapping 2025-06-29 15:28:46 -04: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
Pratik Borhade
a7b4137f3e UI: Tree View: Click select operator
Part of !138979
With that, it is now possible to configure specific key for
selection in tree view.

Pull Request: https://projects.blender.org/blender/blender/pulls/140033
2025-06-28 13:41:51 +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
Campbell Barton
0d3826b354 Cleanup: make the blend file header private
This was split out as part of a refactor but isn't intended to be a
new public module for other scripts to use.

Ref !141088
2025-06-28 08:40:31 +10: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
quackarooni
28bd5a7832 Fix #140933: "Group Socket Node" theme property left unset
The theme property for group socket nodes was set to `#000000` for
default themes, which looked out of place against the other node
header colors. This patch adds colors to both the Blender Dark & Light
themes that should resemble their counterparts before 2ea3cd2188.

Colors:
Blender Dark - `#1d1d1d`
Blender Light - `#3d3d3d`

Pull Request: https://projects.blender.org/blender/blender/pulls/141011
2025-06-26 15:05:37 +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