Commit Graph

147060 Commits

Author SHA1 Message Date
Xavier Hallade
a5d8bd2e29 Cycles: Drop inline hint on light_tree_pdf
Dropping the inlining hint for `light_tree_pdf` and reverting to the
default inlining thresholds for DPC++ compiler gives a ~4% speedup on
classroom and other scenes on Arc B580.

Pull Request: https://projects.blender.org/blender/blender/pulls/135042
2025-02-26 20:14:05 +01:00
Clément Foucault
973813f8ba Cleanup: DRW: Remove unused DRWInstanceData
Rel #134690
2025-02-26 19:43:49 +01:00
Weizhen Huang
f116329cab Fix: Audaspace: Unsupported availability guard
`__builtin_available` needs to be used with `if()`

Pull Request: https://projects.blender.org/blender/blender/pulls/135161
2025-02-26 17:58:44 +01:00
Jacques Lucke
63e6f53ba0 Modifiers: new Visual Geometry to Objects operator
This adds a new `Visual Geometry to Objects` operator which is added to the
`Apply` menu.

It creates new objects from the evaluated geometry of the active object. Other
than e.g. applying modifiers, this operator does keep all generated data and
creates new objects and collections for instances. It does have some
similarities to `Make Instances Real` with the main difference that it doesn't
actually realize instances, i.e. instanced geometry is still shared between all
objects using it.

It does intentionally not replace the original object, because the semantics of
that aren't all that obvious. It's especially tricky when the object was
referenced by other objects. Instance attributes are not preserved currently.

Pull Request: https://projects.blender.org/blender/blender/pulls/134119
2025-02-26 17:48:54 +01:00
Sergey Sharybin
5378774633 Merge branch 'blender-v4.4-release' 2025-02-26 17:06:37 +01:00
Sergey Sharybin
1a2590afed Fix missing report about crashed render tests
Tricky non-obvious regression introduced by #133879: crashed test
was never appended to the test results.

Pull Request: https://projects.blender.org/blender/blender/pulls/135176
2025-02-26 17:05:44 +01:00
Julien Duroure
a3ff71f80f Merge branch 'blender-v4.4-release' 2025-02-26 16:42:21 +01:00
Julien Duroure
22aa2fbfa8 Fix #135129 glTF Collection Exporter: Avoid to export multiple scene info when Collection Export 2025-02-26 16:40:37 +01:00
Julien Duroure
bd64807fde Merge branch 'blender-v4.4-release' 2025-02-26 16:36:04 +01:00
Julien Duroure
0778ad776e glTF exporter: Better slot management:
Avoid non valid glTF file by avoiding exporting multiple slots with same target_id_type in the same animation for a single object:
- Make sure to create multiple animation when needed
- Use action.name for active slots (can have multiple slots when different target_id_type)
- Use action.name - slot.name_display for additional animations
2025-02-26 16:34:50 +01:00
Aras Pranckevicius
d64aa0112f VSE: speedup RE_render_result_rect_from_ibuf by avoiding memory clear
The RE_render_result_rect_from_ibuf function (used only by VSE) was
allocating memory for the render result, clearing it to zero and
immediately overwriting it with the image pixel data. Remove the
"clear to zero" part.

Rendering a 1920x1080 resolution movie with VSE (using float
pixel data), average RE_render_result_rect_from_ibuf time goes from
6.8ms down to 3.8ms

Pull Request: https://projects.blender.org/blender/blender/pulls/135170
2025-02-26 16:17:48 +01:00
Ray Molenkamp
34d4384966 Merge remote-tracking branch 'origin/blender-v4.4-release' 2025-02-26 08:02:53 -07:00
Ray Molenkamp
2a283772e3 Deps: Windows: x64: Rebuild openexr with upstream PR 1986
This fixes #134802, blender side pr #135037
2025-02-26 07:57:13 -07:00
Philipp Oeser
a5d652e5c0 Merge branch 'blender-v4.4-release' 2025-02-26 15:56:25 +01:00
Philipp Oeser
a636b101d7 Fix #121609: Shrinkwrap invert vertex group (no group specified) wrong
Same was true for SimpleDeform.

Invert vertex group influence should only have an effect if there is a
group specified.
Shrinkwrap always uses a weight (gets weights via
`BKE_defvert_array_find_weight_safe` -- which gets full weight for no
group specified, rightfully so), if this gets inverted, we get no
influence at all.

Now move the inverting of the weights to `BKE_defvert_array_find_weight_safe`,
adjust the other callers accordingly (Bevel also does not need to check for a valid
vertexgroup beforehand).

Pull Request: https://projects.blender.org/blender/blender/pulls/121625
2025-02-26 15:56:08 +01:00
Weizhen Huang
7b3f7ccae0 Merge branch 'blender-v4.4-release' 2025-02-26 15:51:55 +01:00
Lukas Stockner
9254532b8b Fix #129306: Cycles: Principled coat doesn't pass furnace test
This implements three improvements to the energy preservation and albedo
scaling logic, which help the Principled BSDF pass the white-furnace test
when using the coat layers at high roughness.

Specifically, at roughness 0.3, the albedo scaling brings it from 60% at
the edge to 95%, and with the energy preservation it's 99.8%.

Pull Request: https://projects.blender.org/blender/blender/pulls/134620
2025-02-26 15:47:21 +01:00
Weizhen Huang
9ee9a2b789 Fix #135145: object visible to volume scatter when ray visibility is off
The comment was added in e0857ad152, and volume scatter visibility is
supported since cdd1d5a93c.

Pull Request: https://projects.blender.org/blender/blender/pulls/135168
2025-02-26 15:45:58 +01:00
Philipp Oeser
a8ed137e52 Merge branch 'blender-v4.4-release' 2025-02-26 15:38:50 +01:00
Philipp Oeser
bc3c6c4e7c Fix #134895: Cancelling sculpt mode elastic transforms deforms mesh
Since the transform system uses previous positions to update to
"original" positions upon cancel, the elastic transforms are not working
well with this (due to their `TransformDisplacementMode::Incremental`
nature).

To resolve, rely on restoring positions from undo (as done elsewhere in
sculpt).

Pull Request: https://projects.blender.org/blender/blender/pulls/134919
2025-02-26 15:38:29 +01:00
Philipp Oeser
ef9742d5de Merge branch 'blender-v4.4-release' 2025-02-26 15:35:53 +01:00
Philipp Oeser
7ac3de70fd Fix #135159: Copied modifier doesn't keep the name of the modifier
`BKE_modifier_copy_ex` did it (which is called e.g. when copying the
whole stack from one object to another), but when simply duplicating a
modifier (`modifier_copy`), it was just ensuring a unique name (based on
the default name) without copyig the existing name prior.

Pull Request: https://projects.blender.org/blender/blender/pulls/135172
2025-02-26 15:35:35 +01:00
Brecht Van Lommel
1a26190954 Merge branch 'blender-v4.4-release' 2025-02-26 15:19:51 +01:00
Brecht Van Lommel
0741d0141e Fix: Blender as Python Module shared library directory wrong
This could affect for example the USD and MaterialX Python modules
that are now bundled, and need appropriate paths to their libraries.

Ref #134676

Pull Request: https://projects.blender.org/blender/blender/pulls/134937
2025-02-26 15:19:23 +01:00
Philipp Oeser
51f0758f61 Merge branch 'blender-v4.4-release' 2025-02-26 14:14:36 +01:00
Philipp Oeser
d2ecf66492 Fix #120697: better error for BVHTree.FromObject()
When called on an object that you cannot get a mesh from (e.g. Empties),
you would run into an unhelpful "SystemError: <built-in method
FromObject of type object at ...> returned NULL without setting an
exception"

Now be more specific in the error message.

Pull Request: https://projects.blender.org/blender/blender/pulls/135162
2025-02-26 14:14:14 +01:00
Clément Foucault
f3736aa7af Fix #135018: EEVEE: Plane lightprobe renders incorrectly in ortho view
Caused by wrong view vector which is used to check which way
to point the clipping plane at.

To be backported to 4.2.

Pull Request: https://projects.blender.org/blender/blender/pulls/135166
2025-02-26 14:13:33 +01:00
Pratik Borhade
3a1e7ffebe Fix #134737: Node: Panel deleted when Parented with children
Skip `move_to_parent()` operation when new_parent is already
children of "item" to avoid running into this situation.

Pull Request: https://projects.blender.org/blender/blender/pulls/135148
2025-02-26 14:13:33 +01:00
Clément Foucault
e9dfe79054 Fix #135018: EEVEE: Plane lightprobe renders incorrectly in ortho view
Caused by wrong view vector which is used to check which way
to point the clipping plane at.

To be backported to 4.2.

Pull Request: https://projects.blender.org/blender/blender/pulls/135166
2025-02-26 14:01:30 +01:00
Omar Emara
6365110312 Cleanup: GPU: Remove common_math.glsl includes
This patch refactors GPU shaders to remove includes to the utility
gpu_shader_common_math.glsl file. This is done because it has duplicate
functions that exist in other files, and it was really created for use
in GPU material nodes.

The safe_divide and hypot functions were removed since they exist in
gpu_shader_math_base_lib.glsl.

The compatible_[mod|pow] and wrap functions were moved into
gpu_shader_math_base_lib.glsl.

The floor_to_int function was inlined since it was trivial and only used
in one place.

The quick_floor was removed because it was unused.

The euler_to_mat3 function was replaced with the from_rotation function
from gpu_shader_math_matrix_lib.glsl.

Now the file only contains some GPU material node utility functions.

Pull Request: https://projects.blender.org/blender/blender/pulls/135160
2025-02-26 13:37:20 +01:00
Clément Foucault
5805c27f75 EEVEE: Update pointcloud tests after radius fix
Rel #135123
2025-02-26 13:05:11 +01:00
Aras Pranckevicius
844c6e1280 Cleanup: rename IMB divers.cc -> conversion.cc
Looks like "divers" comes from ancient times, Dutch word meaning "misc".
But by now, everything in that file is about conversion between different
pixel data types.

Pull Request: https://projects.blender.org/blender/blender/pulls/135165
2025-02-26 12:44:33 +01:00
Aras Pranckevicius
148aa54398 ImBuf: unify color space transform threaded/non-threaded functions
There's no point in having non-threaded image color space conversion functions.
So merge the threaded and non-threaded functions and clarify names while at it:

- IMB_colormanagement_transform & IMB_colormanagement_transform_threaded
    -> IMB_colormanagement_transform_float
- IMB_colormanagement_transform_byte & IMB_colormanagement_transform_byte_threaded
    -> IMB_colormanagement_transform_byte
- IMB_colormanagement_transform_from_byte & IMB_colormanagement_transform_from_byte_threaded
    -> IMB_colormanagement_transform_byte_to_float

These places were doing single-threaded colorspace conversion previously, and
thus now are potentially faster:
- IMB_rect_from_float (used in many places)
- EXR image "save as render" saving (image_exr_from_scene_linear_to_output)
- Object baking (write_internal_bake_pixels, write_external_bake_pixels)
- General image saving, clipboard copy, movie preparation
  (IMB_colormanagement_imbuf_for_write)
- Linear conversion when reading HDR images/movies
  (colormanage_imbuf_make_linear)
- EXR multi-layer conversion (render_result_new_from_exr)

For one case I benchmarked, which is to render out a 2D stabilized 10 bit input
movie clip out of VSE, the total render time went from 49sec down to 44sec
(Ryzen 5950X), one of the single-threaded parts was the colorspace conversion
in the movieclip code.

Pull Request: https://projects.blender.org/blender/blender/pulls/135155
2025-02-26 12:11:47 +01:00
Clément Foucault
b3e20616d0 Fix #135116: DRW: Leaks while using generated metarig rigs
In this case, the evaluator cache was never referenced and
the subdiv free queue empty. So the freeing of the cache
never happened.

This function is called once per frame and is unlikely
to generate overhead by doing one lock.
2025-02-26 12:11:23 +01:00
Aras Pranckevicius
525ece8465 ImBuf: faster orthogonal image rotation
Speedup IMB_rotate_orthogonal (used for example in auto-rotating
videos that were shot sideways on a phone) by: 1) not copying previous
pixel values into new result, only for them to be immediately
overwritten by rotated pixels, and 2) using multi-threading.

Performing rotation of 1920x1080 resolution HDR (float) video frame
goes from 20ms down to 5ms (Ryzen 5950X, Windows)

Pull Request: https://projects.blender.org/blender/blender/pulls/135158
2025-02-26 11:31:52 +01:00
Pratik Borhade
66a3500324 Fix #134737: Node: Panel deleted when Parented with children
Skip `move_to_parent()` operation when new_parent is already
children of "item" to avoid running into this situation.

Pull Request: https://projects.blender.org/blender/blender/pulls/135148
2025-02-26 11:10:40 +01:00
Omar Emara
e224e437da Cleanup: Compositor: Remove common_math_utils includes
This patches removes common_math_utils includes from compositor shaders
and replaces them with math lib includes. This involves moving some
functions from that file to to the math lib files.

Pull Request: https://projects.blender.org/blender/blender/pulls/135157
2025-02-26 10:47:39 +01:00
Philipp Oeser
7faee6b33b Merge branch 'blender-v4.4-release' 2025-02-26 09:13:03 +01:00
Philipp Oeser
462d887114 Fix #122152: Mask Points select API wrong
Only a single `select` prop was exposed, and this was set to "bezt.f1"
(so it affected the left handle only).

Now we add properties for `left`, `right` and the `single` handle, the
selection prop for the control point is renamed to
`select_control_point` [which is now in line with the API for a bezier
curve].

NOTE: setting/getting a `single` handle uses the existing functions for
this -- handle is selected if any of the right/left handle is selected,
setting the handle results in both handles getting selected.

Pull Request: https://projects.blender.org/blender/blender/pulls/135114
2025-02-26 09:12:46 +01:00
Philipp Oeser
138ede7194 Fix #134092: Keymap Editor can add an extra . to the end of an attribute
This happened for context attributes if already "complete" attributes
were typed/pasted in.

Reason is that this copies functionality from our intellisense
codecompletion where this is expected behavior, for context attributes
we cannot really use "tab" to expand, so it is less useful here.

When confirming (with the additional "."), the keymap entry would be
broken, so better solve in a way that we dont end up with those "." by
removing it.

NOTE: there might be ways to enhance the string-search behavior here (by
properly supporting "tab-expanding"), but this is a bit out-of-scope for
this bugfix.

Pull Request: https://projects.blender.org/blender/blender/pulls/135098
2025-02-26 09:12:28 +01:00
Philipp Oeser
ea40fef958 Merge branch 'blender-v4.4-release' 2025-02-26 09:11:15 +01:00
Jesse Yurkovich
1254cb7e03 Cleanup: USD: Use newly enabled BKE_fcurve_bezt_resize API
Pull Request: https://projects.blender.org/blender/blender/pulls/135147
2025-02-26 07:31:59 +01:00
Campbell Barton
57abd173bb Extensions: remove unused operators
Remove:
- EXTENSIONS_OT_dummy_progress it was mainly useful for development.
- EXTENSIONS_OT_package_enable_not_installed as it's no longer used.
2025-02-26 16:16:54 +11:00
Campbell Barton
900eed683f Extensions: add progress test to "test_cli"
Add a low level test that progress reporting works as expected in
preparation for removing the Blender operator outputting dummy progress.
2025-02-26 16:10:04 +11:00
Campbell Barton
9a11291eea Extensions: add "help" target for the makefile 2025-02-26 15:24:44 +11:00
Campbell Barton
89251ca11e Cleanup: remove "pep8" target from extensions makefile
Also remove file exclusions that no longer exist.
2025-02-26 15:14:05 +11:00
Campbell Barton
fdb8bc837f Cleanup: remove redundant assignment in extensions file dropping logic
The EXTENSIONS_OT_package_install_files instance had its _drop_variables
was temporarily set to True before being storing the extension values.

This value was never read so the assignment can be removed.
2025-02-26 14:22:06 +11:00
YimingWu
78b54dd6d5 Fix #134489: Grease Pencil: Simplify operator should follow selection
Previously Grease Pencil simplify operator didn't take stroke selection
into account when it's running in Adaptive or Merge modes. Now filters
points with selected stroke to make all modes have consistent behaviour.

Note that the behaviour of simplify is to operate on the entire
stroke if there's anything selected on the stroke. This is consistent
with what we have prior to switching to Grease Pencil v3 (4.2 and prior)
Arguably some modes can be further improved by only work on selected
segments, but it's beyond the scope of this patch.

Pull Request: https://projects.blender.org/blender/blender/pulls/134497
2025-02-26 02:33:31 +01:00
Harley Acheson
ac549dcfde UI: Show ANIM_OT_change_frame as "Set Frame (Solo Preview)" in VSE
Operator ANIM_OT_change_frame currently has a hidden feature when used
within the Sequencer, called "Solo Preview". But this feature is not
advertised anywhere in the interface. This PR adds a new property to
the operator called "seq_preview" that enables this feature and then
shows the name as "Set Frame (Solo Preview)".
2025-02-26 01:54:26 +01:00
Sean Kim
956a0fad80 Sculpt: Expose location parameter for sculpt.mask_by_color
Currently, there is no way to call the sculpt.mask_by_color operator
from the python API without simulating mouse events. This makes writing
python tests harder than it needs to be.

This commit does the following:
* Adds an exec callback for the mask_by_color operator.
* Adds new `location` property, an int array defined in region space
  coordinates to represent the mouse location.
* Extracts logic into a helper function so that the `invoke` and `exec`
  paths are functionally equivalent.

Pull Request: https://projects.blender.org/blender/blender/pulls/134964
2025-02-26 01:28:24 +01:00