Commit Graph

150077 Commits

Author SHA1 Message Date
Hans Goudey
fba79e21dd Refactor: Sculpt: Replace abstract vertex abstraction for color painting
Part of #118145.
Use vertex indices instead of `PBVHVertRef`. This doesn't lose functionality
because color attribute painting is only supported for base meshes anyway.
The next steps are refactoring the code to have the same structure as the
new brushes and using the same methods to add code paths for the other
data structures.
2024-06-28 09:03:06 -04:00
Christoph Lendenfeld
5427775fef Anim: Theme entry for time visualization
This patch adds two theme entries for data before/after the current frame.
Those entries control what color to use when displaying
reference data from a different point in time (motion path, onion skins).

They are under the `3D Viewport` section of the theme in the user preferences.

## User Facing Changes

### Grease Pencil

When `Custom Colors` is disabled it will now use the theme instead of the layer default color.
Currently this setting is enabled by default. Disable it to get Blender to use the theme.

### Motion Path
If Custom Color is disabled, read from the Theme.

### Annotations
If onion skin is enabled, and custom onion skin colors is disabled, read from the theme.

**Grease Pencil**
* previously the color used for onion skinning (without custom colors) was `U.gpencil_new_layer_col`. This is used in other places as well so it cannot be removed with this PR
* By default, custom colors are enabled with Grease Pencil objects. I specifically did **not** change that with this PR. I will instead let the GP module handle that on their terms.

This PR has been discussed in the Grease Pencil module meeting
https://devtalk.blender.org/t/2024-05-21-grease-pencil-module-meeting/34755#meeting-notes-2
and in the A&R module meeting
https://devtalk.blender.org/t/2024-05-24-animation-rigging-module-meeting/34813#patches-review-decision-time-4

Pull Request: https://projects.blender.org/blender/blender/pulls/120558
2024-06-28 14:59:41 +02:00
Sybren A. Stüvel
c4a7c4e2a1 Anim: add ID* cache of users to Action Bindings
Keep track of which IDs are animated by which Action Binding. This will
be necessary for display in the Action editor, where animation data that
is unrelated to the active object can be shown (when "show all bindings"
is on).

Note: animation evaluation will not be using this cache, at least not in
the near future. Potentially when we introduce animation-level
constraints this will change, but that's for the future.

The user cache isn't actually used in this commit. It will be used soon
in !122672.

Pull Request: https://projects.blender.org/blender/blender/pulls/123187

Pull Request: https://projects.blender.org/blender/blender/pulls/123187
2024-06-28 14:41:27 +02:00
Sybren A. Stüvel
d342f64fa4 Core: add BKE_lib_query_foreachid_process_main_get() function
Add a function to get the `Main *bmain` pointer from a
LibraryForeachIDData struct. Since the struct is opaque to the
`..._foreach_id` functions, a separate function like this is necessary
to get that pointer.

Not used yet, but will be in a followup commit.

Pull Request: https://projects.blender.org/blender/blender/pulls/123187
2024-06-28 14:41:26 +02:00
Sybren A. Stüvel
d3aa4ecfe6 Core: pass bmain to BKE_library_foreach_ID_link() wherever possible
Pass a non-`nullptr` `bmain` to `BKE_library_foreach_ID_link()` wherever
that `bmain` is known at the call site. This will be used in a followup
commit.

This should not introduce any functional changes.

Pull Request: https://projects.blender.org/blender/blender/pulls/123187
2024-06-28 14:41:26 +02:00
Philipp Oeser
74c4b41f1a Merge branch 'blender-v4.2-release' 2024-06-28 14:35:13 +02:00
Philipp Oeser
33ca4daf8f Fix #123882: Ocean Modifier not updating normals in "Displace" mode
Exposed by 383a145a19

The real culprit was in 6a3c3c77b3 though (where the original meshes
normals were tagged dirty instead of the result's).

So to resolve, now tag the result (not the original).

Pull Request: https://projects.blender.org/blender/blender/pulls/123893
2024-06-28 14:34:26 +02:00
Pratik Borhade
5b444f5954 Fix: GPv3: Use OPTYPE_UNDO for color tag operator
Was missed in cea18e62c5.

Pull Request: https://projects.blender.org/blender/blender/pulls/123897
2024-06-28 14:13:38 +02:00
Philipp Oeser
dc72e5bac9 Merge branch 'blender-v4.2-release' 2024-06-28 13:54:01 +02:00
Philipp Oeser
296d05060d Fix #123560: Select by active material fails in multi-object-edit mode
This was the case when the slot index in the active object is greater
than the available slots of other selected objects.

Code was trying to avoid searching all materials by using
`BKE_object_material_get` to get an appropriate index (an addition to
D4441 added in 6b39dc7672). That function has the behavior of clamping
if a target index is greater than the available slots (for good
reasons), so we cant rely on the slot index being the same if
`BKE_object_material_get` finds a material. So in essence, this is not
what we want to use in this case.

 Now use the much simpler `BKE_object_material_index_get` to get the
index [this might be less performant in certain scenarios, dont think
this is critical though and correctness should beat performance here]

Pull Request: https://projects.blender.org/blender/blender/pulls/123718
2024-06-28 13:53:20 +02:00
Jeroen Bakker
3434260874 Vulkan: Add support for Cycles CPU
Other Cycles backend might also work. Not sure about or Optix/Cuda
as they require GPU synchronization.

Pull Request: https://projects.blender.org/blender/blender/pulls/123895
2024-06-28 13:51:51 +02:00
Jeroen Bakker
da4746fe96 Vulkan: Fix copy depth images with stencil
When copying the depth aspect of a depth+stencil image the incorrect
barriers where created. The barrier needs to have the full aspect, even
when we only copy a single aspect from the image.

Pull Request: https://projects.blender.org/blender/blender/pulls/123890
2024-06-28 13:13:33 +02:00
Jacques Lucke
eb35212f3d Cleanup: make format 2024-06-28 13:09:06 +02:00
Jacques Lucke
3410d0bf3f Nodes: simplify node link drawing shader
* Better separation between drawing backdrop and main line.
* Pass u and v coordinates of line to fragment shader for further processing.
* Remove `colorGradient` which can also be computed from `lineUV`.
* Simplify drawing potentially more than one parallel line as is done in #112677.
2024-06-28 13:08:05 +02:00
Pratik Borhade
91bbb27f8c Fix: GPv3: Object line art not working
Adding object line art does not work because the wrong source
object (lineart itself is set). `add_type/BKE_object_add_for_data` function
deselects all bases and sets new line art object as active. Get active object
before calling this function to fix this.

Pull Request: https://projects.blender.org/blender/blender/pulls/123836
2024-06-28 12:59:32 +02:00
Jacques Lucke
43c3ab9acb Geometry Nodes: refactor multi-input handling in lazy-function graph generation
The goal here is to remove the assumption that multi-inputs will always
have a corresponding node that packs all individual values into a `Vector`
(which is what `LazyFunctionForMultiInput` is doing).
2024-06-28 12:49:44 +02:00
Jacques Lucke
dda4a50bf5 Geometry Nodes: add utility to access logged primitive values 2024-06-28 12:46:08 +02:00
Jacques Lucke
d367b6e4a2 Nodes: add non-const owner_tree access 2024-06-28 12:44:44 +02:00
Jacques Lucke
d819bed88f Merge branch 'blender-v4.2-release' 2024-06-28 12:27:20 +02:00
Jacques Lucke
d6bf027f38 Fix: properly handle negative scale in safe conversion to loc/rot/scale 2024-06-28 12:20:46 +02:00
Jacques Lucke
7866fcd869 Fix: convert math::Axis to vector 2024-06-28 12:16:56 +02:00
Julian Eisel
b59e009acc UI: Add function to query debug name of view items
No user visible change expected.

There's no good way to identify items from their base class which is
annoying for development/debugging. I ended up adding a helper like this
a few times, so makes sense to just add this to the API.
2024-06-28 12:14:38 +02:00
Dalai Felinto
42e66f2912 Merge remote-tracking branch 'origin/blender-v4.2-release' 2024-06-28 11:50:02 +02:00
Dalai Felinto
b528aca711 Merge remote-tracking branch 'origin/blender-v4.2-release' 2024-06-28 11:46:45 +02:00
Sybren A. Stüvel
4bff6ba655 Remove Rigify from extensions_map_from_legacy_addons.py
Rigify is now a core add-on, and no longer an extension.

Ref: !123833
2024-06-28 11:42:48 +02:00
Sybren A. Stüvel
246b317bd4 Add-on: Rigify, move meta-rigs into a 'Rigify Meta-Rigs' sub-menu
Instead of having the Rigify meta-rigs directly in the 'Add → Armature`
menu, move them into 'Add → Armature → Rigify Meta-Rigs`.

This also removes the " (Meta-Rig)" suffix from every individual
meta-rig menu item.

This serves multiple purposes:

- It's now clear that these meta-rigs come from Rigify.
- The built-in 'Single Bone' armature now has similar visual weight as
  the 'Rigify Meta-Rigs' menu item.
- Opens up the menu in a fairer way to other add-ons, to add their own
  entries in a similar way.

Pull Request: https://projects.blender.org/blender/blender/pulls/123833
2024-06-28 11:38:31 +02:00
Sybren A. Stüvel
d1e7346c63 Add-ons: Rigify, reformat code
Run `make format` to reformat the Rigify code. It now adheres to the
global Blender code style standard, rather than having its own style.

Most of the changes are simply adding spaces around operators, newlines
below docstrings, and changing some indentation.

Note that this does not reformat any stored-as-multiline-strings code
blocks.

No functional changes.

Pull Request: https://projects.blender.org/blender/blender/pulls/123833
2024-06-28 11:38:31 +02:00
Sybren A. Stüvel
09e431c511 Rigify: mark as support=OFFICIAL
Now that Rigify is part of the core add-ons, it should be marked as
officially supported.

Pull Request: https://projects.blender.org/blender/blender/pulls/123833
2024-06-28 11:38:31 +02:00
Nathan Vegdahl
3ad753e9f4 Fix: make foot roll rigs work again in Blender 4.2 and later (#4)
The fix is to set local-space Limit Rotation constraints to use the
legacy behavior from pre-4.2.  The legacy behavior isn't meaningful/
useful for other spaces, so we leave those constraints alone.

This is one part of a two-part fix for blender/blender#123105.  The other part
is blender/blender#123361, which adds the Legacy Behavior option to the Limit
Rotation constraint.

Reviewed-on: https://projects.blender.org/extensions/rigify/pulls/4
Reviewed-by: Sybren A. Stüvel <sybren@blender.org>
2024-06-28 11:38:31 +02:00
Demeter Dzadik
8d4cc5d998 Remove CloudRig as a promoted feature set (#1)
CloudRig is no longer a Rigify feature set. I re-wrote it as a standalone add-on.

Reviewed-on: https://projects.blender.org/extensions/rigify/pulls/1
Reviewed-by: Alexander Gavrilov <angavrilov@noreply.localhost>
2024-06-28 11:38:31 +02:00
Alexander Gavrilov
f5ac944658 Fix: Rigify Apply Toggle Pole to Keyframes clears out IK keyframes
Fix bug where the "Apply Toggle Pole to Keyframes" operator would erase
keyframes.

This was caused by f61d27b735622b940521024554aadcfc52ea76cf. The
solution was offered by Alexander Gavrilov in
https://projects.blender.org/blender/blender-addons/issues/105301#issuecomment-1187067

Fixes blender/blender-addons#105301
2024-06-28 11:38:31 +02:00
Sybren A. Stüvel
541e3aae25 Add-ons: Move Rigify into addons_core
Move Rigify from the external add-ons repository into
`scripts/addons_core`.

This commit adds Rigify, from the latest revision in [the add-ons
repo][addons]. It contains work by the following authors:

  202 Alexander Gavrilov
   67 Campbell Barton
   58 Nathan Vegdahl
   31 Lucio Rossi
   24 Demeter Dzadik
   10 Brecht Van Lommel
    8 Dalai Felinto
    7 Bastien Montagne
    7 Sybren A. Stüvel
    5 Damien Picard
    4 meta-androcto
    3 Ines Almeida
    2 Jonathan Smith
    2 ZanQdo
    1 Aaron Carlisle
    1 Andrej730
    1 Hans Goudey
    1 Luca Bonavita
    1 Patrick Huang
    1 Sergey Sharybin
    1 Thomas Dinges

For the full history see the read-only [add-ons repository][addons].

Rigify has existed briefly as an extension on the extensions platform,
and commits were made to Rigify's extension repository (which is
different from the above-mentioned add-ons repository). That repository
will be deleted soon. Its commits that actually changed Rigify will be
committed as followups to this commit. Some commits were necessary to
turn the add-on into an extension; those will be ignored, as they're no
longer relevant.

[addons]: https://projects.blender.org/blender/blender-addons/src/rigify

Ref: !121825

Pull Request: https://projects.blender.org/blender/blender/pulls/123833
2024-06-28 11:38:31 +02:00
Falk David
270c4fad48 Fix #123876: Crash using eyedropper tool
Caused by 6967255906.
The code was assuming that `UI_context_active_but_prop_get`
would return a valid button.
This simply checks if the returned value is not `nullptr`.

Pull Request: https://projects.blender.org/blender/blender/pulls/123879
2024-06-28 11:33:58 +02:00
Dalai Felinto
51e68fe0ed Cleanup: make format 2024-06-28 11:31:54 +02:00
Dalai Felinto
84f11da63a UI: Extensions: Fix spacing between Install and Menu
This was originally introduced on c6e452d865.

A subsequent Cleanup commit (c3d18854f3) changed this further,
increasing the gap a few extra pixels.

Since no functional/visual change should ever come with a cleanup commit
I'm treating this small regression as a bug, fixed by this commit.

There was something right about c3d18854f3, and one of the align=True
is indeed not needed.
2024-06-28 11:29:49 +02:00
Nathan Vegdahl
c83727f0bd Anim: add functions for asserting Project Baklava phase-1 invariants
This is implemented as an overloaded function,
`assert_baklava_phase_1_invariants()`, with variants for `Action`, `Layer`, and
`Strip`.

The invariants asserted are those that are specific to phase 1 and which will
later be lifted as more features (such as animation layers, additional strip
types, etc.) are added. The intention is for this to serve as a kind of todo
marker for later phases *and* to help ensure that the phase-1 invariants
currently hold at runtime.

In addition to adding the overloaded function itself, this commit also uses it
in a couple of places in the keyframing code.  Upcoming work on the keyframing
code will be using it more.

This is based on a discussion with @dr.sybren.

Pull Request: https://projects.blender.org/blender/blender/pulls/123830
2024-06-28 11:06:34 +02:00
Damien Picard
92c026c39b I18n: Fix multi-context message extraction regex
The BLT_I18N_MSGID_MULTI_CTXT() macro allows extracting a single
message into up to 16 different contexts. The regex to do that was
slightly wrong because it did not account for the macro potentially
ending with a ",".

The contexts for "New" were also sorted.

Pull Request: https://projects.blender.org/blender/blender/pulls/123793
2024-06-28 10:42:47 +02:00
Nathan Vegdahl
cae1faec12 Refactor: bundle fcurve lookup/creation parameters in a struct
This is a follow up to #123022 to clean up the resultant verbose parameter
passing.  We add a new struct `FCurveDescriptor` that contains the parameters
needed for either looking up or creating an fcurve, and that in turn is passed
down the keyframing call chains where fcurve lookup/creation needs to be done.

Pull Request: https://projects.blender.org/blender/blender/pulls/123486
2024-06-28 09:39:51 +02:00
Harley Acheson
bea0c5c914 UI: Small Modifications to Some Icons
Slight editing changes to 11 icons. Mostly alignment and position fixes

Pull Request: https://projects.blender.org/blender/blender/pulls/123874
2024-06-28 07:42:17 +02:00
Campbell Barton
ac8da6c72e Extensions: move junction_module to a private location
bpy_extras is part of the public API where as the junction_module
is part of the internal implementation of extensions.
Move to "_bpy_internal".
2024-06-28 14:30:11 +10:00
Sean Kim
549d6fb573 Cleanup: Sculpt: Add assert on span size for helper method
Pull Request: https://projects.blender.org/blender/blender/pulls/123872
2024-06-28 06:25:47 +02:00
Campbell Barton
d0a3d629b9 Merge branch 'blender-v4.2-release' 2024-06-28 14:21:22 +10:00
Campbell Barton
80f07e3f26 Cleanup: simplify the tags drawing function
Tags share logic between extensions & add-ons, simplify the method
used for both kinds of panels to share a draw function.
2024-06-28 14:18:52 +10:00
Campbell Barton
dbe3956c76 Merge branch 'blender-v4.2-release' 2024-06-28 14:10:47 +10:00
Campbell Barton
1043b273d5 Extensions: hide the extensions add-on unless debugging extensions 2024-06-28 14:08:56 +10:00
Campbell Barton
2fd7db0633 Extensions: hide the extensions add-on unless debugging extensions 2024-06-28 14:05:52 +10:00
Campbell Barton
60a5ef492c Merge branch 'blender-v4.2-release' 2024-06-28 13:42:43 +10:00
Campbell Barton
37ae9d5fc4 Fix #123827: Extension cannot be uninstalled if symlinked
In the case of user managed files we can't rely on paths to remove
being directories, they could be symbolic links as developers may point
to their own repository. While unlikely the paths to remove could
be files too.

Use a wrapper for shutil.rmtree(..) that handles symlinks & files,
use when removing paths that are expected to be directories from user
managed locations.
2024-06-28 13:40:37 +10:00
Harley Acheson
4ef2381ce3 Cleanup: UI: Remove Unused Icon Texture Drawing Code
About 330 lines of code removed that supported the old
ICON_TYPE_COLOR_TEXTURE icon drawing.

Pull Request: https://projects.blender.org/blender/blender/pulls/123868
2024-06-28 05:25:18 +02:00
Campbell Barton
0167dd08fc Merge branch 'blender-v4.2-release' 2024-06-28 12:04:13 +10:00