Commit Graph

395 Commits

Author SHA1 Message Date
Miguel Pozo
b56d39bdcc EEVEE-Next : Object visibility settings for probes
Replace per-probe visibility collections with global per-object probe
visibility settings.

Pull Request: https://projects.blender.org/blender/blender/pulls/112845
2023-09-26 20:37:15 +02:00
Jacques Lucke
ad169ba67a Geometry Nodes: support baking individual simulations
Previously, it was only possible to bake all simulations at once. This is great
for simple use-cases that, but in more complex setups one can have independent
simulations that should also be baked independently. This patch allows baking
individual simulation zones.

Furthermore, each simulation zone can now also have its own bake path and
simulation frame range. By default the simulation frame range is the scene frame
range, but it can also be customized on the scene or simulation zone level. The
bake path is generated based on the modifier bake path by default, but can be
set to another absolute or relative (to the .blend file) path.

The timeline drawing has been modified as well to be able to show more information
in the case when some simulations are baked and others are not. Instead of showing
a line for every simulation, it shows a condensed view of the important information
using at most two lines:
Is something baked? Is something valid or invalid? Also see #112232.

Pull Request: https://projects.blender.org/blender/blender/pulls/112723
2023-09-26 20:30:46 +02:00
Nate Rupsis
8199132551 UI: Updating Animation Editors snapping from 'Modes' to no icon
Updates the animations editors (NLA, Dope Sheet, Graph editor) to have no icon instead of "Modes" (in absence of icon set).

Pull Request: https://projects.blender.org/blender/blender/pulls/112633
2023-09-26 20:28:57 +02:00
Miguel Pozo
049cb479b2 EEVEE-Next: Irradiance Grid clip distance and probe alignment
Implement a clip distance to irradiance grids, so surfaces farther than
the threshold don't generate surfels.
Align the capture view matrix to the probe rotation.

Pull Request: https://projects.blender.org/blender/blender/pulls/112863
2023-09-26 19:45:41 +02:00
Julian Eisel
ca2a8be15f Assets: Rename "Import Type" to "Import Method" in code/BPY
It was already called that way in the UI, since it's referring to a
behavior, not a type. Update the code to match that. Note that this is
a BPY compatibility breaking change for 4.0.
2023-09-26 16:48:47 +02:00
Jeroen Bakker
beb90b5573 Cleanup: Make format 2023-09-26 15:43:59 +02:00
Jacques Lucke
425a5a3158 Mesh: show attribute name collision warning in more panels
So far, only the attribute panel showed a warning when there were duplicate
attribute names. This patch adds the same warning to the vertex groups,
color attributes and uv maps panel. All of these attributes are in the same
namespace from the perspective of geometry nodes. Name collisions should
be avoided to so that ambiguities when referencing attributes don't come up.

With #112889, vertex groups can have the same name as other attributes again.
While we can handle this case somewhat gracefully in general, duplicate names
likely lead to problems down the line, so it's better if they can be avoided early.

Pull Request: https://projects.blender.org/blender/blender/pulls/112891
2023-09-26 15:36:40 +02:00
Alexander Gavrilov
0055ae01ab Anim: implement a new curve-aware vertex to B-Bone segment mapping mode.
Currently vertices are mapped to B-Bone segments without taking the
rest pose curve into account. This is very simple and fast, but causes
poor deformations in some cases where the rest curvature is significant,
e.g. mouth corners in the new Rigify face rig.

This patch implements a new mapping mode that addresses this problem.
The general idea is to do an orthogonal projection on the curve. However,
since there is no analytical solution for bezier curves, it uses the
segment approximation:

* First, boundaries between segments are used for a binary space
  partitioning search to narrow down the mapping to one segment.
* Then, a position on the segment is chosen via linear
  interpolation between the BSP planes.
* Finally, to remove the sharp discontinuity at the evolute surface
  a smoothing pass is applied to the chosen position by blending to
  reduce the slope around the planes previously used in the BSP search.

In order to make per-vertex processing faster, a new array with the
necessary vectors converted to the pose space, as well as some
precomputed coefficients, is built.

The new mode is implemented as a per-bone option in order to ensure
backward compatibility, and also because the new mode may not be
optimal for all cases due to the difference in performance, and
complications like the smoothed but still present mapping
discontinuities around the evolute surface.

Wiki: https://wiki.blender.org/wiki/Source/Animation/B-Bone_Vertex_Mapping

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

Pull Request: https://projects.blender.org/blender/blender/pulls/110758
2023-09-26 14:17:21 +02:00
persun
1b1334aabd Fix: Show mesh data tab while using EEVEE Next
Show mesh data tab while using EEVEE Next.

EEVEE Next was omitted from the list of compatible
engines to show mesh data panels, resulting a totally
empty area.

Pull Request: https://projects.blender.org/blender/blender/pulls/112868
2023-09-26 14:08:31 +02:00
Pablo Vazquez
d9976dac3e UI: Remove duplicate Make Library Override in Object menu
Remove duplicate `object.make_override_library` entry in Object menu.

It was in both the "Relations" and the "Library Override" menu.
Remove it from "Relations".

Also add separator and move it up since it is now the intended way
of handling relations.

Pull Request: https://projects.blender.org/blender/blender/pulls/112685
2023-09-26 12:19:27 +02:00
Pablo Vazquez
05fc31f27f UI: Remove redundant "Context Menu" in menu titles
Context menus are a type of menu, like header menus, there is no need to mention
the type as part of the name since it is implied by context.

Pull Request: https://projects.blender.org/blender/blender/pulls/112662
2023-09-25 16:25:55 +02:00
persun
90d8a07213 UI: Move "Reset Recent" inside a menu
Move the File Browser's `Reset Recent` button into a menu to prevent
accidental clicks of a destructive operation.

Also rename it to a more descriptive  `Clear Recent Items`, and since
the word "Reset" is used for resetting values to default.

Pull Request: https://projects.blender.org/blender/blender/pulls/112853
2023-09-25 15:15:53 +02:00
Jacques Lucke
8362563949 UI: show recently selected items at the top of searches
The goal is to make the search faster to use by dynamically adapting to the user.
This can be achieved using the simple but common approach of showing recently
selected items at the top. Note, that the "matching score" between the query and
each search item still has precedence when determining the order. So the last used
item is only at the top, if there is no other search item that matches the query better.

Besides making the search generally faster to use, my hope is that this can also
reduce the need for manually weighting search items in some places. This is
because while the ordering might not be perfect the first time, it will always be
once the user selected the element that should be at the top once.

This patch includes:
* Support for taking recent searches into account in string searching.
* Keep track of a global list of recent searches.
* Store recent searches on disk similar to recently opened files.
* A new setting in the user preferences that allows disabling the functionality.
  This can be used if deterministic key strokes are required, e.g. for automated tests.

In the future this could be improved in different ways:
* Add some kind of separator in the search list to indicate which elements are at
  the top because they have been used recently.
* Store the recent search items per search, instead of in a global list. This way
  it could adapt to the user even better.

Pull Request: https://projects.blender.org/blender/blender/pulls/110828
2023-09-25 10:56:12 +02:00
Hans Goudey
652aab0b31 Fix: Swapped icons in node tool header popover 2023-09-22 20:51:34 -04:00
Hans Goudey
2cb34f7c0d UI: Improve geometry nodes tool popover layout
See #101778, #111524

Separate the layout into one popover for object types and another for
object modes. Use checkboxes with icons and full phrases like "Object
Mode". Also rename the modifier popover to "Modifier". Thought
it just has one option right now, so it looks quite weird.

---

![image](https://projects.blender.org/attachments/17e86c35-3c13-48e4-8113-817c5a80fdd3)
![image](https://projects.blender.org/attachments/f92a55a9-e4f0-4c29-8d15-a47a3154ed70)
![image](https://projects.blender.org/attachments/50cd0a93-0abb-4766-819b-62d265251822)

Pull Request: https://projects.blender.org/blender/blender/pulls/112749
2023-09-23 02:33:51 +02:00
Harley Acheson
0dab5818d7 UI: Discrete Thumbnail Sizes for Menus
Allow menus to select thumbnail sizes in discrete steps.

Pull Request: https://projects.blender.org/blender/blender/pulls/112455
2023-09-22 18:49:01 +02:00
Hans Goudey
1c51f74cb4 Geometry Nodes: Filter data-block buttons for tools and modifiers
In the data-block selectors in the node editor and the header,
apply a few rules to increase the separation between tool and
modifier node groups.
1. The modifier accepts non-asset groups or assets marked
   as modifiers (created in the modifier context). Tool node groups
   cannot be used by modifiers.
2. The tool context can only edit node group assets marked as tools
   (created in the tool context).

When switching contexts, the node group is cleared if the state would
be invalid. The tool node group is still stored in the editor's "root node
tree" property. Since it isn't retrieved from the context, the pin button
is useless, so it isn't displayed in the tool mode.

See #101778, #111526.

Pull Request: https://projects.blender.org/blender/blender/pulls/112389
2023-09-22 17:45:00 +02:00
Harley Acheson
18e07098ef UI: Support additional console text operations
Adds the ability to set text cursor position in the Console editor
by clicking with the mouse and many other expected operations such as
cut, select all & deselect on text entry.

Ref !108626
2023-09-22 13:36:29 +10:00
Campbell Barton
fd0d6b27bb Cleanup: remove unnecessary hasattr check 2023-09-22 10:16:13 +10:00
Pablo Vazquez
d0aa521ea8 UI: Minor layout and style adjustments in Preferences
Small style and layout tweaks of some tabs in Preferences.
Mainly inline styling for compact layouts, grouping labels and
adding icons where needed.

Purposely leaving aside complex areas such as Themes,
Add-ons, or Keymap. They require larger design decisions.

Pull Request: https://projects.blender.org/blender/blender/pulls/112393
2023-09-22 01:07:56 +02:00
Brecht Van Lommel
1ef63e93b4 Fix missing BSDF nodes in add menu with Hydra render engines
Default to displaying nearly all nodes when the engine is not set to
Cycles or Eeeve. And instead hide nodes not supported in Eevee only
when Eevee is selected.

This way external engines can use the same menu, particularly useful
for upcoming support for conversion to MaterialX.

Only the Shader category was incomplete like this, so it can also be
seen as fixing an inconsistency with other categories.
2023-09-21 18:46:30 +02:00
Christoph Lendenfeld
01927e1e45 Anim: Time Offset Slider
This patch has been originally authored by Ares Deveaux #106520
I am just finishing it up.

This is a new operator for the Graph Editor.
It shifts the value of the keys in time,
while keeping the actual key positions in the same place.
It supports wrapping, so when offsetting beyond the range
of the F-Curve it will take values from the other end,
but offset in y-value so there is no jump.

This works best with dense key data.

Co-authored-by: Ares Deveaux <aresdevo@gmail.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/110540
2023-09-21 15:11:16 +02:00
Nathan Vegdahl
be5cf8f8a1 Anim: add graph editor key/handles selection operator
This adds an operator `graph.select_key_handles` to the graph editor
that changes the selection of the different parts of a bezier keyframe.  It
operates on all keys that are either themselves selected or have either of
their handles selected, and changes whether the key itself and/or its handles
are selected.

The operator has three options:

- `left_handle_action`
- `right_handle_action`
- `key_action`

Each of which can be set to:

- Select
- Deselect
- Keep (do nothing)

Co-authored-by: cgtinker <Denys.Hsu@gmail.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/111143
2023-09-21 15:05:30 +02:00
Christoph Lendenfeld
25031f8a86 Anim: Graph Editor Push/Pull operator
This finishes the work that Ares Deveaux started here #106527

Scales the selected keys from an imaginary line that
runs from the start to the end of the segment.

Co-authored-by: Ares Deveaux <aresdevo@gmail.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/112388
2023-09-21 12:46:27 +02:00
Jeroen Bakker
9cc4df8062 Cleanup: Make Format 2023-09-21 07:55:23 +02:00
Pablo Vazquez
da495765b4 UI: Add icon to Library Override menu entries
To create a connection with the icon that shows up in
ID templates and decorators once library is overriden.

Affects Outliner context and Object menu in 3D Viewport.
Similar to the Asset menu.
2023-09-20 15:06:54 +02:00
persun
63fef34fda UI: Add Vertex Crease operator to vertex context menu
Add Vertex Crease operator to vertex context menu. This is consistent with
edge context menu having Edge Crease menu.

Pull Request: https://projects.blender.org/blender/blender/pulls/109146
2023-09-20 08:58:17 +02:00
Campbell Barton
9ed7d7cb03 UI: add extensions section (shown when extension repos are enabled)
This is a place-holder by default, the work-in-progress extensions
add-on makes use of this.
2023-09-20 15:14:07 +10:00
Sybren A. Stüvel
b48031df8e Anim: armature edit mode, make Shift+M consistent with pose mode
Replace the 'armature layers' operator (which would toggle visibility of
armature layers) with the 'bone collections' menu (which allows assigning
to and unassigning from bone collections). The functionality of these
operators is quite different, but it unifies the behaviour between
armature pose and edit modes.

Selecting which bone collections are visible in the 3D Viewport may be
reintroduced after nestable bone collections are implemented. Otherwise
the list of bone collections will likely become unwieldy.
2023-09-19 17:43:26 +02:00
Julian Eisel
974d70918b RNA/BPY: Replace asset_library_ref with asset_library_reference
This is a compatibility breaking change to rename all usages of the name
`asset_library_ref` with `asset_library_reference`. Brecht recently
suggested that such abbreviations should be avoided in public API names.
2023-09-19 16:27:07 +02:00
Julian Eisel
591a1ae323 Assets: Remove (almost) all usages of asset handle in Python scripts
The asset handle type is supposed to be replaced by the asset
representation type. It is designed for the asset system as opposed to
the file browser backend. With d421ebac5e, d04cd3f3e6 and f6a6b27ac1, it
can now do everything that is needed in Python to be a replacement.

With this commit the asset handle type and the file handle type it uses
is almost entirely replaced in Python files (only for the asset view
template we require a collection property taking asset handles still,
for internal reasons.)

Part of #102877 and #108806.
2023-09-19 14:41:34 +02:00
Sybren A. Stüvel
62639080bc Anim: armature edit mode, replace 'bone layers' operator with collections
In armature edit mode, replace the 'bone layers' operator with the 'move
to bone collection' operator. This operator now works in both pose mode
and edit mode, and is available with the 'M' hotkey in either mode.
2023-09-19 11:45:40 +02:00
Sybren A. Stüvel
02659c0d01 Anim: merge bone collection assignment menus
Remove the Ctrl+G shortcut (remnant of the bone group assignment operator),
and change the 'Pose / Bone Collections' menu so that it handles linked
and overridden data properly. Shift+M now shows that menu too.
2023-09-18 14:48:34 +02:00
Damien Picard
418f817879 I18n: do not translate Freestyle modifier breadcrumbs
Each type of Freestyle modifier gets its own panel. Each panel draws
breadcrumbs below the header. These breadcrumbs look like:

MyLineSet > MyLineStyle

They are currently translated, but since they represent data they
should not.

This commit disables translation for these breadcrumbs.

Pull Request: https://projects.blender.org/blender/blender/pulls/112418
2023-09-18 13:03:08 +02:00
Clément Foucault
c00962d038 EEVEE-Next: Raytrace: Add back Screen Space radiance input
This finalize the implementation of the screen space tracing
for EEVEE-Next.

Refractive objects can now have screen space reflection too
and self reflect.

This keeps the feedback radiance buffer principle of the
Classic EEVEE so that we still get infinite bounces by default.

There are some conflict with refraction tracing and ambient
occlusion nodes. Materials using screen space refraction will
not be able to detect occlusion from any refractive surface using
screen space refraction including itself.
They also won't be visible to screen space reflections from other
materials *not* using screen space refraction.
This should be added to the list of limitations for now.

Note that the current approach to feed the radiance is to copy
the radiance buffer. This has the nice property of only containing
the currently rendered objects and not project transparent objects
or other non-yet rendered object onto the depth behind them.

Pull Request: https://projects.blender.org/blender/blender/pulls/112341
2023-09-16 11:48:13 +02:00
Julian Eisel
728d47f3e4 Asset shelf: Use asset representation for asset shelf BPY methods
Changes the `asset_poll()` and `draw_context_menu()` methods for asset
shelves to use the `AssetRepresentation` type, instead of `AssetHandle`.
The latter should be removed, so it's better to avoid using it in the
asset shelf BPY to avoid future compatibility breakage. This is possible
now with d421ebac5e.
2023-09-15 16:17:44 +02:00
Sybren A. Stüvel
ea360ffc12 Anim: hide bone collection customprop editor on overrides
Blender's generic custom property panel doesn't support operating on
overridden data yet, so it's better to just hide the panel altogether.
Before this commit, the 'Custom Properties' panel was shown but empty.
2023-09-15 14:54:04 +02:00
Sybren A. Stüvel
347ffd6262 Anim: add support for renaming bone collections added by overrides
Add a flag `BONE_COLLECTION_OVERRIDE_LIBRARY_LOCAL` that's only set on
bone collections that have been overridden locally.
2023-09-15 14:54:03 +02:00
Julian Eisel
213b8325bf Asset Shelf: Make display popup more constistent with Asset Browser
- Use property split layout
- Use "Size" instead of "Preview Size" for the label
- Place size option at the top
2023-09-15 12:40:19 +02:00
Campbell Barton
2c28f87230 Fix missing weight-paint overlay popover when mixing pose & weight-paint
Since [0] mixing weight-paint & pose modes made weight-paint overlay
options inaccessible. Display both popovers in the 3D view header
in this case.

[0]: 4fa4f5432d
2023-09-15 10:49:22 +10:00
Campbell Barton
a106760efa Cleanup: use variables for the 3D View header
Avoid re-accessing values already known.
2023-09-15 10:44:45 +10:00
Campbell Barton
0ed14c813f Cleanup: remove redundant checks from space_view3d.py
The context's mode implies having an active object in the mode
being checked.
2023-09-15 10:44:43 +10:00
Campbell Barton
3c6731969e Cleanup: simplify use of tool_settings in space_view3d.py
Assign early in and reuse, access directly from context.
2023-09-15 10:44:42 +10:00
Campbell Barton
def4a06fc9 Cleanup: format 2023-09-15 10:44:40 +10:00
Pablo Vazquez
4fa4f5432d UI: Viewport: Split object/mode overlays into own popover
Move object/mode-specific overlays into their own popover
in order to reduce scrolling and improve discoverability.

Pull Request: https://projects.blender.org/blender/blender/pulls/112156
2023-09-14 21:20:48 +02:00
Campbell Barton
b7f3e0d84e Cleanup: spelling & punctuation in comments
Also remove some unhelpful/redundant comments.
2023-09-14 13:25:24 +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
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
Campbell Barton
c51336f5e8 Cleanup: single quote enums in Python 2023-09-13 13:38:39 +10:00
Christoph Lendenfeld
614fe73712 Fix: Wrong operator call in Graph Editor menu
During the recent operator renames, the menu
entry for "Sound to Samples" was missed and
left as "graph.sound_bake"
This fixes it to be the correct "graph.sound_to_samples"
2023-09-12 10:51:29 +02:00