Commit Graph

140734 Commits

Author SHA1 Message Date
Sybren A. Stüvel
c7b7bc98ed Refactor: Anim, protect back compat API with #ifdef WITH_ANIM_BAKLAVA
Protect the backward-compatible API implementation with
`#ifdef WITH_ANIM_BAKLAVA` directives.

This also moves the `use_backward_compatible_api()` function further up
in the file, to the place where I'll need it when building the backward-
compatible API implementation for Action groups.

The backward-compatible API implementation makes the legacy Action API also
work on new layered Actions, exposing the data for the first slot.

Pull Request: https://projects.blender.org/blender/blender/pulls/127241
2024-09-06 14:33:57 +02:00
Sybren A. Stüvel
ec5ebc8363 Anim: add group name support to back-compat Action.fcurves.new()
Add group name support to the backward-compatible implementation of
`Action.fcurves.new()`. This ensures that the legacy Action API creates
a new-style channel group in the appropriate channel bag.

Pull Request: https://projects.blender.org/blender/blender/pulls/127241
2024-09-06 14:33:57 +02:00
Sybren A. Stüvel
fe96a0c3f6 Anim: fix crash when writing empty action groups
It was just a missing 'else' clause around some should-have-been-
conditional code.

Pull Request: https://projects.blender.org/blender/blender/pulls/127241
2024-09-06 14:33:57 +02:00
Sybren A. Stüvel
158b7ae5da Cleanup: Anim, Document that channel_group_create() makes name unique
Document that `ChannelBag::channel_group_create(name)` ensures the group
name is unique within the channelbag.

No functional changes.
2024-09-06 14:33:57 +02:00
Jeroen Bakker
650413e1e6 Fix: Crash when Switching to Node Editor
The [sponza](https://projects.blender.org/blender/blender-benchmarks/src/branch/main/cycles/sponza)
benchmark scene crashes when switching to the compositor tab due to a
missing null pointer check.

Pull Request: https://projects.blender.org/blender/blender/pulls/127230
2024-09-06 14:08:48 +02:00
Clément FOUCAULT
a4cd59e369 Overlay-Next: Prepass: Grease Pencil
Allow selection of grease pencil objects.

Rel #102179

Pull Request: https://projects.blender.org/blender/blender/pulls/127238
2024-09-06 13:29:53 +02:00
buildxyz-git
a0f653c002 PyAPI: enable draco when building blender as a python module
Allow GLTF IO using Draco compression.

Ref: !125556
2024-09-06 21:15:38 +10:00
Campbell Barton
11187aa9dc CMake: don't link sdlew when WITH_SDL=OFF
This caused a build error building Blender as a Python module
with !125556 applied.
2024-09-06 21:01:36 +10:00
Clément FOUCAULT
bd66008344 Overlay-Next: Prepass: Curves, Point Cloud and Particle
Rel #102179

Pull Request: https://projects.blender.org/blender/blender/pulls/127198
2024-09-06 12:40:51 +02:00
Dalai Felinto
60cc73afe6 Cleanup: UI: Icons: Sort the icons alphabetically between their categories
No functional changes.

The TOGGLES and INPUT were left untouched since they are order-dependent.

Ref: !127197

Pull Request: https://projects.blender.org/blender/blender/pulls/127197
2024-09-06 12:37:56 +02:00
Dalai Felinto
d563926d73 Cleanup: UI: Shuffle icons and group them in categories
No functional changes.

The comments in the file are used as categories by some of our ICON
reading tools.

This also groups the TOGGLES icons together, with comments about their
order. This only includes the icons actively used as toggles at the
moment.

Note that ICON_NONE has always to be the first one in this file since
some parts of the code (e.g., the code to turn RECORD_ON into colored,
and the code for the popover chevron) have no-icon hardcoded as 0.

Ref: !127197
2024-09-06 12:37:55 +02:00
Dalai Felinto
c9da54dd02 Fix key_command icon
This error was introduced on 7dc3e8e04d
by the automatic script used (after my original PR code - !127194).

The SVG had the same attributes added twice.

The issue was technically introduced on
ffa802da7ac09273a34903438550e0966c4063dc (which is not in main but part
of the code which was merged).
2024-09-06 12:36:37 +02:00
salipourto
d4597e20b6 Fix #127131: Deforming motion blurred point clouds do not render in Cycles HIP-RT when BVH timesteps != 0
The device code was disabled for primitives with deformation blur
and the intersection function always returned false, hence no
rendered primitive.

Other than that, there were a few bugs on both device and host codes
(e.g., the order of current and previous times and the primitive name.)

Pull Request: https://projects.blender.org/blender/blender/pulls/127163
2024-09-06 12:27:17 +02:00
Jeroen Bakker
2b43900ccc Vulkan: Reading subtexture
Subtexture reading is supported via GPUFramebuffer. The input
parameters was an rect, but is called an area which includes
width and height.

Due to inconsistent naming the area was assumed to be a region leading
to incorrect sub texture being downloaded or crashes due to out of
bound writes.

This fix crashes when selecting in edit mode.

Pull Request: https://projects.blender.org/blender/blender/pulls/127229
2024-09-06 11:55:36 +02:00
Jonas Holzman
73f2bdd1ed Obj-C Refactor: WindowViewCocoa refactor
Changes:
- Use macros to reduce Cocoa event forwarding boilerplate
- Use @autoreleasepool where necessary
- Use idiomatic Objective-C properties for `COCOA_VIEW_CLASS`

Style Changes:
- Use C-Style Comments
- Use braces for conditional statements
- Use Objective-C dot-notation

Ref #126772

Pull Request: https://projects.blender.org/blender/blender/pulls/126769
2024-09-06 11:15:57 +02:00
Sybren A. Stüvel
fbfe407201 Cleanup: Anim, add comment to explain AnimData.action_slot_handle
Explain in a comment why the RNA property `AnimData.action_slot_handle` is
still necessary (TL;DR: library overrides), even though its use in Python
code is limited / should be avoided.

No functional changes.

Pull Request: https://projects.blender.org/blender/blender/pulls/127185
2024-09-06 11:14:54 +02:00
Sybren A. Stüvel
b4e7a4fd88 Anim: remove RNA property Action.last_slot_handle
Remove `Action.last_slot_handle` from RNA. This is considered to be an
internal implementation detail, and Python code should not be using its
value for anything.

No actual functional changes, as this RNA property isn't used anywhere.

Pull Request: https://projects.blender.org/blender/blender/pulls/127185
2024-09-06 11:13:14 +02:00
Philipp Oeser
e758c4c851 Fix #127208: Crashes using "Clipping Region..."
Typo in 508b39661d resulting in:
Error: Cannot find shader create info named
"overlay_armature_dof_clipped"

So now "overlay_armature_dof_lipped" >> "overlay_armature_dof_clipped"

Pull Request: https://projects.blender.org/blender/blender/pulls/127224
2024-09-06 11:00:35 +02:00
Sybren A. Stüvel
bbccf912b4 Anim: remove the 'Animation Debug' panel
Remove the 'Animation Debug' panel from the 3D Viewport. It was always
meant as a temporary debugging tool, and it's no longer needed.

Pull Request: https://projects.blender.org/blender/blender/pulls/127200
2024-09-06 10:59:04 +02:00
Campbell Barton
792c29e52f Fix uninitialized memory use rendering from the sequencer
SeqRenderData::is_playing & is_scrubbing used uninitialized stack
memory, seq_prefetch_start(..) read both values.

Resolve by setting defaults.
2024-09-06 16:32:09 +10:00
Jeroen Bakker
458faa6486 Preferences: GPU backend selection
This PR allows users to select a GPU backend.

In the system tab of the user preferences the GPU backend can be selected in the `Display Graphics` panel.
It will require a restart of Blender before the changes become effective.

During startup minimum requirements are checked. Blender will switch automatically
to OpenGL when no compatible Vulkan device could be detected. A dialog will be shown
to inform the user.

The setting of the in the `Display Graphics` panel are still overridden when blender is started
using the `--gpu-backend` option. When starting blender with `--debug-gpu` the backend
detection will print to the console.

See PR for detailed information and screenshots of the UI.

Implements #126504
Pull Request: https://projects.blender.org/blender/blender/pulls/126545
2024-09-06 08:28:41 +02:00
Pratik Borhade
df996ad837 Fix #126824: Allow instancing override child collection in outliner
In case of overridden collection, only root collection can be instanced
from outliner. Whereas, "Add collection instance" operation from viewport
works with child collections as well. To make outliner operation consistent,
set `is_liboverride_allowed` to true. This will let instancing of child collection that
are overridden.

Co-authored-by: Bastien Montagne <mont29@noreply.localhost>
Pull Request: https://projects.blender.org/blender/blender/pulls/126881
2024-09-06 08:25:15 +02:00
Campbell Barton
016ab453dd Fix crash in sculpt poll function without an active object 2024-09-06 16:03:03 +10:00
Campbell Barton
43f7b50df3 Fix #127127: bpy.types sometimes reference their parent's "bl_rna"
Accessing `bl_rna` for type defined in `scripts/modules/bpy_types.py`
could return their parent-classes RNA when accessed via their parent
types __subclasses__() method.
2024-09-06 14:57:26 +10:00
Aaron Carlisle
55ac8c701c Docs: Add descriptions to some property sub types
- Clarify the difference between `COLOR` and `COLOR_GAMMA` Descriptions match `wm.py`

Fixes https://projects.blender.org/blender/blender-manual/issues/104767
2024-09-05 22:36:52 -04:00
Campbell Barton
9d917b73b9 Cleanup: remove duplicate depsgraph tagging
Operations on collections could tag the same collection multiple times.
Track the changed state instead. Also rename (ok/updated to "changed"),
for clarity & consistency.

Remove duplicate depsgraph tagging from ED_rigidbody_object_remove too.
2024-09-06 12:17:10 +10:00
Campbell Barton
2954323c2d Fix missing depsgraph tags after removing an object from a collection
Follow up to fix for #127213, resolving the bug in other contexts.
2024-09-06 12:05:33 +10:00
Campbell Barton
f5b16e474f Fix #127213: crash on undo after unlinking an object in the outliner 2024-09-06 11:45:13 +10:00
Campbell Barton
97179b10fb Refactor: make "sys_info" an internal module, rename for clarity
- Move sys_info into an internal module to avoid having so many
  top level modules for Blender's internal functionality.
- Rename system_info sub-modules that pre-fill URL's for clarity.
- Move top-level exception handling into the operator.
- Report an error if an unexpected exception occurs.
- Use `Exception` instead of `BaseException` as there is no reason to
  catch the additional exceptions.
- Remove use of sys_info from the command line example,
  replace with in-lined system info.
2024-09-06 11:11:26 +10:00
Campbell Barton
73ac0275c6 Fix missing check for "-c" to terminate argument parsing
Arguments to CLI commands could accidentally enable guarded allocator
when using "-c" instead of "--command".
2024-09-06 10:38:02 +10:00
Campbell Barton
8febf15ea5 Fix missing import in cli command registration example 2024-09-06 10:38:00 +10:00
Sean Kim
fbf95a05d5 Cleanup: Various changes for cavity automasking
* Use `float3` where possible
* Adjust names, introduce a utility `struct` to represent the accumulation
  happening in the method
* Remove dead code
* Use `std::queue` instead of custom hand-written queue working on a
  `Vector`
* Apply `const` where possible
* Use C++ math library

Pull Request: https://projects.blender.org/blender/blender/pulls/127212
2024-09-06 01:07:03 +02:00
Hans Goudey
07d7404390 Fix: Correct wireframe drawing after recent PBVH storage refactor
Somehow this untested implementation made it in, I thought I had
tested this. The mistake I made was imagining the VBOs were "indexed"
using the node vertex indices, but we use a flat duplicate-per-triangle
vertex VBO format.
2024-09-05 15:42:15 -04:00
Hans Goudey
e05d55f4c9 Cleanup: Remove unnecessary PBVH free function
Just call `reset()` directly instead.
2024-09-05 14:51:19 -04:00
Hans Goudey
c6e426fc8f Refactor: Sculpt: Pass object to sculpt session free function 2024-09-05 14:46:35 -04:00
Hans Goudey
b8d3de8598 Cleanup: Use accessor function for retrieving PBVH
Missed in previous commit
2024-09-05 14:46:35 -04:00
Jesse Yurkovich
832d243249 Fix #116615: Store Blender bone lengths on USD Skeletons
USD Skeletons (armatures) are joint-based rather than bone-based in
construction. This means that there's no native bone concept nor is
there any bone lengths. Currently, Blender's USD import uses an
estimation, roughly corresponding to the average distance between
joints in the entire Skeleton, to set the bone length in situations
where it's not obvious that 2 joints are directly connected. This is
imperfect but shouldn't affect actual functioning of the rig.

For armatures coming from external software this is probably the best we
can do. However, for armatures originating from Blender, we can use a
custom primvar to store the bone lengths directly. This allows Blender
armatures to be exported and re-imported in much better fidelity.

This is superior to prior techniques, like those employed by FBX, which
alter the actual Skeleton, inserting extra joints where unnecessary. Not
only is this detrimental when using these files in external software,
but it's still imperfect when importing back into Blender too.

Pull Request: https://projects.blender.org/blender/blender/pulls/126954
2024-09-05 20:37:22 +02:00
Hans Goudey
d33e708343 Refactor: Sculpt: Use function to access PBVH
Part of #118145.
In the future we want to move the ownership of the BVH tree to the
original mesh rather than `SculptSession`, in order to persist it
across some more general non-topology changing operations like
node tools. The first step of that change is replacing all places
that used `SculptSession::pbvh` for access with a function.
2024-09-05 14:16:40 -04:00
Dalai Felinto
7dc3e8e04d Cleanup: UI: Make sure all icons have the paths inside a group
All the SVGs here were saved as plain SVG from inskcape.

Pull Request: https://projects.blender.org/blender/blender/pulls/127194
2024-09-05 20:15:36 +02:00
Hans Goudey
4c8e1fbeca Cleanup: Reduce indentation in sculpt object update function 2024-09-05 14:07:16 -04:00
Hans Goudey
39e653d479 Cleanup: Sculpt: Add geometry index accessor functions to node structs
Add `.faces()`, `.verts()`,`.all_verts()`, and `.grids()` functions to nodes.
Don't change BMesh data access yet. More complex const correctness
makes that situation more difficult.

Pull Request: https://projects.blender.org/blender/blender/pulls/127201
2024-09-05 20:07:03 +02:00
Habib Gahbiche
ed13dad08b Compositor: UI: remove preview for viewer and composite nodes
In geometry nodes, the viewer gets activated by clicking on the preview icon. For the compositor, preview is enabled either using the image viewer or the backdrop.

Another difference is that all nodes can be previewed in the compositor. Which makes the preview icon on the composite and viewer node redundant.

Pull Request: https://projects.blender.org/blender/blender/pulls/127044
2024-09-05 19:52:07 +02:00
Habib Gahbiche
5a99d5d3fc Compositor: UI: Use hide icon for preview
Replace material icon with hide (eye) icon and enable toggling on/off. This makes it consistent with the UI of geometry nodes viewer node

Pull Request: https://projects.blender.org/blender/blender/pulls/127042
2024-09-05 19:51:31 +02:00
Jacques Lucke
809fed764a Geometry Nodes: expose node warnings on modifier in Python API
This exposes warnings that are propagated to the modifier in the Python API.
This allows people to show these warnings in custom UIs for their node groups.

Warnings are accessed like this:
```python
for warning in modifier.node_warnings:
    print(warning.message)
    print(warning.type)
```

Note that this only works on the geometry nodes modifier. These warnings may
be extended with more information in the future. E.g. it could be useful to know
which node created the warning.

Pull Request: https://projects.blender.org/blender/blender/pulls/127193
2024-09-05 19:45:40 +02:00
Aras Pranckevicius
a4d9bcf106 VSE: Optimize the Color Balance modifier
Speedup the Color Balance VSE strip modifier, with two things:

- Generally, use a much lower overhead parallel_for, also with
  lower grain size (32 image rows, instead of 64 that were used
  before). This is what makes the "float" variant faster.
- For "byte" variant, create a precalculated lookup table instead
  of doing all the math per-pixel. This was *almost* done in
  existing code, except it was put into the code path that was
  never-ever used. However, since this is all done on premultiplied
  values, I'm using lookup table size of 1024 instead of 256, so
  that semitransparent pixels get some more precision for
  "in-between values". This LUT is what results in the main speedup
  of "byte" variant.

Calculating Color Balance at 4K resolution, times in milliseconds:
- PC (Ryzen 5950X), PNG (byte): 22.2 -> 2.9 ms, EXR (float): 20.1 -> 15.2 ms
- Mac (M1 Max), PNG (byte): 28.9 -> 7.5 ms, EXR (float): 21.8 -> 8.5 ms

More timing details in PR.

Pull Request: https://projects.blender.org/blender/blender/pulls/127121
2024-09-05 19:21:35 +02:00
Sean Kim
29ccc7cddb Cleanup: Specialize automasking boundary factor initialization
Part of #118145.

Pull Request: https://projects.blender.org/blender/blender/pulls/127167
2024-09-05 19:10:18 +02:00
Mike93
cc5ed48cd3 Modifiers: Add custom attribute weight support to bevel modifier
As of 2a56403cb0, bevel weight data is stored as a generic
attribute. The bevel modifier is currently hard-coded to use the
`bevel_weight_edge` attribute as the data source for the weights.
This commit adds a string textbox where the user can specify alternate
attributes for the bevel's edge weights.

The string name field is added as a search button which provides a list
of all attributes in the original mesh. This is meant to work similarly
to geometry nodes, so mismatched attribute data types and domains are
automatically converted/interpolated as necessary. Attributes created
by previous modifiers can also be used, but they won't appear in the
search menu.

Co-authored-by: Hans Goudey <hans@blender.org>
Pull Request: https://projects.blender.org/blender/blender/pulls/117366
2024-09-05 17:15:34 +02:00
Jacques Lucke
c9ed8d7ea7 Fix: Tools: improve gdb frame filter when used in non-debug build 2024-09-05 16:51:44 +02:00
Sybren A. Stüvel
0ad22e9128 Anim: Add slot deletion to Action editor
Slots can now be deleted from an Action via the channel list in the Action
editor. As with all deletions there, it deletes the associated F-Curves
from the Action without any warnings.

Pull Request: https://projects.blender.org/blender/blender/pulls/127112
2024-09-05 16:34:02 +02:00
Sybren A. Stüvel
d79f5edb79 Refactor: Anim, change if (ale->type == ...) to 'switch (ale->type)`
Refactor `if (ale->type == ANIMTYPE_GROUP)` into `switch (ale->type)`
with a single `case` filled out. This will make an upcoming commit
cleaner, as it simply adds another case.

No functional changes.

Pull Request: https://projects.blender.org/blender/blender/pulls/127112
2024-09-05 16:34:01 +02:00