This is not dependent on having an armature as mentioned in T75111.
The collider simply has to be animated.
Reviewers: sebbas
Differential Revision: https://developer.blender.org/D7251
This commit aims to add functionality to the surface deform modifier that
gives more control and allows it to work better with the modifier stack.
* Maintains compatibility with older files. The default settings keep it
so that the whole object is bound and vertex coordinates get overwritten
as the modifier currently does.
* Turns the deformations from an absolute vertex coordinate overwrite into
an additive offset from the vertex location before the modifier to the
resulting bound deformation. This gives the ability to control the
strength of the deformation and mix the deformation of the modifier
with the modifier stack that comes before it.
* Also adds in a vertex group with the invert option. This is applied after
the bind deformation is added. So the whole object is still bound to target,
and the vertex group filters afterwards what parts get affected.
I experimented with a version to only binds the geometry weighted to the
vertex group, but that would break compatibility with old files.
I may bring it in later as a separate option/mode for the surface deform.
With several fixes from @mont29.
Reviewed By: mont29
Differencial Revision: https://developer.blender.org/D6894
Might have happened when Apply Base is used in sculpt mode.
In practice this probably was fine, since the operator tags object
for update, so the pointers will be restored back to what they should
be.
This commit gives the solidify modifier the ability to assign the newly created shell
and rim geometries to selected vertex groups. This expands the procedural control over
the modifier stack by letting users apply modifiers to the shell geometry without affecting
the original geometry.
This will be especially helpful for NPR users that use solidify to create backface
culling lines on their characters giving them the ability to add displace noise
and other effects.
Differential Revision: https://developer.blender.org/D6903
This commit adds the option to use armature bones for the From and To targets
when using armature objects.
The changes are based on the UV Warp modifier.
Reviewed By: mont29
Differential Revision: https://developer.blender.org/D6820
Problem is that the RenderEngines will change the RenderData cfra when
rendering (when time remapping is used -- at least workbench/eevee/
gpencil do a combination of BKE_scene_frame_get() plus
RE_GetCameraWindow() which alters the RenderData cfra).
Later on in the pipeline, the Compositor will use this RenderData cfra
to determine the output file name for the FileOutput node. (In contrast
to this, the 'regular' Output will use the Scene's RenderData -- not the
Render's -- cfra [which hasnt been altered])
It is not entirely clear why RE_GetCameraWindow was setting the cfra on
the Render, but it appears to be legacy OGL rendering related and is not
needed anymore.
Removing this will keep the cfra as needed for the Compositor FileOutput
node.
Caused by rBedb3b7a323a1.
Using evaluate_fcurve_only_curve actually causes quite a bit of slowdown
[6x] compared to bezier forward differencing [which was used prior to
rBedb3b7a323a1]. But full fcurve evaluation is desired with Dynamic
Interpolation Effects [Back/Elastic] since their min/max will not be
captured with forward differencing.
So now gain back speed [using bezier forward differencing] and only do
the full fcurve evaluation for dynamic interpolation effects.
Maniphest Tasks: T74927
Differential Revision: https://developer.blender.org/D7196
operator cancelled.
Lots of operators return OPERATOR_CANCELLED when no data really changed.
Reports from those operators do not show immediately in the Info Editor
[they only do if the operator returns OPERATOR_FINISHED].
Now also notify the Info Editor in case of OPERATOR_CANCELLED.
Maniphest Tasks: T58439
Differential Revision: https://developer.blender.org/D7238
- Use addon keyconfig for registered tools so reloading the keymap
doesn't clear them.
- Ensure there is a default keymap, needed for addon keymaps
to be available in the user keyconfig.
On some drivers, the default values is not respected correctly.
To workaround this we create a small VBO that contains only 1 vec4 worth of
data and just bind it using glBindVertexBuffer to ensure 0 stride.
This fixes T75069 Instances not rendered correctly by workbench.
This adds support for macOS aliases in addition to symlinks. It also adds
support for hidden, readonly and system file attributes.
Contributed by Ankit (ankitm) with modifications by me.
Differential Revision: https://developer.blender.org/D6679
Modify the view layer add operator (and underlying `BKE_view_layer_add`)
to allow for copying the current view layer, as well as adding a new one
but with all LayerCollections disabled by default (this is important for
heavy scenes where currently adding view layers can take a long time due
to enabling every collection by default).
Reviewed By: mont29
Differential Revision: https://developer.blender.org/D6862
This works similarly to the CYCLES_OPENCL_TEST
environment variable to allow testing on unsupported
hardware.
Note: like the OPENCL test override, this is
for *testing* only and bug reports on unsupported
hardware will *not* be accepted at this point in
time.
This implements a new mode in the Face Sets Create operator to create a
new face sets from the faces selection in edit mode. This can be used
when the user considers that the edit mode tools are more convenient for
a more precise control or a certain type of selection, like creating a
face set from a face loop.
Reviewed By: jbakker
Differential Revision: https://developer.blender.org/D7211
This operator initializes all face sets in the sculpt at once using
different mesh properties. It can create face sets by mesh connectivity,
material slots, face normals, UV seams, creases, sharp edges, bevel
weights and face maps.
For properties that are already in the faces, this is implemented as a
loop. Properties that depend on edge attributes use a similar operation
to sculpt flood fill, but using face adjacency instead of edge vertex
connectivity.
As Multires also stores the face sets in the base mesh, this should work
in the face sets Multires implementation without any changes.
This is implemented as a separate operator as this resets the visibility
and creates all face sets at once, while the create face set operator
creates a single face sets, leaving the rest of the face sets in the
mesh as they are.
Reviewed By: jbakker
Differential Revision: https://developer.blender.org/D7209
This implements the Surface Smooth Brush as a mode inside the Smooth tool,
which uses the HC algorithm from "Improved Laplacian Smoothing of Noisy Surface Meshes".
Comparted to the regular smooth brush with laplacian smooth, this brush removes
the surface while preserving the volume of the object.
The smooth result can be controlled by tweaing the original shape preservation,
displacement and iteration count.
The same surface smooth operation is also available as a mesh filter.
Reviewed By: jbakker
Differential Revision: https://developer.blender.org/D7057
Using a float to store and render the mask seems like a waste of memory
without any noticeable difference in the viewport for its use case.
After this commit, the mask and the face sets combined should take the
same amount of GPU memory than only the mask in previous versions.
Reviewed By: jbakker
Differential Revision: https://developer.blender.org/D7148
This new method is only enabled if Overlay Smooth Wire is enabled.
This method gives really nice results but has some downside:
- Require a depth copy or loose the ability to write wire depth to the
depth buffer and have correct depth ordering of wires. This patch use the former, with its associated cost.
- Require some depth sampling and prevent early depth test (i.e: has
some performance impact).
- Has some relatively minor instability with geometry that are perpendicular
to the view and intersecting with other geometry.
Pros:
- Compared to a fullpass approach this is surely going to have less
performance impact and much higher quality.
- Removes the additional vertex offset. (see T74961)
- Fixes all half edges z-fighting.
{F8428014}
{F8428015}
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D7233
SCULPT_FACE_SET_NONE default value is 0 and it is rendered hidden, so
the invert sign operation to show it was not working. Now the show all
function sets this face set to ID 1 before setting its sign.
I also refactored this check in gpu_buffers.
Not related to the reported issue, but the mesh in attached contains non
manifold geometry with hidden loose vertices, so the visibility state
was not syncing correctly to those vertices. Now the toggle operators
checks the current visibility only on the face sets, so no manifold
vertices are ignored (as they are in the rest of operations in sculpt
mode).
Reviewed By: jbakker
Maniphest Tasks: T74780
Differential Revision: https://developer.blender.org/D7188
This fixes multiple issues:
- Adds tag to update shading when changing vertex visibiliyt. This makes the mesh visibility update when the operator ends.
- Sync vertex to face sets no longer requires the pmap, so it does not crash. (Maybe we can initialize the pmap on undo to avoid these problems in the future).
- Sync vertex to face sets now works in a coherent way with the rest of visibility operations. Hide Box and Hide mask now sync the visibility changes to the face sets, so the all the operations are now getting a correct visibility state.
Reviewed By: brecht
Maniphest Tasks: T74761
Differential Revision: https://developer.blender.org/D7187
Brushes are created automatically when the tools is enabled, but this
way it gets correct defaults and it is accesible from scripts.
Reviewed By: jbakker
Maniphest Tasks: T74899
Differential Revision: https://developer.blender.org/D7199
The default face set color is white, so we can skip drawing the default
face set. This allows to enable again the optimization of not drawing
overlays in nodes where the mask is empty.
This will still slow down the viewport when a new face set is created
for the whole mesh or when inverting the mask, like in previous
versions.
I also renamed the function to make more clear that now it is checking
for both mask and face sets.
Reviewed By: brecht
Maniphest Tasks: T74692
Differential Revision: https://developer.blender.org/D7207
This checks that the distance of the current positions of two connected
vertices is not 0 before calculating the correction vectors for those
vertices.
Reviewed By: jbakker
Maniphest Tasks: T74808
Differential Revision: https://developer.blender.org/D7184
When using Face Sets to mask the mesh filter the pmap needs to be
initialized to check the face sets of each vertex, otherwise it will
crash because it is null.
Probably now we should just initalize the pmap when building the PBVH as
almost all tools need it, so we can avoid these crashes in the future.
Reviewed By: jbakker
Maniphest Tasks: T75089
Differential Revision: https://developer.blender.org/D7236
Show control edges stores the control edges in the mesh which is
picked up by the draw manager. When applyng a subsurf (or multires) we
don't want that data present in the base mesh. Any rebuilding of the mesh
would overwrite the data anyway.
This patch introduces a new flag for applying modifiers
that can be checked to ignore storing display specific data in
the base mesh.
Reviewed By: Brecht van Lommel
Differential Revision: https://developer.blender.org/D7163