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.
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
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
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
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
Following f7af45ccfd, rename link labels:
* Release Notes -> What's New
* Development Fund -> Donate
The description are left as is since they
are still correct, just the labels to be more
in line with language used in blender.org
* Rename "Development Fund" to "Donate", more in line with
the language used in blender.org
* Rename "Release Notes" to "What's New". A bit more inviting
to click and sounds less technical.
* In "Getting Started", remove "Credits" since it it nos related
to getting started, and add relevant links already present
in the Help menu.
Pull Request: https://projects.blender.org/blender/blender/pulls/112741
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
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
It's valid for modifier node groups to not have a geometry input, since
they can just be generators. The operator used to give a warning and
cancel itself when there was no geometry input. Now it works, and
skips adding the geometry input and the group input node to the
new group.
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
Support the property settings that were implemented some time ago.
As an aside, change the defaults for min and max to integers: integer
values can be implicitly cast to float, but the reverse results in an
error. Also, pointer properties don't support a default value.
Pull Request: https://projects.blender.org/blender/blender/pulls/112712
Without this it was necessary to convert pasted text into spaces
for them to display properly.
Since tabs are a valid part of a string, it's incorrect to assume
tabs can always be expanded to spaces.
Pasted text and console output now display tabs properly,
the tab still uses spaces for indenting though.
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
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
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.
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
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
Blender 4.0 requires OpenGL 4.3 which always support SSBO's.
Platforms that don't support enough SSBO bind points will be marked
as unsupported.
Users who start Blender on those platforms will be informed via a
dialog. This PR also updates the `--debug-gpu-force-workarounds`
to match our minimum requirements. Note that some bugs are still
there that should be solved in other PRs:
* Workbench only renders the object using a unit matrix this is because
there is a bug in the workaround for shader_draw_parameters
* Navigating with middle mouse button is not working. Unsure what the
cause is, but might be a missing feature check in the OpenGL backend.
Related to #112224
Pull Request: https://projects.blender.org/blender/blender/pulls/112572
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.
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.
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.
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.
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.
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.