Commit Graph

154130 Commits

Author SHA1 Message Date
Pablo Vazquez
b74e696acc UI: Theme: Add Curve widget theme settings
Add theme settings for the Curve and CurveProfile widgets.

Even though the curve widget is used all over Blender, it never had its
own theme settings. It was using a mix of colors from the “regular”
toggle widget with text colors inherited from the editor.

Thanks to the recent cleanup and removal of so many redundant theme
options, we can now add new/missing settings without overwhelming
the theme.

See PR for details and screenshots.

Pull Request: https://projects.blender.org/blender/blender/pulls/146274
2025-09-25 17:44:33 +02:00
Brady Johnston
79c1198770 Fix: Geometry Nodes: Properly expose supported grid socket types
The Grid Info node was not exposing the other supported socket types
(`Integer` and `Boolean`). The other Sample Grid, Sample Grid Index and
Get Named Grid nodes were updated to use the same enum filtering as the
Grid Info node and ensured tooltips were consistent.

Pull Request: https://projects.blender.org/blender/blender/pulls/146785
2025-09-25 17:25:10 +02:00
Jeroen Bakker
8111fe2369 Fix #146655: GPU: Call of deprecated function
There are deprecation usages in the gpu presets and custom
shapes python module. This PR uses the correct calls to remove the
deprecation warnings.

Pull Request: https://projects.blender.org/blender/blender/pulls/146746
2025-09-25 17:22:35 +02:00
Hans Goudey
5ccbfbb4bc Geometry Nodes: Support grid inputs to viewer node
Display the grid in the 3D viewport (internally just create a volume
geometry so this case doesn't spread into any rendering code), and add
very basic data in the spreadsheet for the grid. I had to store the geometry
in the viewer node log as a cache so the lifetime of the temporary volume
grid was long enough.

Pull Request: https://projects.blender.org/blender/blender/pulls/146780
2025-09-25 16:51:31 +02:00
Brecht Van Lommel
689f182792 Cycles: Make adaptive subdivision a non-experimental feature
* Add adaptive subdivision properties natively on the subdivision surface
  modifier, so that other engines may reuse them in the future. This also
  resolve issues where they would not get copied properly.
* Remove "Feature Set" option in the render properties, this was the last
  experimental one.
* Add space choice between "Pixel" and "Object". The latter is new and can
  be used for object space dicing that works with instances. Instead of
  a pixel size an object space edge length is specified.
* Add object space subdivision test.

Ref #53901

Pull Request: https://projects.blender.org/blender/blender/pulls/146723
2025-09-25 16:18:50 +02:00
quackarooni
2a1a658492 Nodes: Swap Node Operator
Implement a native method to swap between different node and zone types.

This implementation repurposes the existing menu definitions as base
classes, from which both an "Add" and a "Swap" version would be generated
from. This allows both menus to have the same layout, but use their own
operators for handling the different node/zone types.

In this PR, support for all node editors has been implemented.

Invoking the menu is currently bound to `Shift + S`, same as the old
implementation in Node Wrangler. Since "Swap" is implemented as a
regular menu, features that menus already have such as type-to-search
and adding to Quick Favorites don't require any extra caveats to
consider.

Resolves #133452

Pull Request: https://projects.blender.org/blender/blender/pulls/143997
2025-09-25 16:12:02 +02:00
Hans Goudey
fc4fc2d16c Geometry Nodes: Make displaying "Manage" panel optional
Often displaying the "Manage" panel is not very useful, or at least it
isn't worth taking up the screen real-estate. This commit adds an option
for showing the panel in the modifier, and adds an option to the node
group which is used to initialize the modifier option when creating a
modifier for a node group asset.

Pull Request: https://projects.blender.org/blender/blender/pulls/146775
2025-09-25 16:00:07 +02:00
vbeckham
901835a2c7 Fix: Failure to pass the full PATH to Blender ctests on Windows
Due to this bug only the first item in the current PATH on the system
is used when running Blender.

The PATH is appended to a string type variable, which is then used as
one element of a list in build_files\cmake\testing.cmake line 24. Since
in cmake the semicolon is a list element delimiter, we need to escape
all the semicolons in our PATH string if we want to use the variable as
a single entry in the list.

Pull Request: https://projects.blender.org/blender/blender/pulls/146770
2025-09-25 15:27:33 +02:00
Brecht Van Lommel
fd9edf5b89 Color Management: Support for HDR PNG read and write
### Color Management: Support image CICP read/write

The CICP support will enable reading and writing HDR PNGs, following
the recently released PNG spec:
https://www.w3.org/TR/png-3/#cICP-chunk

More useful for exporting to the web with reasonable file size would
be AVIF support, but that will have to wait for the next library update
in Blender 5.1 to add libheif.

Note this will only starting working once the 5.0 libraries have landed,
which should happen somewhere in the next week.

Pull Request: https://projects.blender.org/blender/blender/pulls/145612
2025-09-25 15:16:11 +02:00
Brecht Van Lommel
488ff26d35 Tests: Update multilayer image tests for 5.0 changes
The frame number is no longer included on F12.

Pull Request: https://projects.blender.org/blender/blender/pulls/146725
2025-09-25 15:08:30 +02:00
Brecht Van Lommel
ab644f2ecb Tests: Compare all subimages in compositor file output tests
For multilayer files it was only comparing the first pass, so any issues
with other passes would be missed.

Also don't clear the filename for multilayer file output nodes, as that
doesn't work when there are multiple such nodes all writing to the same
file name. This will be used in an upcoming EXR multipart writing test.

Ref #146650

Pull Request: https://projects.blender.org/blender/blender/pulls/146726
2025-09-25 15:02:13 +02:00
Brecht Van Lommel
59eebc8654 Color Management: Add "Working Space" as a color space choice in the enum
And make it the default in the compositing Convert Color Space node. This is
useful to create compositing nodes that give the same result regardless of
the working space, particularly for node group assets. For example you might
convert from the working space to a log space, do some color correction
operations and convert back.

I'm less certain about including this also for images. I can imagine use
cases for that too, for example with an Image node in the compositor that is
known to read back the EXR sequence written from the current scene. But it's
a bit more obscure and there is some potential for using this when it's not
appropriate. Still there is nothing that automatically selects it, so it seems
fine.

Ref #144911

Pull Request: https://projects.blender.org/blender/blender/pulls/146598
2025-09-25 15:00:02 +02:00
Damien Picard
da92614fd2 Fix: Node Wrangler: Error in Merge Nodes when only one node selected
Running Node Wrangler's Merge Nodes operator on only one node
resulted in an error. It was introduced in commit db39daf9e7.

That commit assumed that `l[len(l)-2]` and `l[-2]` were the same, but
they are not when `len(l) == 1`. In that case, the former is valid but
the latter is not.

This commit fixes the error by checking how many nodes are selected.

Pull Request: https://projects.blender.org/blender/blender/pulls/146361
2025-09-25 14:52:47 +02:00
Brady Johnston
e869ae360c Nodes: Reroute becomes active if singular
When using Shift + RMB drag to create a reroute, the newly created
reroute does not become active. If you then rename it will rename the
previously active node.

This PR sets the newly created reroute to be active if only one is
created. If more than one is created the order is not well defined
and also unclear whether it would be first or last to become active.

Pull Request: https://projects.blender.org/blender/blender/pulls/146774
2025-09-25 14:47:50 +02:00
Nika Kutsniashvili
28b97afda2 UI: Theme: Generalize geometry attribute properties
This PR generalizes properties for geometry (currently mesh only) attributes
found in 3D Viewport theme, namely:

- Combine "Edge Bevel" and "Vertex Bevel" into one "Bevel" property.
- Combine "Freestyle Edge Mark" and "Freestyle Face Mark" into one "Freestyle" property.
- Remove word "Edge" from Crease, Sharp, and Seam properties, to match others.
- Group all of the above together in the UI.

This is a breaking change (that will be handled with others in migration),
but doesn't introduce any visual changes in the default theme (and almost any theme).

Pull Request: https://projects.blender.org/blender/blender/pulls/146732
2025-09-25 14:02:46 +02:00
Jeroen Bakker
1a0a35ac93 Fix #146559: Vulkan: Wide lines not working in custom PyGPU shaders
For wide line rendering it is preferred to use polyline shaders. However
creating a custom shader is complicated and a stone to far for many
scriptors.

This PR allows using line_width_set when wide line rendering is
supported by the platform.

Pull Request: https://projects.blender.org/blender/blender/pulls/146762
2025-09-25 14:02:11 +02:00
Brecht Van Lommel
ca2a13991e Color Management: Reduce reliance on untonemapped view
No longer use it for display of images without View as Render, color swatches
and color picker, and 3D viewport in solid mode. Instead go directly to extended
sRGB matching the system graphics buffer.

We still use it for setting the image colorspace after Save as Render, and for
color value inspection in the image editor and tooltips.

Ref #144911

Pull Request: https://projects.blender.org/blender/blender/pulls/146487
2025-09-25 13:50:20 +02:00
Brecht Van Lommel
d290ff16c8 Color Management: Simplify image format initialization
No need to have a not for render case, these settings are only used when
Save as Render or Override are on and in that case it make sense to match
the default render view transform.

Ref #144911

Pull Request: https://projects.blender.org/blender/blender/pulls/146487
2025-09-25 13:50:20 +02:00
Brecht Van Lommel
059a3f3568 Color Management: Log added displays, views and color spaces
Ref #144911

Pull Request: https://projects.blender.org/blender/blender/pulls/146487
2025-09-25 13:50:20 +02:00
Brecht Van Lommel
239706c6b9 Color Management: Perform display emulation using display colorspaces
Rather than relying on an untonemapped view, use the OpenColorIO v2
display color spaces. This provides a generic way of converting between
display referred color spaces using the cie_xyz_d65_interchange role
as the intermediate display linear space.

On older configs without such display color spaces, display emulation
will be disabled.

Ref #144911

Pull Request: https://projects.blender.org/blender/blender/pulls/146487
2025-09-25 13:50:20 +02:00
Jeroen Bakker
7579dafc7e Fix: GPU Draw tests
Fail threshold needed to be modified due to recent changes.

Pull Request: https://projects.blender.org/blender/blender/pulls/146768
2025-09-25 13:40:13 +02:00
EaryChow
08c5437c13 Color Management: Use display colorspaces in OCIO config
Refactor the OCIO config to use the updated OpenColorIO 2.x recommended
format, which places spaces like sRGB and Display P3 into a separate section
dedicated to display-referred colorspaces, and puts view transforms in their
own section as well.

View transform are no longer declared as color spaces, they are now rerouted
to cie_xyz_d65_interchange, and then from there go to the display colorspace.

Also remove the dedicated reverse LUT for AgX. Since view transforms are
no longer colorspaces, using them in a `- !<ColorSpaceTransform>` line no
longer works.  The original way of re-using the inverse definition with
`- !<ColorSpaceTransform>` no longer works, it gets a bit troublesome. AgX
has never been able to perfectly invert, not even with this inverse LUT, so
might as well remove it.

Ref #144911

Pull Request: https://projects.blender.org/blender/blender/pulls/145519
2025-09-25 13:39:01 +02:00
Bastien Montagne
541f41c628 Tests: Split 'versioning' smoke-tests further.
While adding more tests does add a tiny bit of overhead, having tests
within the 10s range is better to ensure a good distribution of them
over many threads. It also helps narrowing down the actual blendfile in
case of issues.
2025-09-25 13:04:32 +02:00
Clément Foucault
6cca396e95 Node: Rewrite iter_shader_to_rgba_depth_count to not be recursive
This fixes a stack overflow on certain system when trying
to evaluate very long nodetrees. This is even more important
now that there is repeat nodes support for shaders.

Rel #146705

Pull Request: https://projects.blender.org/blender/blender/pulls/146761
2025-09-25 12:29:45 +02:00
Clément Foucault
581073533f GPU: Shader: Add orphan list to allow delayed deletion
This avoid crashes when a thread without GL context tries
to free a shader.

Fix #145966
Fix #144526

Pull Request: https://projects.blender.org/blender/blender/pulls/146720
2025-09-25 12:28:14 +02:00
Pablo Vazquez
e77261f306 UI: Move Render Preview operators to View menu
Move operators inside the "Render Preview" menu back to the View menu.

This does not include "Render Viewport Keyframes", see #146749

See PR for details and screenshots.

Pull Request: https://projects.blender.org/blender/blender/pulls/146756
2025-09-25 12:24:35 +02:00
Pablo Vazquez
4193cb4f17 UI: Rename animation footers to Playback Controls
Rename the menu item "Footer" in Animation/VSE to "Playback Controls".

This only affects the menu item label under `View`, in the following editors:
* Dope Sheet
* Graph Editor
* NLA Editor
* Sequencer

The name "footer" has issues:

* It's not descriptive of what it does/contains.
* It can be moved to the top, so no longer a footer.
* When used in other editors, it may contain different things so it
  is unexpected what to find in it.

See PR for screenshots.

Pull Request: https://projects.blender.org/blender/blender/pulls/146727
2025-09-25 12:16:32 +02:00
Clément Foucault
0d9a80ceeb Fix #146745: EEVEE: Missing dependency for displacement node 2025-09-25 12:14:22 +02:00
Sean Kim
344040a891 Tests: Update workspace UI tests
* Removes unused entries for 2D Animation
* Adds 'Storyboarding' test

Pull Request: https://projects.blender.org/blender/blender/pulls/146760
2025-09-25 11:57:14 +02:00
Sean Kim
327a1925cf Paint: Rename curve and curve_preset
This commit renames the following DNA fields and corresponding RNA
properties to better represnt usage:

* `Brush.curve` to `Brush.curve_distance_falloff`
* `Brush.curve_preset` to `Brush.curve_distance_falloff_preset`

Pull Request: https://projects.blender.org/blender/blender/pulls/146254
2025-09-25 11:54:53 +02:00
Sean Kim
b279e74889 Texture Paint: Ensure new catalogs are visible by default
Follow up to 06e391b5e4

Pull Request: https://projects.blender.org/blender/blender/pulls/146757
2025-09-25 11:40:44 +02:00
Christoph Lendenfeld
19bf803e51 Anim: Remove layer_prev and layer_next operators
The operators `action.layer_prev` and `action.layer_next` were already removed from
the UI in #13306

with this patch they are completely removed from code as well.

Pull Request: https://projects.blender.org/blender/blender/pulls/146755
2025-09-25 11:39:28 +02:00
Julien Kaspar
06e391b5e4 Image Paint: Add pixel art brushes and catalogs
Added a couple new Texture Paint mode brushes related to #146384:
- Paint Pixel Art
- Erase Pixel Art

(NOTE: Just like I wrote in the brush description, they are only
working in the image editor for now. In the 3D Viewport they can be
used but do not lead the the same result yet.)

To keep the related brushes close together I organized the brushes
into catalogs, similar to grease pencil.

Pull Request: https://projects.blender.org/blender/blender/pulls/146717
2025-09-25 11:03:15 +02:00
Clément Foucault
4886f3de04 GPU: Remove leftover debug code generating files 2025-09-25 11:01:42 +02:00
Clément Foucault
fe213f80a4 GPU: Shader: Make info files generated
This is the first step of moving the create infos
back inside shader sources.

All info files are now treated as source files.
However, they are not considered in the include tree
yet. This will come in another following PR.

Each shader source file now generate a `.info` file
containing only the create info declarations.

This renames all info files so that they do not
conflict with their previous versions that were
copied (non-generated).

Pull Request: https://projects.blender.org/blender/blender/pulls/146676
2025-09-25 10:57:02 +02:00
Richard Antalik
e655243825 Fix: infinite loop when region is too small
When region is too small, `calculate_grid_step()` can return value of 0.
This can happen if the editor happens to be just few px wider than side panel.

The root cause was, that region pixelsize was calculated with
`BLI_rcti_size_x(&v2d->mask)`, but the result needs to be offset by 1.

Caused by ab43c57a2a

Pull Request: https://projects.blender.org/blender/blender/pulls/146365
2025-09-25 10:48:32 +02:00
luz paz
bee5cdeaea Fix: Typo in tools/triage/issues_needing_info.py
Fixes user-facing typo. Found via codespell

Pull Request: https://projects.blender.org/blender/blender/pulls/146716
2025-09-25 10:32:04 +02:00
Clément Foucault
e098441b5a GPU: Material: Improve limit of UBO size
This moves the UBO size limit to be a capability.
This allows to check if size fits the requirements before
creating it and avoids hitting an assert.

Rel #146705

Pull Request: https://projects.blender.org/blender/blender/pulls/146728
2025-09-25 09:44:12 +02:00
Clément Foucault
3cf7ce0fd1 Fix: Node: Integer overflow in GPU nodetree evaluation
This was caused by `stack_index` being stored as a `short`
even though the stack `index` inside `ntree_exec_begin` was
`int`.

Rel #146705

Pull Request: https://projects.blender.org/blender/blender/pulls/146733
2025-09-25 09:43:22 +02:00
Brady Johnston
c010bab779 Nodes: Reorder socket data types list
Currently there is a difference in the assigned accelerator keys for
Boolean attribute type for Store Named Attribute and Named Attribute.
For Named Attribute it is assigned <kbd>B</kbd> as a user would expect
but in the Store Named Attribute it is assigned <kbd>o</kbd> as it comes
after _Byte Color_ which leads to confusion when using lots of each node.

This PR changes the order of the socket types so simpler types come
first, and updates the attribute types to reflect this same ordering.

This fixes the issue with the accelerator keys and improves overall
consistency. The more specialised subtypes such as 8-Bit Integer, Byte
Color and 2D Vector all appear at the end of the menu in the same order.

This ordering will also be reflected in other nodes such as Sample Index,
Sample Curve etc.

Pull Request: https://projects.blender.org/blender/blender/pulls/146722
2025-09-25 09:34:36 +02:00
Richard Antalik
97297bd167 Fix #146484: Stack overflow due to recursive strip rendering
When effect of adjustment layer strip is moved below the adjustment
layer, this causes infinite loop in strip rendering. Same happens when
you use multicam strip and set source channel to one of its effects.

This is fixed by passing `SeqRenderState` to the effects. If any strip
renders "seqbase" pointer of strip is stored in set in the render state
struct. If the pointer exists in this set, function returns without
rendering anything. In other words, The strip must never render itself.

Pull Request: https://projects.blender.org/blender/blender/pulls/146624
2025-09-25 08:48:56 +02:00
Campbell Barton
84559f8bd4 Fix: trailing zeros added to the rounded value with split units
When units were split into larger and smaller values, the larger
value is rounded and should not show trailing zeros.
Trailing zeros should only be used for the smaller unit.

Ref !140790
2025-09-25 13:55:21 +10:00
Campbell Barton
a69dede3f1 Cleanup: minor changes to unit comments 2025-09-25 13:53:10 +10:00
Campbell Barton
2f3e6e69df Cleanup: rename BM_mesh_{validate=>is_valid}
The term validate is often used to make the data valid
(e.g. BKE_mesh_validate) where is this only checks the mesh is valid.
2025-09-25 11:22:23 +10:00
Aaron Carlisle
d33e78bf06 UI: Movie Clip Editor: Consistent Header Layout
Align header layout with the Image Editor:

- Place ID selectors and transform controls in the center
- Place Display properties to the far right.
2025-09-24 20:40:12 -04:00
Aaron Carlisle
f16320e118 UI: Improve Movie Clip Display Aspect Ratio
- Disable animation support (consistent with image editor)
- Use property split layout
2025-09-24 20:20:15 -04:00
Aaron Carlisle
18d0532915 UI: Movie Clip Editor: Add Overlays Support
Move several clip and mask display options into a common Overlays popover,
consistent with other editors. Includes a global toggle (Shift-Alt-Z) to
show/hide all overlays at once.

Also adds the missing annotations toggle, cursor visibility toggle, and moves mask display options in
the Image Editor into the Overlays popover due to shared code paths.

See PR for images.

Pull Request: https://projects.blender.org/blender/blender/pulls/145895
2025-09-24 23:51:06 +02:00
Nika Kutsniashvili
e0392599f8 UI: Theme: Remove face dot color property
Mesh faces have a separate theme color for selected dots (1px dot in the center of the face),
in both the 3D Viewport and the Image Editor.

I don't think there is any justification for why that 1 pixel has to be a different color from rest
of the active face. Even if result isn't satisfying, we should be tweaking Face Selected color
for this purpose. 1 pixel doesn't deserve its own theme setting.

This PR removes property from both editors, and instead uses "Face Selected" color with alpha
hardcoded to 1 (removed properties didn't have alpha). Also note that dot is still visible in 3D viewport
because Face Selected color is different from Face Mode Selected color, which is used for faces
when dots are drawn.

There are no visual changes in default themes.

Pull Request: https://projects.blender.org/blender/blender/pulls/145364
2025-09-24 19:04:28 +02:00
Habib Gahbiche
2e8d5a238e Cleanup: Description for deprecated use_nodes
Pull Request: https://projects.blender.org/blender/blender/pulls/146721
2025-09-24 18:41:50 +02:00
Brecht Van Lommel
790527b149 Fix: Compositor test should ignore Software metadata with Blender version
OpenEXR files now write the Blender version, so this would fail
comparing metadata when we bump it.

Pull Request: https://projects.blender.org/blender/blender/pulls/146711
2025-09-24 18:08:44 +02:00