Commit Graph

144942 Commits

Author SHA1 Message Date
Brecht Van Lommel
57ff24cb99 Refactor: Cycles: Add const keyword to more function parameters
Pull Request: https://projects.blender.org/blender/blender/pulls/132361
2025-01-03 10:23:24 +01:00
Brecht Van Lommel
dd51c8660b Refactor: Cycles: Add const keyword where possible, using clang-tidy
Check was misc-const-correctness, combined with readability-isolate-declaration
as suggested by the docs.

Temporarily clang-format "QualifierAlignment: Left" was used to get consistency
with the prevailing order of keywords.

Pull Request: https://projects.blender.org/blender/blender/pulls/132361
2025-01-03 10:23:20 +01:00
Brecht Van Lommel
f2c13cb639 Refactor: Cycles: Work around strange clang-tidy behavior in transform.h
Get rid of somewhat unusual include.

Pull Request: https://projects.blender.org/blender/blender/pulls/132361
2025-01-03 10:23:17 +01:00
Brecht Van Lommel
689633d802 Refactor: Cycles: Avoid unsafe memcpy and memcmp
Pull Request: https://projects.blender.org/blender/blender/pulls/132361
2025-01-03 10:23:15 +01:00
Brecht Van Lommel
da5251f06c Cleanup: Cycles: Remove unused math_matrix.h
Pull Request: https://projects.blender.org/blender/blender/pulls/132361
2025-01-03 10:23:13 +01:00
Brecht Van Lommel
0a0696261d Cleanup: Cycles: clang-tidy warnings about missing switch default case
Pull Request: https://projects.blender.org/blender/blender/pulls/132361
2025-01-03 10:23:11 +01:00
Brecht Van Lommel
d9150484a2 Cleanup: Cycles: Remove some unnecessary #if 0 and #if 1
Pull Request: https://projects.blender.org/blender/blender/pulls/132361
2025-01-03 10:23:09 +01:00
Brecht Van Lommel
60bec183cb Refactor: Cycles: Replace foreach() by range based for loops
Pull Request: https://projects.blender.org/blender/blender/pulls/132361
2025-01-03 10:23:05 +01:00
Brecht Van Lommel
71b8ecdd84 Cleanup: Cycles: Remove workaround for slow expf in glibc < 2.16
We're on 2.28 now, and were already on 2.17 for many years before that.

Pull Request: https://projects.blender.org/blender/blender/pulls/132361
2025-01-03 10:23:03 +01:00
Brecht Van Lommel
3a57b97eba Cleanup: Cycles: Remove unneeded oneAPI double emulation for NanoVDB
Pull Request: https://projects.blender.org/blender/blender/pulls/132361
2025-01-03 10:22:59 +01:00
Brecht Van Lommel
d0c2e68e5f Refactor: Cycles: Automated clang-tidy fixups in Cycles
* Use .empty() and .data()
* Use nullptr instead of 0
* No else after return
* Simple class member initialization
* Add override for virtual methods
* Include C++ instead of C headers
* Remove some unused includes
* Use default constructors
* Always use braces
* Consistent names in definition and declaration
* Change typedef to using

Pull Request: https://projects.blender.org/blender/blender/pulls/132361
2025-01-03 10:22:55 +01:00
Brecht Van Lommel
4951356ebc Refactor: Cycles: Stop using entire OIIO namespace
Pull Request: https://projects.blender.org/blender/blender/pulls/132361
2025-01-03 10:22:52 +01:00
Brecht Van Lommel
5c46063607 Refactor: Cycles: Make kernel headers work by themselves
Shuffle around some code and add more includes so that individual
header files compile without errors.

Pull Request: https://projects.blender.org/blender/blender/pulls/132361
2025-01-03 10:22:50 +01:00
Brecht Van Lommel
7db0bc2e64 Refactor: Cycles: Make math and type headers work by themselves
Remove separate impl.h headers, shuffle around some code and add more
includes so that individual header files compile without errors.

Pull Request: https://projects.blender.org/blender/blender/pulls/132361
2025-01-03 10:22:47 +01:00
Brecht Van Lommel
f53e13411b Refactor: Cycles: Use #pragma once
Pull Request: https://projects.blender.org/blender/blender/pulls/132361
2025-01-03 10:22:45 +01:00
Brecht Van Lommel
3c2a6fbb9c Refactor: Cycles: Use nullptr instead of NULL
Pull Request: https://projects.blender.org/blender/blender/pulls/132361
2025-01-03 10:22:43 +01:00
Brecht Van Lommel
4e777476b5 Refactor: Cycles: Replace std::bind by lambdas
Pull Request: https://projects.blender.org/blender/blender/pulls/132361
2025-01-03 10:22:35 +01:00
Alaska
7d5ec0c441 Tests: Add Texture coordinate render tests for common mesh configurations
This commit adds render tests for the outputs of the
texture coordinate node tested on:
- A scaled and rotated mesh
- A instanced scaled and rotated mesh
- A mesh with and without smooth shading
- A mesh with a volumetric shader
- The world background chader

And a few extra objects for specific outputs. Examples including:
- A deformed mesh for the `Generated` output
- View meshes through a reflection for view dependent outputs
- Instanced meshes using the old instancing system to test the
"from instancer" option with the UV and Generated outputs
- Additional objects with extra UV maps to ensure the correct UV map
is loaded
- And more

There are other aspects that we would ideally test
(E.g. Point clouds and hair), but these will be handled by a
separate commit and set of tests.

Ref blender/blender-test-data!30

Pull Request: https://projects.blender.org/blender/blender/pulls/132512
2025-01-03 05:38:17 +01:00
Campbell Barton
c7fb01ff91 Cleanup: use static sets for "contains" checks 2025-01-03 14:47:57 +11:00
Campbell Barton
33e38c605f Cleanup: correct indentation for CMake files, strip trailing space 2025-01-03 13:23:38 +11:00
Harley Acheson
72a9990779 Fix #92998: Allow UI List Reversed Alpha Sort
UI Lists has some buttons at the bottom related to sorting. One button
sorts in alphabetical order, the other reverses sort order. But when
both buttons are enabled you don't get reserved alpha. Contrary to what
the buttons show, enabling "reversed" turns off alpha sorting so you
just get a reversal of the natural order. This button fixes that so you
can reverse both natural and alpha sorted lists.

Pull Request: https://projects.blender.org/blender/blender/pulls/132578
2025-01-03 02:28:51 +01:00
Iliya Katueshenock
fa8574b80b Fix: Geometry Nodes: Triangulate Mesh node assertion case
Typo from ea875f6f32.
A range of triangles is pushed into the mask, but _last_ instead of _end_
was  used. This was found in #132333 report, but this PR does not fix a
reported issue.

Pull Request: https://projects.blender.org/blender/blender/pulls/132405
2025-01-03 01:42:39 +01:00
Charles Wardlaw
0c544974d1 USD: option to convert the scene's meters per unit value
This rescales the whole scene by its root transform to match the same
visual size while not forcing the user to wait for scale to be applied to
each object.

This is requested by studios whose main applications / USD scenes are
in CM, because referencing and payloading scenes from disparate scales
can cause issues at resolution time.

If "Apply Unit Scale Conversion" is unchecked on import, the user now
has the ability to bring the objects in with a scale factor of 1.0, so that the
objects may be edited as if Blender's scene units matches the imported
stage's.

At export time, a "Stage Meters Per Unit" value can be chosen from a list
of common measurements, as well as setting a custom value.

Co-authored-by: kiki <charles@skeletalstudios.com>
Co-authored-by: Michael Kowalski <makowalski@nvidia.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/122804
2025-01-02 22:04:58 +01:00
Hans Goudey
64087c70d5 Cleanup: Move some mesh normals functions to C++ API
Use C++ namespace, reference instead of pointer, and span instead
of raw pointers, mainly to make these functions easier to use in a
few more places.

Pull Request: https://projects.blender.org/blender/blender/pulls/132561
2025-01-02 20:32:47 +01:00
Ray Molenkamp
5783950ac5 Revert: 0dc484f9cc bf_rna modernisation
This caused build errors on the docs builder, I can't seem to reproduce
locally, so revert for now and have another look at some point in the
future.

Sadly as these changes usually go, this took 5c515e26bb and
2f0fc7fc9f with it as well.

Pull Request: https://projects.blender.org/blender/blender/pulls/132559
2025-01-02 19:56:24 +01:00
Sean Kim
37c3c70150 Fix #122078: Color Filter redo panel doesn't work occasionally
When a file is initially loaded or when the redo panel is used, the PBVH
may be null on an object. Because this filter requires the PBVH to check
the underlying mesh representation to prevent execution on Dyntopo &
Multires, we need to ensure that the PBVH is built.

This commit changes the `pbvh_get` call into a `pbvh_ensure` call and
moves some variable declarations around to avoid holding onto runtime
data that may get wiped out by requesting the evaluated depsgraph.

Pull Request: https://projects.blender.org/blender/blender/pulls/132048
2025-01-02 18:42:21 +01:00
Sean Kim
9e78f1c840 Paint: Rename 'Frame Selected' Menu operator to 'Frame Last Stroke'
This commit better aligns the naming of this operator to what it does in
Sculpt, Vertex Paint, Weight Paint, and Texture Paint

Ref: #84044

Pull Request: https://projects.blender.org/blender/blender/pulls/132248
2025-01-02 18:11:39 +01:00
Hans Goudey
3dab0b94eb Fix #131883: Animating particle system hair segment count causes crash
This property should not be animateable; there are fundamental limitations
in the design of the system that makes it disfunctional.

Pull Request: https://projects.blender.org/blender/blender/pulls/132557
2025-01-02 17:51:27 +01:00
Brecht Van Lommel
0ae67b798b Fix: OptiX kernel build does not respect CUDA_HOST_COMPILER option 2025-01-02 17:03:58 +01:00
Omar Emara
4ad1537ff7 Fix: Compositor: Conversion code might fall through
The recently added switch statements in conversion code might fall
through due to missing breaks. Fix that by adding needed breaks.
2025-01-02 17:43:09 +02:00
Christoph Lendenfeld
2d1fc1bcdd Fix #132195: Unable to key mesh attributes
The issue is that certain RNA paths cannot be generated to come
from an ID and `RNA_path_from_ID_to_property` will return no value.
We are using that function in the keyframing code to allow passing
in a pointer to a bone and a path relative to that bone.
Since there is currently no good way to find the path from the ID to an arbitrary
struct pointer (see #122427), this patch is a workaround that uses
the struct_pointer IF that happens to be an ID pointer.
Of course that still has the core limitation in place but until a
better solution is available on the RNA side this is the best we can do.

Pull Request: https://projects.blender.org/blender/blender/pulls/132552
2025-01-02 16:39:21 +01:00
Sean Kim
3c7041c11e Fix #132528: Mask by color crashes when used outside of mesh
Caused by a0e6e16da5

In cases where the cursor is not over the mesh, the operator needs to
check for and prevent further operation to avoid accessing incorrect
variant data.

In prior versions, while this operator did not crash, it would read
other custom layer data.

Pull Request: https://projects.blender.org/blender/blender/pulls/132538
2025-01-02 16:35:10 +01:00
Brecht Van Lommel
a3a104f97a Clang Tidy: Ignore some newer readability warnings
These patterns are very common throughout the Blender codebase, which makes
the clang-tidy output and using clangd in an IDE quite noisy. They were introduced
in LLVM version 18 and 19.

* readability-math-missing-parentheses
* readability-avoid-nested-conditional-operator
* readability-enum-initial-value
* readability-avoid-unconditional-preprocessor-if

Pull Request: https://projects.blender.org/blender/blender/pulls/132462
2025-01-02 16:22:44 +01:00
Christoph Lendenfeld
c3e5d15c2e Anim: Make pose library code aware of slots
This patch makes the internal functions for the pose library aware of action slots.
* Allows to apply poses with more than 1 slot.
* The slot is chosen based on a best guess, with a fallback to the first slot.

Not in this patch:

There is no straightforward way to create multi slot pose assets yet. That will come later.
It is possible to manually tag an action with more than 1 slot as an asset though.

When applying poses, only the active object is modified. Multi object editing support will come later.

Part of Design #131840

Pull Request: https://projects.blender.org/blender/blender/pulls/132161
2025-01-02 15:27:06 +01:00
Christophe Hery
ddbb3d673c Cycles: Optimize out default normals setups in case of OPENSUBDIV Catmull-Clark
Simple local optimization: not doing the rather expensive normals setups
(face and vertex) for Catmull-Clark subsivisions (which do not make use of
these normals and regenerate them internally).

Pull Request: https://projects.blender.org/blender/blender/pulls/132469
2025-01-02 15:20:57 +01:00
Aras Pranckevicius
4546367bb3 Cleanup: Add ibuf channel expectation asserts in VSE code
Whole of VSE assumes that all images are always 4 channels. Add
asserts in several places to more clearly indicate that.

Pull Request: https://projects.blender.org/blender/blender/pulls/132546
2025-01-02 14:33:52 +01:00
Sybren A. Stüvel
426d1683ee Import: explicitly create & assign action slots when importing BVH/FBX
Explicitly create & assign an action slot when importing animation data
from BHV and FBX files.

Ideally this fix wouldn't be necessary, and it's still my wish to have
stronger backward compatibility of the Python API. When/if we have that,
this commit could be reverted.

Fixes: #131305

Co-authored-by: Philipp Oeser <philipp@blender.org>
Pull Request: https://projects.blender.org/blender/blender/pulls/131360
Pull Request: https://projects.blender.org/blender/blender/pulls/131380
Pull Request: https://projects.blender.org/blender/blender/pulls/132549
2025-01-02 14:11:39 +01:00
Omar Emara
0ec7edf411 Cleanup: Compositor: Omit default case for ResultType
Explicitly list all result types to make it easier to add new result
types.
2025-01-02 14:42:44 +02:00
Omar Emara
b6be52c2b2 Refactor: Compositor: Reduplicate type conversion code 2025-01-02 14:02:13 +02:00
Brecht Van Lommel
b109f26e05 Fix #131814: Cycles bake crash with geometry nodes instances
Don't rely on object name matching, this is not reliable when there
can be multiple instances with the same name.

Pull Request: https://projects.blender.org/blender/blender/pulls/132496
2025-01-02 12:48:21 +01:00
Brecht Van Lommel
841ae6e8ab Fix part of #131933: Crash with playback of deforming subdivision surface
The `ForeachContext` in `deform_coarse_vertices` does not use TLS but still has
a `func_free` callback set. Change the task API to allow this.

Pull Request: https://projects.blender.org/blender/blender/pulls/132498
2025-01-02 12:21:56 +01:00
Omar Emara
159038ce7c Cleanup: Compositor: Deduplicate single value setters 2025-01-02 10:20:17 +02:00
Campbell Barton
94917bfd58 Cleanup: correct typo in class name 2025-01-02 19:15:42 +11:00
Campbell Barton
0b0fddb614 Cleanup: use type hints for the QtCreator project generator
Also resolve some warnings for project_info.py.
2025-01-02 17:06:56 +11:00
Campbell Barton
bb0fd51b3c Fix project_qtcreator generator
Correction to [0] which looks to have missed
relocating some scripts.

Also revert Python 3.6 compatibility as it's not required for tools.

[0]: e83d87f588
2025-01-02 17:03:10 +11:00
Campbell Barton
7516614c2b Fix source checking tools using project_source_info
Moving files in [0] caused the module not to be found.

Also revert Python 3.6 compatibility changes.

[0] 2c9ab53273
2025-01-02 16:57:51 +11:00
Campbell Barton
030f367c33 Tools: remove project_netbeans
Remove the script that converted an eclipse project to netbeans,
it seems unlikely this was widely used since it wrote to an old/outdated
project file format.

Since this was written, most IDE's (including NetBeans) have improved
their CMake support.
2025-01-02 16:01:17 +11:00
Campbell Barton
f00661614f Cleanup: remove vector CLAMP macros
This can be done using functions to avoid multiple argument
instantiations.
2025-01-02 15:11:23 +11:00
Campbell Barton
f417c7ad2c Cleanup: sort cmake file lists 2025-01-02 15:11:21 +11:00
Campbell Barton
dca0996777 Cleanup: various non-functional changes for C++ 2025-01-02 15:11:20 +11:00