Commit Graph

127889 Commits

Author SHA1 Message Date
Sybren A. Stüvel
456d65b00a Show FCurve modifier toggle widget as 'inactive' when there are no modifiers
In the animation editors, show the FCurve Modifier toggle widget (the
wrench) as 'inactive' when the FCurve has no modifiers on it. Previously
the (lack of) existence of FCurve modifiers was not reflected in the
wrench icon at all.

Note: this only affects FCurves, and not FCurve *Groups*.

Pull Request: https://projects.blender.org/blender/blender/pulls/106214
2023-09-14 15:03:34 +02:00
Lukas Tönne
d2f4ebcd6a Fix #112331: Add update tags directly in bNodeTreeInterface API methods
Calling an API function after the node panels patch does not internally
tag the node tree with `NTREE_CHANGED_INTERFACE` any more, because the
node tree is not directly accessible from `bNodeTreeInterface`. Before
node panels the API functions for interfaces could tag the tree directly
for later update consideration, which now requires explicit tagging
calls.

The fix is to add a flag and mutex directly to `bNodeTreeInterface`, so
API methods can tag after updates. This mostly copies runtime data
concepts from `bNodeTree`. The `ensure_interface_cache` method is
equivalent to `ensure_topology_cache` and should be called before
accessing `interface_inputs` and similar cache data.

Pull Request: https://projects.blender.org/blender/blender/pulls/111741
2023-09-14 14:13:07 +02:00
Jacques Lucke
346b83ca01 Fix #112333: assert when creating node group with unavailable link 2023-09-14 12:41:43 +02:00
Christoph Lendenfeld
8a387d8ed6 Fix: Graph Editor first key handles not drawn
The first keyframe's handle wasn't drawn due to the recent optimizations.
This PR fixes the issue by moving `prevbezt` out of the loop again.
That is needed due to the checks in within the loop having special cases
for the first loop where `prevbezt` is a `nullptr`

Was caused by #112126

Pull Request: https://projects.blender.org/blender/blender/pulls/112365
2023-09-14 12:14:34 +02:00
Jacques Lucke
340b3ca9cb Fix #112094: negative delta time values in simulation nodes 2023-09-14 12:03:24 +02:00
Jacques Lucke
e09ee01848 Fix #112094: pass through simulation before first simulated frame
This is more expected than outputting empty data.
2023-09-14 12:02:13 +02:00
Jacques Lucke
e914004678 Fix #111411: crash with group node that references linked-but-not-found group
These group nodes currently don't have a socket declaration for every socket.
Instead we just don't touch the sockets at all so that things have not changed
when the node group is found again.
2023-09-14 11:51:05 +02:00
Jacques Lucke
11b2ac54a6 Fix #111166: crash when enabling render pass with equally named AOV
There were two issues:
* The check for conflicting AOVs was done after the Render Layer node
  was updated. This led to an unexpected state in the node.
* The check for conflicting AOVs did not work, because AOVs that already
  had the conflict-flag set were ignored.
2023-09-14 11:26:25 +02:00
Jacques Lucke
726bd3887f Fix #112335: particle instance modifier outputs wrong attributes
This was caused by a mistake in 16fbadde36.
2023-09-14 10:24:47 +02:00
Campbell Barton
d2fac8ba84 Cleanup: remove redundant text access (missed in review) 2023-09-14 16:51:53 +10:00
Matheus Santos
96339fc313 Text Editor: Auto Close Pairs on Selected Text
When the auto-close preference is enabled & brackets or quotes are
entered with a selection, the selection is surrounded by those
characters - instead of replacing the selection.

Match functionality from visual-studio code.

Ref !111900.
2023-09-14 16:25:36 +10:00
Campbell Barton
b3f9663011 Cleanup: use a mask combining all pie menu directions
Avoid looping over buttons to check which directions are in use.
2023-09-14 16:10:36 +10:00
Campbell Barton
a8db828618 UI: remove unnecessarily dead zones for pie menus
Previously when there were 5 or more menu items in a pie menu
the acceptable angle to select an item was limited to 45 degrees.

This makes sense when all 8 menu items are set, however it unnecessarily
restricts the range for menu items that don't have adjacent items.

Resolve using a 90 degree angle range then checking of the adjacent
buttons exist and are a better match.

This also resolves a very small dead-zone between adjacent buttons
for both 4 or 8 button pie menus. It was possible for a direction to
select neither. Compare the direction enum as a tie breaker.

Ref !112311.
2023-09-14 15:43:33 +10:00
Campbell Barton
c7cd1c8d0b Cleanup: use enum literals for space_type & region_type arguments
Also remove unique names for grease pencil keymaps.
There was not advantage in having separate names for each grease pencil
key-map.
2023-09-14 13:36:34 +10:00
Campbell Barton
b7f3e0d84e Cleanup: spelling & punctuation in comments
Also remove some unhelpful/redundant comments.
2023-09-14 13:25:24 +10:00
Campbell Barton
636000ed39 Cleanup: group navigation argument with other preferences
Was incorrectly grouped with convenience assignments.
2023-09-14 13:25:22 +10:00
Campbell Barton
f56af0aa65 Cleanup: resolve bl_keymap_validate.py warning (when not --relaxed)
This would have also fixed the `script_validate_keymap` but these
issues from a strict check are better handled as warnings, not errors.
2023-09-14 12:38:35 +10:00
Campbell Barton
6d6a99974d Fix script_validate_keymap test failing (mistake parsing --relaxed arg) 2023-09-14 12:38:34 +10:00
Lukas Stockner
26ed117049 Cycles: Fix OSL layering in combination with emission evaluation
When evaluating emission, no closures can be allocated, so the existing code
would end up returning albedo 1.0, which then caused the layering code to set
the weight of lower layers to zero.
2023-09-14 04:22:22 +02:00
Lukas Stockner
c082e43f1e Cycles: Specify roughness for Subsurface OSL node
The Subsurface node doesn't expose this option yet, so follow SVM and set it
to 1.0 for now.
2023-09-14 04:21:43 +02:00
Lukas Stockner
65d56143ab Cycles: Don't invert backfacing IOR in generalized_schlick_bsdf
SVM doesn't do this, neither does the OSL testrender from what I can tell, and
in other cases we already handle the inversion on the OSL side if needed.
2023-09-14 04:13:56 +02:00
Campbell Barton
ee6b39ae86 Cleanup: always run both FOREACH_MAIN_ID_BEGIN & END macros
Also correct the "END" macro being used in the wrong scope.
2023-09-14 11:46:32 +10:00
Campbell Barton
fad72f6daa Cleanup: always run both RNA_STRUCT_BEGIN & END macros
In this case it didn't cause any problems however macros with a
BEGIN/END must always run both, not optionally run based on knowledge
of the iterator implementation cleanup requirement.
2023-09-14 10:28:55 +10:00
Bastien Montagne
6fcdcd4108 UI/I18N: Fix a couple of issues in new 'Add Modifiers' menu.
The recent change to the 'Add Modifier' created at least two issues:
* A complete duplicate of UI info for each modifier (its name and icon),
  now existing in both the RNA enum definition of modifiers types, and
  in the pyhton UI code.
* An implicit duplication of these UI names in two different translation
  contexts, since the ones from the enum use the default one, while
  explicit labels passed to the `layout.operator` UI API get assigned a
  default 'operator' context. See PR !112246 for details about this.

Both issues can be easily solved by making the new python code for these
menus a bit smarter. Adding a helper function that adds the `add_modifier`
operator with the right parameters, just based on the operator type.

Both names (labels) and icons can be found in the enum property
`bl_rna` definition itself then.

This change:
* Avoids duplicating UI info.
* Fixes translation context mismatch, by forcing the usage of the
  default one also from the python code.
* Makes code less verbose and overall more readable.

NOTE: An attempt has been made to use the `get_name` callback of
operator types to automatically return the right name based on the
defined type, but this is currently utterly failing with regular
layout-based UI code. This will be reported and handled separately.

Pull Request: https://projects.blender.org/blender/blender/pulls/112252
2023-09-13 22:44:47 +02:00
Miguel Pozo
f42b02cccc Workbench: Sculpt fixes
* Fix #112284 and other non-reported sculpt-related regressions in the
   new Workbench.
* Cleanup ObjectState setup.
* Update `sculpt_batches_get` to support getting per material batches
   while passing SculptBatchFeatures.
* Make material indices 0 based in Workbench.

Pull Request: https://projects.blender.org/blender/blender/pulls/112344
2023-09-13 22:36:37 +02:00
Bastien Montagne
27c8dd89e3 Fix (unreported) crash when showing VSE in some cases.
Recent refactor (4d668e6825) forgot that a Scene will have by
default no allocated VSE data. So nullptr check is needed before
trying to access it.
2023-09-13 22:01:51 +02:00
Hans Goudey
b67bf17139 Cleanup: Remove unnecessary extern "C" from Python files 2023-09-13 15:23:17 -04:00
Miguel Pozo
27a36ccc0f Fix: EEVEE-Next: SSS image rendering
Compute SSS samples location at the render function,
once sampling.rng functions return valid data.
2023-09-13 21:05:46 +02:00
Harley Acheson
092b568a90 Cleanup: Make format
Formatting changes resulting from Make Format
2023-09-13 11:03:43 -07:00
Harley Acheson
fa32379def UI: Allow Integer Thumbnail Size Range
Instead of four discrete thumbnail sizes, allow the user to instantly
zoom to any integer size from 16-256. This also changes the default to
96 from the current 128.

Pull Request: https://projects.blender.org/blender/blender/pulls/105815
2023-09-13 19:56:53 +02:00
Harley Acheson
9659b2deda UI: Change Order of Lists in File Browser Sidebar
Change File Browser sidebar order to Bookmarks, System, Volumes, Recent

Pull Request: https://projects.blender.org/blender/blender/pulls/112114
2023-09-13 19:27:33 +02:00
Thomas Barlow
6dd3c90185 UI: Change menu icons of single-choice enums to radio buttons
Show radio buttons for enum list items that are not multi-select (not
PROP_ENUM_FLAG).

Pull Request: https://projects.blender.org/blender/blender/pulls/111796
2023-09-13 19:24:16 +02:00
Lukas Tönne
150f226797 Fix #112330: Group sockets not initialized when created by link-drag
The link-drag operator creates the group interface socket, but then did
not initialize the default value.

Pull Request: https://projects.blender.org/blender/blender/pulls/112337
2023-09-13 17:10:08 +02:00
Miguel Pozo
6e24ecac03 Fix #112289: Workbench: Always clear depth_in_front 2023-09-13 16:35:28 +02:00
Michael Jones
6c98cb73ac Cycles: Use new MetalRT curve primitives for 3D curves and ribbons
This patch updates the experimental MetalRT code path to use new [curve primitives](https://developer.apple.com/videos/play/wwdc2023/10128/) which were recently added in macOS 14. This replaces the previous custom box intersection implementation, allowing the driver to better optimise curve acceleration structures for the GPU. On existing hardware, this can speed up MetalRT renders by up to 40% for scenes that use hair / curve primitives extensively.

The MetalRT option will only be available on macOS >= 14, and requires Xcode >= 15 to build (otherwise the option will be compiled out).

Authored by Marco Giordano, Michael Jones, and Jason Fielder

---
Before / after render times (M1 Max MacBook Pro, macOS 14 beta, MetalRT enabled):
```
                  Custom box intersection      MetalRT curve primitives       Speedup
fishy_cat           111.5                         80.5                         1.39
koro                114.4                         86.7                         1.32
sinosauropteryx     291.8                        279.2                         1.05
spring              142.3                        142.2                         1.00
victor              442.7                        347.7                         1.27
```

---

Pull Request: https://projects.blender.org/blender/blender/pulls/111795
2023-09-13 16:02:49 +02:00
Julian Eisel
36f31f1eff Asset shelf: Remove unnecessary separator between buttons in header
We don't usually add such a separator after search buttons.
2023-09-13 15:29:33 +02:00
Julian Eisel
5470ce4cf3 Cleanup: Improve comment on asset shelf header size
Now explains the why, not the what (which is obvious anyway).
2023-09-13 15:28:00 +02:00
Amelie Fondevilla
08eb7f1c97 GPv3: Snap selected grease pencil frames
Update of the ACTION_OT_snap to take into account grease pencil frames.
Implemented modes are snap to current frame, nearest second, and nearest marker.

Pull Request: https://projects.blender.org/blender/blender/pulls/111507
2023-09-13 12:10:23 +02:00
Philipp Oeser
564716d5a2 Fix #112285: Sculpt Mode: Mask brush smoothing is broken
Mistake in cc01bb83f6.

Above commit tried to be smart about early out, but wasnt.
Now corrected.

NOTE: fix needs to go into 3.6 LTS

Pull Request: https://projects.blender.org/blender/blender/pulls/112292
2023-09-13 11:04:52 +02:00
Campbell Barton
9a0eaa2062 Fix crash using the key-map editor after refreshing internal data
Any action that triggered the key-map to be rebuilt causes the key-map
UI to display freed data.

Recently key-map refreshing happens during transform, while this should
be resolved - it's still good to avoid a crash in this situation as it's
possible scripts perform actions that tag the key-map to be rebuilt
which is out of our control.
2023-09-13 16:46:59 +10:00
Campbell Barton
716d1b9e29 Tests: bl_keymap_validate failure wasn't causing tests to fail
bl_keymap_validate wasn't exiting with a non-zero exit code
on failure since [0] which unintentionally removed the assignment.

[0]: 167c4c6962
2023-09-13 15:11:38 +10:00
Campbell Barton
6adc6675ad Fix bl_keymap_validate.py failure caused by add-on key-maps 2023-09-13 15:09:54 +10:00
Campbell Barton
b1b6f73487 PyAPI: add keyconfig.keymaps.clear()
Add a utility function to clear all key maps from a key configuration.

This allows the add-ons key-config to be cleared so the exported
configuration wont include add-on keymap items,
needed for bl_keymap_validate.py to properly compare the
exported key-map with the data in:
./scripts/presets/keyconfig/keymap_data/blender_default.py
2023-09-13 15:09:05 +10:00
Campbell Barton
ec7785fffc Cleanup: include the type name as a prefix for RNA keymap functions
RNA defines KeyMap & KeyMaps types, name functions to avoid confusion.
2023-09-13 15:06:12 +10:00
Campbell Barton
d154009910 Fix error messages removing keymaps from keyconfigs 2023-09-13 15:02:08 +10:00
Campbell Barton
ec58f3d4cd RNA: move the "contains" checks into the RNA API
C++ callers must ensure the arguments are valid,
reserve validity for the RNA API for raising errors.

This is already the case for most RNA API calls that wrap BKE API's.
2023-09-13 15:01:49 +10:00
Campbell Barton
c51336f5e8 Cleanup: single quote enums in Python 2023-09-13 13:38:39 +10:00
Campbell Barton
7eb0b6cce9 Docs: remove references to "tessface" 2023-09-13 13:31:34 +10:00
Andrej730
0f6444a3ef Docs: add note to mathutils.Matrix.normalize()
Ref !111253.
2023-09-13 13:04:48 +10:00
Campbell Barton
8167ad746c Fix Toggle Region pie menu items not matching the region direction
Regression in [0] which removed empty regions that were used to
ensure pie menu items match the location of regions.

The header for e.g. in time-line / graph editor for e.g. showed
on the opposite side.

[0]: 48b8c8f78f
2023-09-13 12:19:43 +10:00