Commit Graph

145457 Commits

Author SHA1 Message Date
Miguel Pozo
20332e89a9 Selection: Improve Display as Bounds/Wires selection behavior
Make the selection behavior more visually consistent in Render mode.

Pull Request: https://projects.blender.org/blender/blender/pulls/133007
2025-01-17 16:30:32 +01:00
Christoph Lendenfeld
d9536fe878 Cleanup: anim_motion_paths.cc
No functional changes.

This patch just changes the comments to start with a capital letter
and end with a dot.

Pull Request: https://projects.blender.org/blender/blender/pulls/133209
2025-01-17 16:27:28 +01:00
Bastien Montagne
14e788e42e BKE: PartialWriteContext: Add concept of library duplicates.
Check done by PartiaWriteContext writing code to ensure there is no
library ID written which filepath is the same as the destination
blendfile path of the context, was flacky in case there would be
multiple library IDs with that same path.

While this is not expected situation currently, it will likely change in
the future, so handle that properly, and generate a CLOG warning.
2025-01-17 15:22:54 +01:00
Bastien Montagne
063267f459 Fix #132900: Blender error after editing and saving a brush asset.
The handling of library for IDs added to a PartiaWriteContext in 'make
local' mode (i.e. to make them local in the written blendfile) was
flacky, leading to invalid removal of the ID name from the library ID
namemap in G_MAIN.

Now simply esure there is a local copy of the library too when adding an
ID to the context, even if it will be made local there.
2025-01-17 15:22:54 +01:00
Jeroen Bakker
390ca01685 Cleanup: Vulkan: Remove resource ownership
Images used to be tracked with ownership in order to reset swap chain
images to its original layout. This isn't used anymore as we always mark
them in VK_IMAGE_LAYOUT_UNDEFINED to make the first pipeline barrier a
nop.

This change reduces unneeded complexity and safe a few CPU cycles.

Pull Request: https://projects.blender.org/blender/blender/pulls/133197
2025-01-17 14:46:22 +01:00
Jacques Lucke
43b41984ae Fix: use MEM_delete instead of MEM_free
This was missing in 1151d82df3.
2025-01-17 14:13:14 +01:00
Philipp Oeser
782a4c9d85 Fix #133194: Grease Pencil Vertex Weight Angle influence vertexgroup has no effect
The weights were just not used at all.

Stumbled over this checking on #133055

Pull Request: https://projects.blender.org/blender/blender/pulls/133195
2025-01-17 13:39:26 +01:00
Jacques Lucke
e3d83806fd Fix: use delete instead of free 2025-01-17 12:52:06 +01:00
Jaime Torres
947330e529 Fix #129849: Remove redundant 'GreasePencil' references in PaintMode
As established in issue #129849 , there are references to older versions of Grease Pencil that aren't needed.
This PR is meant to remove such references or, in places where otherwise `GreasePencil` is referenced
but `GPencil` is not, it changes the reference as for it to reference the v3 implementations in PaintMode.
It also removes `GreasePencil` from the list of options when declaring `PaintMode`.

Pull Request: https://projects.blender.org/blender/blender/pulls/131065
2025-01-17 12:30:47 +01:00
Jacques Lucke
58c923c0bd Fix #133177: incorrect handling of shared layers in mesh validation 2025-01-17 12:22:41 +01:00
Jacques Lucke
aec72c0a9a Fix #97685: very inaccurate mean computation in Attribute Statistic node
Numerical instability mainly comes from adding values together which have very
different magnitude. There are algorithms to keep the error small like "Kahan
Summation", however those are also slower because of additional code in the hot
loop. This patch implements a simpler approach that is slightly less accurate,
but still seems to solve the cases that people commonly run into while being
simpler and faster. The approach is to simply compute a couple partial sums
first, and to add those up in the end. The individual partial sums can also be
computed in parallel. Care has to be taken to maintain determinism with floating
point values.

If accuracy is still not enough for some use cases, we can revisit this later
and e.g. use doubles or a better summation algorithm.

Pull Request: https://projects.blender.org/blender/blender/pulls/132759
2025-01-17 12:20:42 +01:00
Jacques Lucke
987003d456 Nodes: replace some node checks with accessor method calls
This uses the following accessor methods in more places in more places:
`is_group()`, `is_group_input()`, `is_group_output()`, `is_muted()`,
`is_frame()` and `is_reroute()`.

This results in simpler code and reduces the use of `bNode.type_legacy`.

Pull Request: https://projects.blender.org/blender/blender/pulls/132899
2025-01-17 12:17:49 +01:00
Jacques Lucke
7408d0d8b1 Nodes: improve getting owner id during tree update
Using the `BKE_id_owner_get` during the node tree update can avoid having to
iterate over lots of data-blocks in common cases. Previously, the code had to
iterate over all potential owners of node group to find the correct one.

Pull Request: https://projects.blender.org/blender/blender/pulls/132903
2025-01-17 12:17:17 +01:00
Jacques Lucke
1151d82df3 Cleanup: move BlendFileData to C++
This simplifies potentially adding more data to the struct.

Pull Request: https://projects.blender.org/blender/blender/pulls/133050
2025-01-17 12:16:04 +01:00
Jacques Lucke
09e4747fc4 Fix: inconsistent UI in Copy on Duplicate panel in User Preferences
Generally, checkbox labels are not grayed out when they are not checked. Better
be consistent with other parts of the UI here. When I saw this, I was first
confused because it looked like I can't enable the values that are not checked.

This was introduced in #112393.

Pull Request: https://projects.blender.org/blender/blender/pulls/132180
2025-01-17 12:14:37 +01:00
Pablo Vazquez
9081674e8c Fix: UI: Use title case for items in status bar
Missed these in the recent pull request review.
2025-01-17 12:10:46 +01:00
Jeroen Bakker
2f18e4fe29 Vulkan: Add debug group for swapchain
Improves debugging swapchains when using renderdoc.

Pull Request: https://projects.blender.org/blender/blender/pulls/133190
2025-01-17 11:40:11 +01:00
Pratik Borhade
d4d046a673 Grease Pencil: Allow editing locked material properties
As discussed in #132721, properties of locked materials should
be editable (similar to locked layers)

Pull Request: https://projects.blender.org/blender/blender/pulls/132724
2025-01-17 11:02:44 +01:00
Jeroen Bakker
56f14a0083 Vulkan: Add support for GPU_DATA_UBYTE to F16 data conversion
This data conversion is needed to download a HDR framebuffer for
color-picking and saving screenshots.

Pull Request: https://projects.blender.org/blender/blender/pulls/133187
2025-01-17 10:58:28 +01:00
Bastien Montagne
318bc5af77 BKE: ID namemap: always report warning when checking integrity of the namemap.
Using `CLOG_INFO` and then reporting critical error is not very coherent,
nor practical, since INFO messages are not even displayed by default in
the console.
2025-01-17 10:48:33 +01:00
Jeroen Bakker
58003a9114 Cleanup: Vulkan: Remove non-compatible surface selection
This was useful in the beginning to ensure we supported most surface
configurations. However it seems that there are not that many surface
configurations to support.

Pull Request: https://projects.blender.org/blender/blender/pulls/133186
2025-01-17 10:34:56 +01:00
Jeroen Bakker
80ec04b4ef Cleanup: Vulkan: Use full surface format
GHOST_ContextVK used to pass only the surface texture format to
the GPU backend, it didn't pass the color space. This PR also includes
the color space.

Pull Request: https://projects.blender.org/blender/blender/pulls/133185
2025-01-17 10:28:22 +01:00
Brecht Van Lommel
963c638a5b Fix #131132: Cycles reading packed multilayer EXR wrong
Rewrite Blender image loading to avoid RNA API, which we are moving away
from. This makes it easier to support multilayer EXR.

Pull Request: https://projects.blender.org/blender/blender/pulls/133179
2025-01-17 10:21:44 +01:00
Pratik Borhade
25286dd2cd Fix #132112: Grease Pencil: Draw overlays for active object
`object_is_paint_mode()` returns true for objects that are not in active
interaction mode. This results in drawing of overlays for each Grease
Pencil object. Now fixed with adjusted condition.

Pull Request: https://projects.blender.org/blender/blender/pulls/132159
2025-01-17 10:16:39 +01:00
Brecht Van Lommel
a6b293daac Python Module: Bundle VFX library python bindings
When calling bpy.utils.expose_bundled_modules(), these modules are
added to sys.path.

This provides a solution/workaround to two problems:
* Using bpy together with packages like usd-core is problematic. Besides
  crashing due to C++ symbol conflicts, it's just impossible to import
  different versions of the same module, or to have distinct environment
  variables for both. (#127132)
* Blender add-ons using these VFX modules do not currently work with
  the bpy module.

This adds about 15MB to the bpy package.

Pull Request: https://projects.blender.org/blender/blender/pulls/133082
2025-01-17 10:13:31 +01:00
Brecht Van Lommel
ae6b47f346 MaterialX: Support linking color directly to surface shader
Matching Cycles and EEVEE.

Also changes some Color4 to Color3, since shader nodes don't use this alpha.

Pull Request: https://projects.blender.org/blender/blender/pulls/132907
2025-01-17 10:09:18 +01:00
Omar Emara
bea39233ea Cleanup: Share interpolation enum between all nodes
Share a single enum list and DNA type between all compositor nodes that
use interpolation.
2025-01-17 10:41:14 +02:00
Campbell Barton
8d97330482 Cleanup: clarify naming for BMesh tangent calculation functions
The newly added "tangent_pair" calculation functions meant the names
didn't read well in some cases, use this style of naming for clarity:

- BM_face_calc_tangent_from_*
- BM_face_calc_tangent_pair_from_*
2025-01-17 15:28:32 +11:00
Campbell Barton
c7104f5392 Fix #96535: Incorrect extrude direction with two faces of a cube
It was possible two quads at right-angles to each other would accumulate
a "tangent" that was co-linear with the it's normal.

Resolve this by calculating two tangents for each face, then using the
accumulated tangent that's least co-linear with the accumulated normal.
2025-01-17 15:17:06 +11:00
Campbell Barton
27cb542393 Refactor: minor changes to transform normal calculation
Normalize the calculated values in createSpaceNormalTangent in
preparation for additional error checks that require the values
to be normalized earlier on.

- createSpaceNormalTangent now normalizes the resulting normal & plane.
- createSpaceNormalTangent_or_fallback has been added that initializes
  the matrix even if the tangent or normal aren't usable
  (this was previously being done inline).
- createSpaceNormalTangent now returns false if the final tangent
  is zero length (this was previously unlikely but possible).
- Remove redundant vector normalize calls.
- Use "r_" prefixed return arguments, order them last.
2025-01-17 15:17:06 +11:00
Jesse Yurkovich
1ceaaeeff7 USD: Write extents out for Curves and more consistently for other types
Cleanup and enhance our export of the USD `extent` attribute.

This does the following:
- The existing `author_extents` function now uses recently added common
  code to write out the extents attribute
- A new `author_extents` overload allows the use of Blender's native
  bounds for the types that support it. We now use this rather than
  asking USD to recompute it for us.
- Meshes will now have their extents correctly written during animations
- Curves will now have their extents written as they were not doing so
  prior to this PR
- Hair, Lights, Points, and Volumes make use of the `author_extents`
  functions now

Since Curves need their extents tested, this PR also moves the test from
C++ to Python. Python tests allow for faster iteration, are more
straightforward to write, and allow usage of the USD validator.

Pull Request: https://projects.blender.org/blender/blender/pulls/132531
2025-01-17 03:28:13 +01:00
Jesse Yurkovich
cdc7526aed Fix: Use correct set_attribute overload for USD writing
Own mistake in 49ae7ffc9c found through inspection shortly after commit.

Add a static_assert to prevent the hard to notice problem in the future.

Pull Request: https://projects.blender.org/blender/blender/pulls/133169
2025-01-17 03:27:49 +01:00
Campbell Barton
dd32c10b5d Refactor: minor changes to get_path_environment_multiple
- Support a null "subfolder_name" argument
  in keeping with the rest of BLI_appdir functions.
- Use "test_path" utility to de-duplicate path joinging & checks,
  this also means the paths will be logged.
- De-duplicate loop body for the last item.
2025-01-17 12:29:16 +11:00
Campbell Barton
a586b537af Cleanup: various non-functional changes in C++ 2025-01-17 11:54:43 +11:00
Campbell Barton
bb92a6fbef Fix BMesh quad tangent calculation failure to normalize
This impacted the Python method BMFace.calc_tangent_edge_pair()
2025-01-17 11:31:28 +11:00
Ray Molenkamp
f6f1d610d8 Fix: Failing geo node tests on MSVC 2022
The MSVC 2022 optimizer generates bad code for perlin_fractal_distorted
when perlin_fbm gets inlined leading to incorrect results and failing
tests that rely on perlin noise. For now just disable inlining for this
function for msvc2022 until we can get the compiler fixed.

This fixes the following failing tests on MSVC 2022:

- geo_node_curves_deform_curves_on_surface
- geo_node_geometry_delete_geometry_propogate_corner_attribute
- geo_node_utilities_field_on_domain_demo

Pull Request: https://projects.blender.org/blender/blender/pulls/133130
2025-01-17 01:00:40 +01:00
Harley Acheson
8ad3653112 UI: Improve Status Bar Display for Mesh Point Normals
Mesh Edit Mode / Mesh Menu / Normals / Point to Target... operator
shows keymap entries on the area header and in the status bar. This PR
removes the area header drawing and improves the Status bar using the
current pattern, including showing statuses with reversed items.

Pull Request: https://projects.blender.org/blender/blender/pulls/131586
2025-01-17 00:31:37 +01:00
Harley Acheson
6727676740 Fix #129579: Improvement to Changed Brush Display
Changed custom sculpt brushes currently shows "*Unsaved Changes" as a
label that can overlap with the "Brush Assets" header. This PR makes
the header text show as "Brush Asset (Unsaved)" in this circumstance.

Pull Request: https://projects.blender.org/blender/blender/pulls/131119
2025-01-16 23:19:24 +01:00
Hans Goudey
c6f5c44350 Cleanup: Remove unused includes in editors modules
Pull Request: https://projects.blender.org/blender/blender/pulls/133166
2025-01-16 23:17:51 +01:00
Harley Acheson
6696f11808 UI: Upgrade Inter font 4.0 -> 4.1
Released November 15 2024, version 4.1 has a lot of changes shown here:
https://github.com/rsms/inter/releases but nothing that anyone should
notice as it mostly looks identical. Same transforms applied: Tabular
numbers, Open Digits, and Disambiguation without slashed zero.

Pull Request: https://projects.blender.org/blender/blender/pulls/132508
2025-01-16 22:56:53 +01:00
Julien Duroure
312289ca60 glTF export: fix recursivity check on gpu instances 2025-01-16 21:34:45 +01:00
Julien Duroure
4dccaf5fae glTF export: ignore variant extras 2025-01-16 21:29:37 +01:00
Julien Duroure
b71d8484e2 glTF exporter: make sure color is white if only alpha is used 2025-01-16 21:26:54 +01:00
Julien Duroure
96369594f4 glTF import: tweak option UI 2025-01-16 21:25:12 +01:00
Julien Duroure
3f68656c7a glTF export: add keep named node flag for gltfpack 2025-01-16 21:24:00 +01:00
Julian Eisel
69c27dce3c Cleanup: Correct incorrectly placed comment for area space-type
This seems to have been placed incorrectl in 5a43406e1b.
2025-01-16 20:53:34 +01:00
dupoxy
40b0185a8e UI: Add asset browser option to remove the preview of asset
Allow user to remove the preview of an asset from the asset browser details region.
Additionally, user can now reuse the default icons after adding a preview.

Pull Request: https://projects.blender.org/blender/blender/pulls/132575
2025-01-16 20:32:40 +01:00
Julian Eisel
da62529ca9 Cleanup: Add comment for asset shelf function 2025-01-16 20:19:33 +01:00
Julian Eisel
71091e9615 Fix: UI: Brush asset operator may activate catalog in wrong shelf storage
Asset shelves provide the `STORE_ENABLED_CATALOGS_IN_PREFERENCES` option in BPY
to decide if the enabled catalogs should be stored in the preferences or in the
asset shelf itself. Depending on the use case of the asset shelf one might make
sense over the other.

The brush asset operator to save changes would always activate a new catalog in
all asset shelves using storage in the preferences, ignoring the option. This
becomes more of an option if the code is reused, as proposed in
blender/blender!132857.
2025-01-16 20:12:35 +01:00
Harley Acheson
53fdb68bd0 Fix #79977: Light Theme NumSlider InnerSel
Slight brightening of the Light Theme Value Slider Inner Selected color
so that it can indicate which of multiple items are selected.

Pull Request: https://projects.blender.org/blender/blender/pulls/131338
2025-01-16 17:18:37 +01:00