Commit Graph

154463 Commits

Author SHA1 Message Date
Campbell Barton
c8302a08e8 PyAPI: match word order from Scene.frame_start/end
For the render operator match word order from Scene.frame_start/end.

Ref !147169
2025-10-02 22:07:06 +00:00
hogan.mastanduno
64cb13b9ff Fix #147155: Crash opening a blend file
Pull Request: https://projects.blender.org/blender/blender/pulls/147160
2025-10-02 23:56:43 +02:00
Jesse Yurkovich
d83facf6b2 Fix #109127: Check for removed timer after advancing frames
During animation playback, `screen_animation_step_invoke` takes a
reference to the active screen timer to use throughout its processing.
However, as part of transitioning frames (during which frame change
hooks are invoked) this screen timer may be removed. In the case of the
mentioned report, this happens because the `frame_change_post` hook
called `bpy.ops.screen.animation_cancel` which removes the timer as part
of its processing.

We need to recheck if our timer is still active and available after
transitioning frames but before continuing. If no longer available, we
should be able to return early at this point.

Pull Request: https://projects.blender.org/blender/blender/pulls/147167
2025-10-02 22:20:38 +02:00
Hans Goudey
10dababb09 Geometry Nodes: Set Grid Background node
It's useful when creating a grid procedurally to be explicit
about what background value it gets. This PR adds a very
simple node just to do that.

Pull Request: https://projects.blender.org/blender/blender/pulls/147235
2025-10-02 21:25:11 +02:00
Jacques Lucke
b14b5a1aa0 Refactor: Nodes: move node tree interface panel to C++
The main goal is to simplify reusing this drawing code when drawing properties
for group input/output nodes. This is not implemented as part of this patch
though. The UI shouldn't change, except that the old code had an incomplete
`field_socket_types` list.

Pull Request: https://projects.blender.org/blender/blender/pulls/147231
2025-10-02 21:04:39 +02:00
Hans Goudey
d3278249a8 Geometry Nodes: Volume grid Prune and Voxelize nodes
Add two common building blocks for volume-grid workflows.

- **Voxelize** turns all active tiles into fully dense voxels. For fog
  volumes, this will mean the "inside" sparse tiles will become
  individually adjustable voxel values.
- **Prune** is the opposite action as voxelize. It can be important for
  certain workflows when large regions of constant values are created.
  The node can collapsed those regions into more efficient tiles or
  inner nodes. There are a few modes which are each useful for
  different use cases.

Pull Request: https://projects.blender.org/blender/blender/pulls/147148
2025-10-02 20:53:42 +02:00
Jacques Lucke
4a81511d89 Cleanup: add comment describing best practice for adding nodes in versioning 2025-10-02 20:17:12 +02:00
Brecht Van Lommel
62f8f372c4 Build: Auto update to new haru precompiled library name on macOS and Linux
Pull Request: https://projects.blender.org/blender/blender/pulls/147230
2025-10-02 20:13:01 +02:00
Jacques Lucke
33aa6fac90 Fix: Assets: assets have been moved without updating the code
The assets were moved in 1aaa540763.
2025-10-02 20:09:37 +02:00
Casey Bianco-Davis
032e983a8b Fix #130201: Grease Pencil Build modifier don't work on premade objects
This PR makes it so that when the `delta_time` attribute does not exist
or is equal to zero, the Grease Pencil Strokes will default to one
second to be drawn.
This feature existed in the legacy modifier but was not implemented in
GPv3.

Pull Request: https://projects.blender.org/blender/blender/pulls/146950
2025-10-02 19:39:19 +02:00
Thomas Dinges
7e5eed463d Release: Update license.md after library update 2025-10-02 19:26:26 +02:00
Thomas Dinges
762b65a060 Tools: Update clang version used in format script 2025-10-02 19:25:38 +02:00
Sean Kim
1ac1090271 Fix: 'Reset Curve' applies incorrect transformation for positive slopes
Currently, the 'Reset Curve' button, corresponding to the
`BKE_curvemap_reset` function, converts a predefined negative slope
curve to a positive slope by inverting the order of y axis points. This
has the implicit dependency on these points being at inverse x
positions. For most preset curves, this works well, but for the round
curve, which has points at 0, 0.5, 0.86, and 1, this condition does not
hold true.

To fix this, take the inverted x value for a given control point
instead of the raw value. For the above example this means that the
round curve now has x values at 0, 0.14, 0.5, and 1.

Pull Request: https://projects.blender.org/blender/blender/pulls/147008
2025-10-02 19:14:04 +02:00
Brady Johnston
4a56973fe7 Geometry Nodes: Set Grid Transform
Explicitly set the transform of a grid.

The new transform can fail to be applied if the input transform isn't
invertible or for some extremes of scaling (0 or combinations of
negative and positive) and numerical errors with `openvdb`. If a
transform is not applied an error is raised and the `Is Valid`
returns false.

Pull Request: https://projects.blender.org/blender/blender/pulls/146824
2025-10-02 19:12:39 +02:00
Hans Goudey
a68d39e9d9 Cleanup: Formatting
Run `make format` after the library update in the previous commit.
2025-10-02 12:55:42 -04:00
Thomas Dinges
66224d69b0 Deps: Library changes for Blender 5.0
This commit includes the changes to the build system, updated hashes to the actual new libraries as well as a required test update.

* DPC++ 6.2.0 RC
* freetype 2.13.3
* HIP 6.4.5010
* IGC 2.16.0
* ISPC 1.28.0
* libharu  2.4.5
* libpng 1.6.50
* libvpx 1.15.2
* libxml2 2.14.5
* LLVM 20.1.8
* Manifold 3.2.1
* MaterialX 1.39.3
* OpenColorIO 2.4.2
* openexr 3.3.5
* OpenImageIO 3.0.9.1
* openjpeg 2.5.3
* OpenShadingLanguage 1.14.7.0
* openssl 3.5.2
* Python 3.11.13
* Rubber Band 4.0.0
* ShaderC 2025.3
* sqlite 3.50.4
* USD 25.08
* Wayland 1.24.0

Ref #138940

Co-authored-by: Ray Molenkamp <github@lazydodo.com>
Co-authored-by: Jesse Yurkovich <jesse.y@gmail.com>
Co-authored-by: Brecht Van Lommel <brecht@blender.org>
Co-authored-by: Nikita Sirgienko <nikita.sirgienko@intel.com>
Co-authored-by: Sybren A. Stüvel <sybren@blender.org>
Co-authored-by: Kace <lakacey03@gmail.com>
Co-authored-by: Sebastian Parborg <sebastian@blender.org>
Co-authored-by: Anthony Roberts <anthony.roberts@linaro.org>
Co-authored-by: Jonas Holzman <jonas@holzman.fr>

Pull Request: https://projects.blender.org/blender/blender/pulls/144479
2025-10-02 18:34:11 +02:00
Jacques Lucke
61cc3af675 Fix #147219: field in bundle is lost when geometry
This was an issue with creatiung the correct `reference_relations` between
input and output sockets. Those are necessary for the automatic lifetime inferencing.
2025-10-02 17:51:11 +02:00
Pablo Vazquez
28280aaeeb Nodes: UI: Center Define Signature in Bundle nodes
Center "Define Signature" in Combine/Separate Bundle nodes,
to match others.

Pull Request: https://projects.blender.org/blender/blender/pulls/147222
2025-10-02 17:50:06 +02:00
Brecht Van Lommel
be61366801 Nodes: Show node editor context path also without a node tree
This provides context for where the node tree will be added when clicking New.

Ref #139634

Pull Request: https://projects.blender.org/blender/blender/pulls/146852
2025-10-02 17:39:30 +02:00
Brecht Van Lommel
83595a41bb Nodes: Further tweaks to add menu for shaders
* Move Shader before Displacement
* Organize Shader submenu by mix/add, surface and volume
* Alphabetically order Color submenu
* Move Script into utilities

Pull Request: https://projects.blender.org/blender/blender/pulls/147212
2025-10-02 17:23:39 +02:00
Jesse Yurkovich
b1045fb1fe Fix: Adjust adaptive subdivision versioning to set defaults in all cases
When an old file that uses regular subdivision is loaded, the adapative
settings were not applied to the existing modifiers if they weren't
already using adaptive subdivision. This results in the settings
remaining at their 0 defaults which can be surprising. E.g. the
`dicing_rate` of 0 is clamped to 0.1px which is probably not intended.

Make sure to set the correct defaults in all cases now.

Pull Request: https://projects.blender.org/blender/blender/pulls/147164
2025-10-02 17:20:54 +02:00
Brecht Van Lommel
e238970bd9 Color Management: Update for new extended sRGB naming conventions in OCIO
Recognize srgbe_ prefix for interop ID, and edr-video encoding as HDR.

Pull Request: https://projects.blender.org/blender/blender/pulls/147205
2025-10-02 17:20:35 +02:00
Hans Goudey
946b3498b3 Fix: Build error with OpenVDB disabled 2025-10-02 11:18:36 -04:00
Christoph Lendenfeld
50748d3099 Fix #146105: Missing depsgraph update for "Clear Keyframes"
The issue was that the "Clear Keyframes" operator was missing call
to notify the dependency graph, and thus objects were still animated
even though the keyframes were deleted.

Pull Request: https://projects.blender.org/blender/blender/pulls/147216
2025-10-02 17:12:35 +02:00
Sebastian Parborg
df7273930f PyAPI: Add "path_from_module" function to get full bpy path to structs and props
This is to make it easy to get the bpy paths to bpy.context.property for
example. Before this change, the easiest way was to use the clipboard
bpy.ops function. However this would make the python scripts using this
fragile as it we do not have full control of what is stored in the
system clipboard.

Pull Request: https://projects.blender.org/blender/blender/pulls/147116
2025-10-02 17:05:43 +02:00
Sybren A. Stüvel
8d417cb280 Refactor: lazy import anim_utils from bpy_extras
Import `anim_utils` from `bpy_extras` in a lazy way, instead of at the top
of the module. This will improve load times of Blender.

No functional changes.

Pull Request: https://projects.blender.org/blender/blender/pulls/147215
2025-10-02 17:00:13 +02:00
Pablo Vazquez
84af3e8b47 UI: Icons: Flip direction of looking-glass icon
All looking-glass icons in Blender were left-handed.

Most OS, applications, websites, even a simple image search shows that
these icons are more often depicted right-handed.

Flip all icons that include a looking-glass.

See PR for details and descriptions.

Pull Request: https://projects.blender.org/blender/blender/pulls/147206
2025-10-02 16:52:35 +02:00
Pablo Vazquez
526f46d2c3 UI: Icons: Add icon for Sequencer Strip Modifier
Add a new icon for Sequencer strip modifiers.

See PR for details and screenshots.

Pull Request: https://projects.blender.org/blender/blender/pulls/147208
2025-10-02 16:49:05 +02:00
Stefan Werner
083aad8a45 Cycles: Specialization constants for Embree/SYCL
Making heavier use of specialization constants in SYCL for Embree.
This reduces code size of the intersection kernels and bring
performance improvement up to 9% in some scenes on
Intel GPUs.

Co-authored-by: Stefan Werner <stefan.werner@intel.com>
Co-authored-by: Nikita Sirgienko <nikita.sirgienko@intel.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/141559
2025-10-02 16:44:24 +02:00
Brady Johnston
0a77a57c4e Geometry Nodes: Add OpenVDB grid operators
Adds four new grid operator nodes that wrap OpenVDB's differential
operators. All nodes take a grid input and output a grid, potentially
with a different data type.

New nodes:
- Grid Curl: Calculate curl of vector field (Vec3 → Vec3)
- Grid Divergence: Calculate divergence of vector field (Vec3 → Float)
- Grid Gradient: Calculate gradient of scalar field (Float → Vec3)
- Grid Laplacian: Calculate Laplacian of scalar field (Float → Float)

These operators enable vector calculus operations on volume grids for
effects like flow analysis, vortex detection, etc.

Co-authored-by: Hans Goudey <hans@blender.org>
Pull Request: https://projects.blender.org/blender/blender/pulls/146845
2025-10-02 16:28:46 +02:00
Bastien Montagne
fdfbb3ad20 Fix (unreported) memleak in IDHash when computing the hash fails.
Code would early-return on failure, forgetting to free the xxhash state.

Use the `BLI_SCOPED_DEFER` util to ensure the state is always properly freed
when it gets out of scope.

Pull Request: https://projects.blender.org/blender/blender/pulls/147189
2025-10-02 16:26:03 +02:00
Bastien Montagne
289e5ef0b7 Fix #147057: Crash when Asset Library Pack-Importing a Missing Data Block.
Do not delete linked data if the packing fails.

Pull Request: https://projects.blender.org/blender/blender/pulls/147190
2025-10-02 16:20:08 +02:00
Damien Picard
8b351bdee8 Node Wrangler: Fixes for Save Viewer operator
## Fix: Error in Node Wrangler UI when in Sequencer mode

Node Wrangler tried to find the current scene compositing node tree,
even when there was none. This could happen if working on a sequencer
compositing modifier.

This commit hides the Save This Image button when not in Scene
compositing mode.

## Fix: Error in Node Wrangler's Save Image op when file path is empty

If the file path is empty in Save Image operator, it returns `None`
and errors out.

This commit makes it return `{'CANCELLED'}` early in that case.

## Add webp to list of file formats for Save Viewer

## Fix: Error when Viewer Node image renamed and saved

The "Viewer Node" image that contains the current compositing node
tree's viewer data has a hardcoded name by default. However it can be
renamed by the user, which will make the Save Viewer operator fail.

This commit extracts a utility function to get the current viewer
image based on its properties, and simply saves that.

In addition, this avoids having to change the area type to an image
editor to get the current viewer node, and restoring the node editor
afterwards. This action did not restore the current node tree if the
editor was inside a node group.

## Rename "Save This Image" to "Save Viewer Image"

When calling the operator through Menu Search, it is not clear what
"Save This Image" refers to. This commit renames the operator to "Save
Viewer Image", but keeps the old name for the button label.

Pull Request: https://projects.blender.org/blender/blender/pulls/147085
2025-10-02 16:14:32 +02:00
илья _
d4e254a552 Cleanup: Manifold Boolean: Change order of mesh construction
This patch swap position attribute initialization and edge construction
of boolean result. Logic is what both of these steps are last, all
future code do not build mesh topology but only maintain user
attributes. So at this point mesh already must be valid. But future
change of edge calculation (#132492) code will requer this mesh
validation to be done as part of the step. So when edges will be
calculated mesh must already be built, valid and contains position
attribute.

Pull Request: https://projects.blender.org/blender/blender/pulls/146229
2025-10-02 15:14:32 +02:00
Philipp Oeser
bb3f0f5401 Fix #147182: Duplicating workspace sequencer_scene based on window scene
1122a05cb6 made it so that a new scene was based off of the window
scene, now changed to the workspace sequencer_scene (if we have one,
otherwise fallback to the window scene).

Pull Request: https://projects.blender.org/blender/blender/pulls/147187
2025-10-02 15:07:32 +02:00
Sybren A. Stüvel
7b18a2c324 Refactor: convert Rigify from legacy Action API to the current API
Minimal changes to make Rigify use the current Action API (introduced in
Blender 4.4) instead of the legacy API (removed in 5.0).

Most of the refactoring consists of:

- Find the right `Channelbag`
- Replace operations on `Action` with operations on that `Channelbag`.

I didn't manage to test all code, because some code paths are very hard
to follow, and others seem to only be available for legacy rigs.

This is part of #146586

Pull Request: https://projects.blender.org/blender/blender/pulls/147060
2025-10-02 14:42:43 +02:00
Sybren A. Stüvel
6f844409b6 Refactor: convert sequencer "Clear Fades" to current Action API
Convert the code for the sequencer "Clear Fades" operator from the
legacy Actions API to the current API.

No functional changes.

This is part of #146586

Pull Request: https://projects.blender.org/blender/blender/pulls/147060
2025-10-02 14:42:43 +02:00
Sybren A. Stüvel
2cabaeb4a7 Refactor: convert rigid body "Bake to Keyframes" to current Action API
Convert the code for the rigid body "Bake to Keyframes" operator from the
legacy Actions API to the current API.

No functional changes.

This is part of #146586

Pull Request: https://projects.blender.org/blender/blender/pulls/147060
2025-10-02 14:42:43 +02:00
Sybren A. Stüvel
89d059c5d7 Refactor: convert "Animated Transforms to Deltas" to current Action API
Convert the code for the "Animated Transforms to Deltas" operator from the
legacy Actions API to the current API.

No functional changes.

This is part of #146586

Pull Request: https://projects.blender.org/blender/blender/pulls/147060
2025-10-02 14:42:43 +02:00
Sybren A. Stüvel
bafddfd9fb Refactor: convert "Clear Useless Actions" operator to current Action API
Convert the code for the "Clear Useless Actions" operator from the
legacy Actions API to the current API.

No functional changes.

This is part of #146586

Pull Request: https://projects.blender.org/blender/blender/pulls/147060
2025-10-02 14:42:43 +02:00
Sybren A. Stüvel
95c8521eb6 Refactor: convert "F-Curve path refactor" code to current Action API
Convert the code in `scripts/modules/animsys_refactor.py` from the
legacy Actions API to the current API.

The code was made for very old rigs (2.70 and older, last updated for
Caminandes in 2014). The updated code seems to work on a Caminandes test
file, and produces the same logging on the terminal as in Blender 4.3
(before slotted Actions).

No functional changes.

This is part of #146586

Pull Request: https://projects.blender.org/blender/blender/pulls/147060
2025-10-02 14:42:43 +02:00
Sybren A. Stüvel
5c2069e284 Refactor: convert "Bake Action" operator to current Action API
Remove the use of `action.fcurves` in the Bake Action operator, replacing
it with the current API (introduced for slotted Actions in Blender 4.4).

No functional changes.

This is part of #146586

Pull Request: https://projects.blender.org/blender/blender/pulls/147060
2025-10-02 14:42:43 +02:00
Sybren A. Stüvel
c77ac91ee4 Refactor: convert "Copy Pose Asset" operator to use the current Action API
Convert the Copy Pose Asset code from the legacy Action API to the
current API (introduced in Blender 4.4).

No functional changes.

This is part of #146586

Pull Request: https://projects.blender.org/blender/blender/pulls/147060
2025-10-02 14:42:42 +02:00
Sybren A. Stüvel
0b978a20e7 Refactor: convert BVH importer to use the current Action API
Use the current API (i.e. not the to-be-deleted-in-5.0 one) to import
F-Curves from BVH files.

No functional changes.

This is part of #146586

Pull Request: https://projects.blender.org/blender/blender/pulls/147060
2025-10-02 14:42:42 +02:00
Sybren A. Stüvel
3171a22dfd Refactor: adjust unit tests to no longer use the legacy Action API
Adjust various unit tests so that they no longer use the legacy Action
API (which was deprecated in Blender 4.4 and will be removed in 5.0).

No functional changes.

This is part of #146586

Pull Request: https://projects.blender.org/blender/blender/pulls/147060
2025-10-02 14:42:42 +02:00
Aras Pranckevicius
e4b4e7c308 Fix: Anim: Time display text labels drawn over one another
Regression in e65524382, where what should have been essentially
(window_width / text_width) became (window_width + 1/text_width)
which is not the same at all! What the code was trying to do is
((window_width + 1) / text_width)

Most easily visible in VSE template because it defaults to
MM:SS+FRAME display format, but could be seen in other
animation related windows.

Pull Request: https://projects.blender.org/blender/blender/pulls/147198
2025-10-02 14:22:05 +02:00
Hans Goudey
9b0f27d98a Cleanup: Use socket runtime declaration pointer
Rather than finding the socket's index in the linked list.
2025-10-02 08:16:56 -04:00
Casey Bianco-Davis
29124398a4 Fix: Grease Pencil: Pen tool memory leak
This fixes a memory leak that could occur with the
Grease Pencil Pen Tool. If the Pen Tool exited during
the initialization the `GreasePencilPenToolOperation`
object would not be deleted. The Pen Tool could end
in initialization if the `Selection Mode` was not `Points`

This problem only effected Grease Pencil, because
the `Curves` Object code properly exited.

Pull Request: https://projects.blender.org/blender/blender/pulls/147170
2025-10-02 13:57:37 +02:00
Campbell Barton
7f36eebf5c Wayland: lower the requirement for the xdg_output_manager for Rocky8
GHOST/Wayland failed to initialize on older versions of GNOME.
Lower the requirement so Blender can start on the build-bot.

Ref !147165
2025-10-02 21:51:23 +10:00
Campbell Barton
88cbc71533 Build: unbreak WITH_OPENVDB=OFF 2025-10-02 21:51:23 +10:00