Commit Graph

140953 Commits

Author SHA1 Message Date
Campbell Barton
1fa666495a Docs: note why fnmatch doesn't use escaping 2024-09-13 14:15:41 +10:00
Campbell Barton
e79b901cc5 Docs: add code-comment that bl_blendfile_versioning can fail randomly 2024-09-13 14:15:40 +10:00
Campbell Barton
38bb6c22a0 Cleanup: quiet undeclared function warning 2024-09-13 14:15:37 +10:00
Campbell Barton
a63ab1840e Linux: update Python to 3.11.9
Ref !125771
2024-09-13 14:01:51 +10:00
Sean Kim
2b9f95a9c6 Cleanup: Sculpt: Various changes for Pose brush FK initialization
Part of #118145

* Inline floodfill functions
* Extract average function to separate method
* Add `const` where possible
* Rename certain variables

Pull Request: https://projects.blender.org/blender/blender/pulls/127540
2024-09-13 05:47:28 +02:00
Campbell Barton
8b5f3c4671 Fix back-slash character filtering in the outliner & UI list
The single characters "\" could not be used for filtering
because it was treated as an escape characters.
Although "\\" could be used to match "\".

Disable escape character behavior as this mostly makes sense for
matching file-names for shell input.
2024-09-13 12:45:36 +10:00
Campbell Barton
bd606a3516 Cleanup: use switch statement mouse button checks
Warns if events button types are omitted.
Also use a define for GHOST_kButtonNum.
2024-09-13 12:32:56 +10:00
Campbell Barton
718403e2c4 Refactor: minor changes to thumbnail saving logic
- Clarify misleading logic when the buffer couldn't be allocated.
- Use a utility function to calculate the thumbnail size.
- Calculate the thumbnail size for the on-disk thumbnail
  separately (corrects minor rounding error) caused by
  scaling the smaller size up.
2024-09-13 11:22:51 +10:00
Campbell Barton
c0fa610f78 Cleanup: remove redundant string initialization 2024-09-13 11:05:53 +10:00
Campbell Barton
a47055f7c2 Cleanup: use "_str" as a string suffix instead of "_st" 2024-09-13 11:03:17 +10:00
Campbell Barton
81e2ccbf2b Cleanup: spelling in comments 2024-09-13 10:56:26 +10:00
Campbell Barton
29214b20ec Cleanup: remove unused variables 2024-09-13 10:41:30 +10:00
Sean Kim
d9c941a464 Cleanup: Sculpt: Various changes for pose brush topology chain init
Part of #118145

* Removes usage of PBVHVertRef
* Adds const where possible
* Reduces scope of variables where possible

Pull Request: https://projects.blender.org/blender/blender/pulls/127541
2024-09-13 01:08:33 +02:00
Hans Goudey
d64f62e4fa Sculpt: Update BVH node bounds in deformation loops
Updating the node bounds just after deforming the vertices in the
node is faster because the position data is still fresh in CPU caches.
Updating it later on means all the other nodes have been processed
in the meantime which will evict that position data from the caches.

This results in a 1.11x improvement in the brush benchmark timing,
from 0.495s to 0.438s on a Ryzen 7950x (best of 5 runs).

As part of the change, the update tagging has completely moved
to each brush implementation. This continues the process of
making each brush more independent.

Part of #118145.

Pull Request: https://projects.blender.org/blender/blender/pulls/127536
2024-09-12 23:45:52 +02:00
Hans Goudey
dd9b3e4fac Refactor: Sculpt: Remove vertex to face map from SculptSession
Just retrieve it from the mesh as necessary, it's already cached there.
Part of #118145.
2024-09-12 15:47:11 -04:00
Hans Goudey
43476712cf Refactor: Sculpt: Remove SculptSession mesh topology array references
Part of #118145.
2024-09-12 15:36:58 -04:00
Hans Goudey
e751b512ce Refactor: Sculpt: Remove SculptSession Depsgraph pointer
Part of #118145.
2024-09-12 15:32:45 -04:00
Hans Goudey
7755f7c4a2 Fix: Sculpt: Project operator crash
The PBVH type cases were swapped.
2024-09-12 15:06:41 -04:00
Hans Goudey
a19760678e Fix: Crash running sculpt brush performance benchmark
The normals were not allocated before the brush code starts, which is
necessary to store the initial normals in the undo step, among other
things. Previously normals were calculated as part of building the PBVH.
That doesn't make sense anymore because that process shouldn't change
the mesh. For now just add the recalculation in a code path called by
`BKE_sculpt_update_object_for_edit`, called at the beginning of each
stroke, and other places.
2024-09-12 14:51:34 -04:00
Hans Goudey
13f179a9c0 Cleanup: Add utility function to sum offset indices group sizes
I've done this a few times and would have benefited from a utility
function for it, apparently it's done in a few more places too. The
utilities aren't multithreaded for now, it doesn't seem important
and often multithreading happens at a different level of the call
stack anyway.

Pull Request: https://projects.blender.org/blender/blender/pulls/127517
2024-09-12 20:28:35 +02:00
Falk David
f68910092b GPv3: Parent armature with empty weights
Implements setting the armature parent and generating
vertex groups for the bones in the armature.

Note: This does not implement the `Envelope` or `Automatic Weights` options.

Pull Request: https://projects.blender.org/blender/blender/pulls/127515
2024-09-12 20:25:27 +02:00
Hans Goudey
1e22f364f8 Sculpt: Replace automasking sculpt attribute API usage
Current the automasking code stores temporary data as geometry
attributes (except for multires where that doesn't work) in order to
persist the cached factors for cavity and occlusion accross multiple
strokes. However, the benefits of this aren't clear, compared to
improving the performance of these calculations. It's also the last
usage of the sculpt attribute API which we plan to remove. The system
is also hard to understand, to make a more solid cache of automasking
values it would be better to start from scratch.

This commit removes the sculpt attribute API and the automasking stroke
ID system, and moves the cached factors to be cached per stroke rather
than more permanently.

Pull Request: https://projects.blender.org/blender/blender/pulls/127470
2024-09-12 20:06:21 +02:00
Pablo Vazquez
1e98b7d2a3 UI: Show material link type icon in dropdown
Enums that are displayed as icon-only should have their icons defined
in RNA, not just through the layout in Python. That way they are shown
in the dropdown itself and users make the connection between the listed
item label and the icon while collapsed.
2024-09-12 19:23:15 +02:00
Hans Goudey
97e8389bc9 Cleanup: Formatting 2024-09-12 13:01:34 -04:00
Hans Goudey
c198a6b355 Cleanup: Use function to access sculpt PBVH 2024-09-12 13:01:22 -04:00
Pablo Vazquez
f4eb0d810d UI: Add missing new/open icons in menus
Image -> New and Clip -> Open were missing ellipsis and icon, to be
consistent with every other new/open entry in menus.
2024-09-12 18:34:53 +02:00
Jacques Lucke
97290aab8d Fix: Geometry Nodes: add missing default value in repeat zone graph
This (internal) output is probably never used, but better set it now instead of
trying to find the cause for a crash later on if it's actually used.
2024-09-12 18:25:12 +02:00
Jacques Lucke
5ee60600a3 Geometry Nodes: improve debug graph for repeat zone
This makes some labels more self-explanatory in the graph generated with
`graph.to_dot()`.
2024-09-12 18:20:52 +02:00
Jacques Lucke
e9ad0e506c UI: speedup drawing large tree views
Previously, mapping old to new items was O(n^2) because each new item was
compared to all old items until the corresponding one was found. This patch
introduces a pre-filter to the old elements that have to be checked. Instead of
comparing all old items, only the ones with the same label are compared now.
This reduces the time complexity to O(n), making the tree view much more
usable with many items.
2024-09-12 18:12:22 +02:00
Alaska
bcf53fd5da Cycles render test: Add ability to control hardware raytracing
Add the ability to control whether or not Hardware Ray Tracing (HWRT)
is enabled during render tests.

This is done by adding `-RT` to the end of the device name in the
Cycles device list. E.g. `HIP-RT`. This is supported with HIP, oneAPI,
and Metal.

Change in behaviour:
If you do not specify `-RT`, then HWRT will be disabled. This results
in a change in behaviour:
1. `METAL` device tests on M3 or newer Macs no longer using MetalRT
2. `ONEAPI` device tests no longer use Embree GPU.

Note: Some tests are failing on some platforms/configurations that can
now be easily tested due to this commit. This does not effect the
build bot automated testing as it does not test these configurations.

These tests have not been blocked from running, primarily to help
developers investigate and fix the issues.

Ref #123012

Pull Request: https://projects.blender.org/blender/blender/pulls/125082
2024-09-12 17:56:31 +02:00
Jacques Lucke
bde6f888e2 Geometry Nodes: speedup joining many geometries
Joining many geometries was O(n^2) because of deduplication of the same
components was not done using a map. My test file that generates 1000
stars in a repeat zone got 10x faster, but it's possible to create a file for any
speedup.
2024-09-12 17:49:21 +02:00
Hans Goudey
5ff4e5fcb9 Sculpt: Avoid rebuilding draw vertex buffers for visibility changes
Use the possibility from ad7d7212c1
to make changes to visibility a bit snappier.
2024-09-12 11:39:55 -04:00
Hans Goudey
bd96b378a6 Sculpt: Avoid processing hidden nodes for drawing
When "update only visible" is turned on (during strokes or based on
the mode option), skip updating draw buffers for invisible nodes.
2024-09-12 11:39:55 -04:00
Hans Goudey
f52b813c36 Fix #127462: Sculpt drawing crash with hidden mesh faces
Mistake in ad7d7212c1.
2024-09-12 11:39:55 -04:00
Jacques Lucke
246c513f92 Nodes: add support for line separators in nodes
This adds support for line separators in nodes. Currently this is only available for
built-in nodes and it's only used in the Simulation Zone. However, we also want
to use it in the For Each Geometry Element zone (#127331). Support for node groups
can be added separately too.

![image](/attachments/74f44b2a-9996-461a-a3eb-d0f546d2305e)

Pull Request: https://projects.blender.org/blender/blender/pulls/127501
2024-09-12 17:38:51 +02:00
Lukas Tönne
49965841bb Fix: GPv3: Armature deform using the wrong vertex group list
Grease Pencil armature deformation has to use the correct
`vertex_group_names` list from the `Curves` (i.e. drawings) rather than
the names from its parent `GreasePencil` data block.

The ancient armature deformation code used a `defbase` list (`ListBase`
of type `bDeformGroup`) from the object via `BKE_id_defgroup_list_get`.
This function does not have enough information to determine the correct
vertex groups for GPv3, and it's use inside supposedly generic code is
highly questionable.

This patch removes the `defbase` lookup inside
`armature_deform_coords_impl` and instead passes an explicit list of
vertex group names to be used for resolving indices. We already have
context in every place this is called to determine the correct vertex
groups, without having to make assumptions down the line based on just
the object type.

Pull Request: https://projects.blender.org/blender/blender/pulls/127509
2024-09-12 17:35:35 +02:00
Clément FOUCAULT
c0b1091e5b Overlay-Next: Grease Pencil Edit Mode
Rel #102179

Pull Request: https://projects.blender.org/blender/blender/pulls/127317
2024-09-12 17:05:51 +02:00
Hans Goudey
2f9884cee1 Refactor: Sculpt: Use int instead of PBVHVertRef in expand
As a generic type for referencing the active/initial vertex, int is
more convenient here because mostly it's used for array indexing,
and moving from int to `BMVert` and `SubdivCCGCoord` is
simple and cheap.
2024-09-12 10:51:51 -04:00
Sybren A. Stüvel
367cceaab8 Anim: Make it possible to enter/exit NLA tweak mode on slotted Actions
Properly track Action and Slot assignment when entering/exiting NLA
tweak mode.

This doesn't properly sync the length of the NLA strip when exiting
tweak mode. This and more NLA work is tracked at #127489.

Pull Request: https://projects.blender.org/blender/blender/pulls/127498
2024-09-12 16:48:02 +02:00
salipourto
17ddca5017 Fix #127240: Deforming motion blurred point clouds do not render under certain conditions
Deforming motion blurred point clouds do not render in Cycles
HIP-RT when BVH timesteps != 0 if Blender is launched with
debug memory.

The root cause is that the size of allocated memory for the
bounding boxes is reported to HIP-RT not the number of valid
bounding boxes.

Pull Request: https://projects.blender.org/blender/blender/pulls/127432
2024-09-12 16:47:13 +02:00
Alaska
0e36107433 Fix: Cycles: Rendering of VDB files with HIP-RT
VDB files would fail to render in HIP-RT because NanoVDB wasn't
enabled when compiling HIP-RT kernels, resulting in NanoVDB textures
not being sampled and a blank result being returned instead.

The fix is to enable NanoVDB when compiling HIP-RT kernels.

Ref: #125086

Pull Request: https://projects.blender.org/blender/blender/pulls/127384
2024-09-12 16:26:41 +02:00
Alaska
2d611f7b45 Fix #125392: Cycles: Unnecessary recreation of denoiser
Fix the unnecessary recreation of the denoiser that occurs if
Cycles had fallen back to an alternative denoiser in a previous
interation. (E.g. Fallback from OptiX to OIDN)

This issue occured because Cycles didn't understand that when it
previously setup the denoising device, that it had fallen back to
something else. So it thinks the denoising settings have been changes
and tries to recreate the denoiser.

The solution is to first compute the settings change due to
the fallback, then check to see if it's different from the current
denoiser, then recreate the denoiser device if neccesary.

Pull Request: https://projects.blender.org/blender/blender/pulls/125453
2024-09-12 16:23:59 +02:00
Pablo Vazquez
8845e3243d UI: Remove duplicate icons on menus
As per the human interface guidelines, do not use the same icon in
consecutive items within a group in a menu.

* Operator Search in Top Bar's Edit menu
* Viewport Render Keyframes in Viewport's View menu
2024-09-12 16:19:34 +02:00
Jacques Lucke
5ca7aa1cf3 Cleanup: Geometry Nodes: extract reusable functions for node tree zones 2024-09-12 16:12:13 +02:00
Julien Duroure
00bc059894 glTF: Fix typo in a previous commit 2024-09-12 15:50:58 +02:00
Pablo Vazquez
32a2c9ea32 UI: Add missing ellipsis to File menu items
As per the writing style guidelines, add ellipsis to labels of
operators that do not run immediately but open settings or require
further steps.

Pull Request: https://projects.blender.org/blender/blender/pulls/127475
2024-09-12 15:48:41 +02:00
Pablo Vazquez
14208b6dfa UI: Compositor: Show Parent button when available
The Parent Node Tree operator button to go up a level in nested
node trees is always visible in the header, regardless if we are
currently in a nested tree or not.

Only show the button when it is actually possible to go a level up.
This frees up space in the header when at the top level.
2024-09-12 15:44:06 +02:00
Pablo Vazquez
3986b99e42 UI: Compositor: do not expand backdrop channels
To be consistent with other editors (Image Editor, Sequencer), and use
less space in the header.
2024-09-12 15:44:06 +02:00
Julien Duroure
a9bfca5483 glTF exporter: fix missing hook parameters leading to crash 2024-09-12 15:41:00 +02:00
Julien Duroure
0169abd220 glTF exporter: account for library when gathering image URI
When using "keep original" option
2024-09-12 15:19:32 +02:00