Commit Graph

5739 Commits

Author SHA1 Message Date
Jacques Lucke
cd952a1a70 Cleanup: Nodes: improve eager closure evaluation comment 2025-06-24 09:54:55 +02:00
Guillermo Venegas
e300d44e69 Refactor: UI: Add uiLayout use_property_decorate methods
This replaces uiLayout use_property_decorate API with uiLayout
methods, following uiLayout refactors and the Python API naming.

Pull Request: https://projects.blender.org/blender/blender/pulls/140887
2025-06-24 03:52:17 +02:00
Guillermo Venegas
d600b1002a Refactor: UI: Add uiLayout use_property_split methods
This replaces uiLayout use_property_split API with uiLayout methods,
following uiLayout refactors and the Python API naming.

Pull Request: https://projects.blender.org/blender/blender/pulls/140874
2025-06-23 19:07:09 +02:00
Jacques Lucke
a33881286a Cleanup: extract function determining whether socket is always single 2025-06-23 18:11:06 +02:00
Omar Emara
0e304c813c Refactor: Use Float2 images internally if possible
Previously, Float2 images were internally stored as either Float3 or
Float4 images due to limitations in the implementation, which no longer
exists. So this patch refactors the compositor code to store Float2
images in actual Float2 containers, which gives better performance and
memory savings.

Some algorithms were adjusted to operate on Float2 instead of Float3 as
was previously the case.

Pull Request: https://projects.blender.org/blender/blender/pulls/140855
2025-06-23 14:34:37 +02:00
Jacques Lucke
c8997d821e Refactor: Nodes: add InferenceValue utility class for socket usage inferencing
This removes the need to deal with void pointers and explicit casts in many
places. Also it simplifies possibly extending what kind of values can be stored
for each socket in the future.

Pull Request: https://projects.blender.org/blender/blender/pulls/140844
2025-06-23 12:54:33 +02:00
Jacques Lucke
ea618c2027 Refactor: Nodes: improve socket value variant construction
Previously, there was the issue that `SocketValueVariant` had a constructor that
took a forwarding reference as parameter. This was problematic, because this
could potentially hide copy/move constructors which is not intentional. This
patch makes sure that these special constructors are not overridden and adds two
static utility functions to make sure it's still straight forward to construct
the `SocketValueVariant` on a single line.

Clangd also warned about this case.

Pull Request: https://projects.blender.org/blender/blender/pulls/140842
2025-06-23 10:08:43 +02:00
Guillermo Venegas
cc5ba71114 Refactor: UI: Add uiLayout fixed_size, red_alert, root_panel, search_weight and width methods
This replaces API for accessing the uiLayout fixed_size,
red_alert, root_panel, search_weight and width properties
with methods, following uiLayout refactors and the
Python API naming

Pull Request: https://projects.blender.org/blender/blender/pulls/140673
2025-06-23 06:55:01 +02:00
Hans Goudey
86d60ae663 Cleanup: Build errors without unity builds after recent UI refactor
Caused by 091db9d52b
2025-06-20 13:03:49 -04:00
Guillermo Venegas
091db9d52b Cleanup: UI: Use UI_interface_layout.hh instead of UI_interface.hh
This removes the include `UI_interface_layout.hh` from
`UI_interface_c.hh`, and in many places this swaps the include
from `UI_interface.hh` to `UI_interface_layout.hh`.

Also, cleanups some `UI_interface.hh` includes with
`UI_interface_icons.hh` or `UI_interface_types.hh`
2025-06-20 18:07:47 +02:00
Benjamin Beilharz
bc7412860a Compositor: Support all interpolation types for Map UV node
This patch adds support for Bilinear and Bicubic interpolation for the
Map UV node.

Pull Request: https://projects.blender.org/blender/blender/pulls/140351
2025-06-19 16:18:13 +02:00
Omar Emara
9e0e76f8ab Compositor: Remove Dot output from Normal node
This patch removes the Dot output from the Normal node. This previously
computed negative the dot product of the normalized inputs. We are
removing it because we now have a Vector Math node that can compute the
dot product, and because it output is confusing, considering it computes
the negative of the product and it implicitly normalized the input.

The node was moved to the input category, and might be later extended to
allow normal picking from the scene or normal passes.

Fixed #132770.

Pull Request: https://projects.blender.org/blender/blender/pulls/140599
2025-06-19 16:12:45 +02:00
Guillermo Venegas
96dee123d1 Refactor: UI: Add uiLayout aligment methods
This replaces uiLayout aligment API with uiLayout methods,
following uiLayout refactors and the Python API naming.

Also this converts the layout aligment enum to a fixed enum class.

Pull Request: https://projects.blender.org/blender/blender/pulls/140622
2025-06-19 02:57:37 +02:00
Benjamin Beilharz
1cb548fccf Fix: Displace node uses bilinear for bicubic case
Prior implementation failed to look-up bicubic shader name. This commit
adds the case to the `get_shader_name` method.

Pull Request: https://projects.blender.org/blender/blender/pulls/140593
2025-06-18 15:03:25 +02:00
Damien Picard
d323ec0710 Compositor: Rename Rotate node Degr input to Angle
This patch renames the Degr input of the Rotate compositing node to
Angle. That's because it is needlessly shortened and is also wrong,
as the unit is internally radians and it also depends on the scene
settings on the UI side and can be radians.

Reference #96219.

Resolves #53574.

Pull Request: https://projects.blender.org/blender/blender/pulls/110637
2025-06-18 08:56:04 +02:00
Jacques Lucke
1bb49edf7f Geometry Nodes: add structure type inferencing tests
The way these tests work is similar to the existing field inferencing tests.
There is a .blend file that is opened and then we check the inferred structure
types from Python. A new `NodeSocket.inferred_structure_type` property is added
to be able to access this information. Other then the field inferencing tests,
this patch does not directly check the socket shapes, which are not always
exactly determined by the inferred structure type.

This also fixes a few issues I found while adding the tests.

Pull Request: https://projects.blender.org/blender/blender/pulls/140520
2025-06-18 08:39:01 +02:00
Guillermo Venegas
ba55e16532 Refactor: UI: Add uiLayout block get method
This replaces API for obtaining the uiLayout block with a method,
following uiLayout refactors.

Pull Request: https://projects.blender.org/blender/blender/pulls/140549
2025-06-17 19:30:11 +02:00
илья _
9fcb41de5e Cleanup: unused type alias in release build
`volume_grid_function_eval.cc(635,15): warning: unused type alias 'ValueType' [-Wunused-local-typedef]`

Pull Request: https://projects.blender.org/blender/blender/pulls/140497
2025-06-17 17:49:21 +02:00
Alaska
b561c78f93 Nodes: Remove legacy combine/separate nodes
In Blender 3.3 (1) the individual combine and separate color nodes were
combined together into a single combine/separate color node.

To ensure legacy addons still worked, the old nodes were left in
Blender, but hidden from the Add menus.

It has been nearly 3 years since that change was made, most if not all
addons should have been updated by now. So this commit removes these
hidden legacy nodes.

(1) blender/blender@82df48227b

Pull Request: https://projects.blender.org/blender/blender/pulls/135376
2025-06-17 15:36:33 +02:00
Omar Emara
811c513d90 Compositor: Remove Map Value node
This patch removes the Map Value node that was deprecated in 4.5 and was
planned for removal in 5.0. The common Shading Map Range node should be
used instead.

Pull Request: https://projects.blender.org/blender/blender/pulls/140533
2025-06-17 13:50:17 +02:00
Omar Emara
3ba4d8f58d Compositor: Remove Vector Curves node
This patch removes the Vector Curves node that was deprecated in 4.5 and
was planned for removal in 5.0. The common Shading Vector Curves node
should be used instead.

Pull Request: https://projects.blender.org/blender/blender/pulls/140529
2025-06-17 12:14:39 +02:00
Omar Emara
5e0c31a79e Compositor: Remove Separate/Combine XYZ node
This patch removes the Separate/Combined XYZ node that was deprecated in
4.5 and was planned for removal in 5.0. The common Separate/Combine XYZ
node should be used instead.

Pull Request: https://projects.blender.org/blender/blender/pulls/140524
2025-06-17 11:15:33 +02:00
Jonas Holzman
dce3ce7a04 UI: Nodes: Rename Levels node "Std Dev" output to "Standard Deviation"
This commit renames the Compositor Levels node output socket from
"Std Dev" to "Standard Deviation". This is a 5.0 breaking change,
following up on PR #140498, #140495 and #96219

Pull Request: https://projects.blender.org/blender/blender/pulls/140500
2025-06-17 10:36:55 +02:00
Omar Emara
20db37a37f Compositor: Remove Math node
This patch removes the Math node that was deprecated in 4.5 and was
planned for removal in 5.0. The common Shader Math node should be used
instead.

Pull Request: https://projects.blender.org/blender/blender/pulls/140483
2025-06-17 10:21:31 +02:00
Benjamin Beilharz
a731181f16 Refactor: Changing shader fetching name to match other nodes
This commit unifies the naming for the method fetching the right shader
for the interpolation methods inside the compositor.

Pull Request: https://projects.blender.org/blender/blender/pulls/140486
2025-06-17 10:00:33 +02:00
Jacques Lucke
e103d864c3 Geometry Nodes: add operator to sync sockets in bundle and closure nodes
Previously, the right sockets were already created on closure/bundle nodes when
link-drag-search is used. However, after initialization, there was no automatic
way to synchronize the sockets again after changes to one of the nodes. Instead
one had to copy the changes manually.

This patch adds a new operator that can automatically update the sockets on the
following nodes based on what is connected: Combine Bundle, Separate Bundle,
Closure (zone), Evaluate Closure.

The button is always visible in the side bar. In the future we may also want to
show it inside of the node when syncing is necessary. However, that's not done
in this patch. It's also a little bit tricky because detecting whether syncing
is necessary is not necessarily cheap (it requires traversing the tree including
going into nested node groups).

If no signature or conflicting signatures for the bundle or closure are found,
the operator does nothing. In this case, the user is currently responsible to
create/remove the sockets manually.

Pull Request: https://projects.blender.org/blender/blender/pulls/140449
2025-06-17 06:18:01 +02:00
Guillermo Venegas
b03e64223c Refactor: UI: Add active_default, activated_init, enabled methods
This replaces API for accessing the uiLayout  active_default,
acviated_init, enabled properties with methods, following uiLayout
refactors and the Python API naming.

Pull Request: https://projects.blender.org/blender/blender/pulls/140226
2025-06-16 20:23:28 +02:00
Nathan Vegdahl
9b1f4dc483 Merge branch 'blender-v4.5-release' 2025-06-16 17:33:09 +02:00
Nathan Vegdahl
33b712f909 Core: Always use current open file for blend_name variable
Previously `blend_name` was using the same path to get its file name
as `//` used. However, the choice of path for `//` seems to be
bespokely chosen at each call site.  There may be a logic to it, but
if so it's not immediately clear what it is.

This PR changes `blend_name` to instead always use the currently open
("global") file path, making it well-defined and predictable for
users.

This also prepares better for PR #139438 for 5.0, which adds
`blend_name_lib`, which always uses the blend file that the ID owning
the path is linked from. Over-all this should be much more predictable
and controllable for users.

Pull Request: https://projects.blender.org/blender/blender/pulls/140474
2025-06-16 17:32:11 +02:00
Omar Emara
efc2fd16a9 Compositor: Remove Map Range node
This patch removes the Map Range node that was deprecated in 4.5 and was
planned for removal in 5.0. The common Shader Map Range node should be
used instead.

Pull Request: https://projects.blender.org/blender/blender/pulls/140476
2025-06-16 17:00:43 +02:00
Omar Emara
961fdb9a86 Compositor: Remove Mix Color node
This patch removes the Mix Color node that was deprecated in 4.5 and was
planned for removal in 5.0. The common Shader Mix Color node should be
used instead.

Pull Request: https://projects.blender.org/blender/blender/pulls/140468
2025-06-16 15:59:11 +02:00
Omar Emara
0bac721763 Compositor: Remove Color Ramp node
This patch removes the Color Ramp node that was deprecated in 4.5 and
was planned for removal in 5.0. The common Shader Color Ramp node should
be used instead.

Pull Request: https://projects.blender.org/blender/blender/pulls/140462
2025-06-16 14:56:22 +02:00
marcopavanello
ab21755aaf Shaders: Remove old Preetham and Hosek sky texture models
Remove old Preetham and Hosek-Wilkie sky models, which are less accurate.
The Nishita improved model has been available for long enough.

Pull Request: https://projects.blender.org/blender/blender/pulls/139923
2025-06-16 14:36:18 +02:00
Omar Emara
27b83c5fdc Compositor: Remove Value node
This patch removes the Value node that was deprecated in 4.5 and was
planned for removal in 5.0. The common Shader Value node should be used
instead.

Pull Request: https://projects.blender.org/blender/blender/pulls/140460
2025-06-16 13:47:34 +02:00
Bastien Montagne
2d490d47a4 Merge branch 'blender-v4.5-release' 2025-06-16 12:43:46 +02:00
Bastien Montagne
6ccdb8c06e I18N: Add comment about required manual sync in nodes code.
Nodes code uses direct access to enum property values definition
(outside of the RNA API) to generate UI (translated) messages, this is
risky/messy since the i18n context potentailly defined for the actual
RNA property is not available in these cases.
2025-06-16 12:43:10 +02:00
Damien Picard
ec22a91233 I18n: Allow translation of Bitwise Math node label
The Bitwise Math node's label uses a formatted string, where the
operation name was not translated.
2025-06-16 12:39:02 +02:00
Brecht Van Lommel
b920f6f1a7 Shaders: Remove point density texture node
This is replaced by geometry nodes, where volumes can now be generated from
point clouds and meshes with more control, and more efficient rendering as a
sparse volume.

No backwareds compatibility is provided, as this would be complicated, and
probably this feature was not used much in the past few years.

This node was supported in Cycles only, not by EEVEE.

Pull Request: https://projects.blender.org/blender/blender/pulls/140292
2025-06-16 12:06:02 +02:00
Mohamed Hassan
0a4b92678c Compositor: Improve Glare quality option
This patch enhances the quality setting of the Glare node. Previously,
Medium and Low quality were implemented using a single tap interpolation
downsampling filter, which means small highlights that only span a small
number of pixels could be missed during downsampling, and that might
change across frames, causing flickering.

To fix this, we use a higher quality downsampling filter that averages
the entire 2x2 or 4x4 pixel blocks for the Medium and Low quality
settings respectively.

The upsampling pass also needs to be improved to avoid offsets, but this
will be implemented separately.

Pull Request: https://projects.blender.org/blender/blender/pulls/140237
2025-06-16 10:38:40 +02:00
илья _
2818424102 Fix #139936: Geometry Nodes: background of Volume Grid is lost after math node
We have to execute math node both for real Grid tree nodes and for background
values. So internal logic of sharing background values will work in case such
values are used by some nodes.

A field input is evaluated on a tile with maximum bounds to get the background
value.

Pull Request: https://projects.blender.org/blender/blender/pulls/140410
2025-06-16 08:38:40 +02:00
Omar Emara
498a2e5bcd Compositor: Remove deprecated compositor properties
This patch removes the properties that were marked as deprecated in the
4.x series and was planned for removal in 5.0. Some DNA members were
marked as deprecated or removed in correspondence with this change.

Pull Request: https://projects.blender.org/blender/blender/pulls/140355
2025-06-16 08:12:26 +02:00
Omar Emara
ed86b1fcf7 Merge branch 'blender-v4.5-release' 2025-06-16 09:09:14 +03:00
Omar Emara
976efdcac9 Compositor: Remove storage of Alpha Over node
This patch removes the storage of the Alpha Over node, since it is no
longer used. This is a continuation of b62ef2cdd6.

Pull Request: https://projects.blender.org/blender/blender/pulls/140359
2025-06-16 08:07:21 +02:00
илья _
3a8655a12b Fix: Geometry Nodes: corrupted grid after math node
There is the use-after-free of the tile value on the stack.

Pull Request: https://projects.blender.org/blender/blender/pulls/140405
2025-06-16 07:17:18 +02:00
Campbell Barton
bb9d491ca5 Merge branch 'blender-v4.5-release' 2025-06-14 16:02:07 +10:00
Campbell Barton
c482c52346 Cleanup: sort CMake file lists 2025-06-14 15:57:33 +10:00
Jacques Lucke
a996490b83 Fix: use runtime format string
This is necessary to compile Blender with C++20.
2025-06-13 14:31:40 +02:00
Jeroen Bakker
65685b2c70 Merge branch 'blender-v4.5-release' 2025-06-13 13:31:01 +02:00
Clément Foucault
4fe75da973 EEVEE: Remove all remaining reference of EEVEE next
This changes the engine identifier back to `BLENDER_EEVEE`.

We keep the `BLENDER_EEVEE_NEXT` identifier around for
versioning reasons (have to detect when it is the active
engine of a older file).

This also rename a bunch of pannels that were using `next`
in their name.

This is a breaking change for Addons compatibility.

Pull Request: https://projects.blender.org/blender/blender/pulls/140282
2025-06-13 12:36:14 +02:00
Habib Gahbiche
f98462ff2e Fix: Crash if new_compositing_node_group is called from wrong context
How to reproduce:
1. Create a new blend file without a compositing node tree
3. Go to Scripting workspace (node editors should not be visible)
2. In python console type
`bpy.ops.node.new_compositing_node_group`
3. Observe crash

The reason is that `node_composit_poll_rlayers()` fails because the
Render Layers node cannot be added to a non local compositing node
tree. This restriction was removed so the poll should succeed.

Pull Request: https://projects.blender.org/blender/blender/pulls/140222
2025-06-13 12:07:52 +02:00