Blender Git Commits

Blender Git "master" branch commits.

Page: 873 / 5574

March 9, 2020, 20:58 (GMT)
Cleanup: compiler warnings
March 9, 2020, 20:58 (GMT)
Fix error in grease pencil vertex paint levels operator
March 9, 2020, 20:19 (GMT)
Fix T74354: Avoid division by 0 when calculating hardness

I could not reproduce the issue, but it looks like it was produced by
this division by 0. In any case, the code here was wrong.

Reviewed By: jbakker

Maniphest Tasks: T74354

Differential Revision: https://developer.blender.org/D6987
March 9, 2020, 20:16 (GMT)
Sculpt: Edge Automasking

This automasking option protects the open boundary edges of the mesh from the brush deformation. This is needed to sculpt cloths and it works nicely with the cloth brush.
It has a Propagation Steps property that controls the falloff of the mask from the edge.

Limitations:
- The automask is recalculated at the beginning of each stroke, creating a little bit of lag in high poly meshes, but it is not necessary. This can be fixed in the future by caching the edge distances, increasing a little bit the complexity of the code.
- The boundary vertex detection in meshes is not ideal and it fails with triangulated geometry, but it is the same as in the smooth brush. After fixing this, we should refactor the smooth brush to use the API and let the automasking option manually control the affected vertices.
- It does not work in Multires (it needs to be implemented in the API). The smooth brush in Multires is also not making boundary vertices.
- The falloff has a visible line artifact on grid patterns. We can smooth the final automasking factors several iterations, but it will make the initialization much slower. This can also be added in the future if we decided to cache the distances.

Reviewed By: jbakker

Differential Revision: https://developer.blender.org/D6705
March 9, 2020, 19:18 (GMT)
UI: add menus for preferences editor

This only applies to the case where preferences are opened as an editor in
a workspace, not with Edit > Preferences in a new window.

Differential Revision: https://developer.blender.org/D7001
Revision 2d8d30e by Adrian Newton / Brecht Van Lommel
March 9, 2020, 19:18 (GMT)
UI: make workbench viewport samples label consistent with Cycles and Eevee

Differential Revision: https://developer.blender.org/D7082
Revision 848a4f0 by Adrian Newton / Brecht Van Lommel
March 9, 2020, 19:18 (GMT)
UI: add "Samples" text to audio mixing buffer size preference for clarity

Differential Revision: https://developer.blender.org/D7076
March 9, 2020, 19:11 (GMT)
Face Sets: Use white color for a default Face Set to enable the overlay

This introduces a variable to store a face set ID which is going to be
rendered white. When initializing a mesh or randomizing the colors, this
variable gets updated to always render a white face set. This way the
face set overlay can be enabled without adding colors to the mesh if
face sets are not in use. After creating the first face set, new colors
are generated randomly like usual.

The face set stored as default does not have any special meaning for
tools or brushes, it just affects the rendering color.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D7035
March 9, 2020, 19:04 (GMT)
Face Sets: Add relax support to Mesh Filter and Draw Face Sets

This enables a relax operation that works only on face sets boundaries,
which smooths the jagged edges that are produced when painting or
expanding face sets by sliding the topology without affecting the shape
of the mesh. This has many uses in hard surface sculpting for things
like sculpting panels or smoothing surfaces. It can also help when
working with remeshed topology as it makes the face sets looks better
and more organized if needed.

The operation is implemented as an Shift smooth in the Draw Face sets
tool, similar to the Slide/Relax tool.

The same operation is also available in the mesh filter to smooth all
the face sets boundaries uniformly or to smooth the face set under the
cursor with the Use Face Sets option.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D7034
March 9, 2020, 18:43 (GMT)
Fix Cloth Brush not working with automasking

The cloth brush was not using the automasking values when calculating
the mask value on each vertex.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D7083
March 9, 2020, 18:39 (GMT)
Fix T74500: Rebuild the Face Sets datalayer after slicing the geometry

Was crashing SculptSession data will not longer be valid if the total
number of polys is modified when rendering the mesh again.
This deletes all face sets in the mesh when slicing the mask. I'll try
to add code to generate a new face set in with faces that are created
when filling the holes, but for now this avoids the crash.

Reviewed By: brecht

Maniphest Tasks: T74500

Differential Revision: https://developer.blender.org/D7049
March 9, 2020, 18:33 (GMT)
Fix T74499: Add visibility checks to Face Sets creation operations

Create face sets by visibility needs to check if all face sets of a
vertex are visible to set the new face set. I renamed the functions to
make this more cleare in the API.

I also added a visibility check when creating by mask to avoid modifying
hidden areas.

Reviewed By: brecht

Maniphest Tasks: T74499

Differential Revision: https://developer.blender.org/D7048
March 9, 2020, 18:29 (GMT)
Sculpt: Remove hardcoded hardness from Clay brush

Hardness is now a property implemented for all brushes, so this is no
longer needed.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D7078
March 9, 2020, 18:25 (GMT)
Fix T74492: Reset Face Set data when cancelling the expand operator

The operator was resetting the mask data when cancelling instead of the
face set data, so it was crashing because mask data was not available
when starting the operator in expand face set mode.

Reviewed By: brecht

Maniphest Tasks: T74492

Differential Revision: https://developer.blender.org/D7043
March 9, 2020, 18:14 (GMT)
Cleanup: Move Face Sets random color generation to its own function

This way we can change the color generation easily if we want to improve
it in the future. I also added more values to randomize a little bit the
saturation and value of the colors, as previously it was too easy to get
similar colors when creating new faces, forcing you to use the randomize
colors more than necessary.

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D7042
March 9, 2020, 18:09 (GMT)
Fix T74438: Vertex-only meshes disappear in wireframe mode

The problem happens because, in wireframe mode, `bool use_wire` is
always `true`, so the function that draws all edges is the called.

The solution is set `use_wire` as `false` when the mesh has no edges.

This matches the behavior of blender 2.79.

Reviewed By: fclem, brecht

Differential Revision: https://developer.blender.org/D7041
Revision a468368 by Adrian Newton / Brecht Van Lommel
March 9, 2020, 17:49 (GMT)
UI: use pixel units for tile sizes and node auto-offset margin

Differential Revision: https://developer.blender.org/D7077
March 9, 2020, 17:43 (GMT)
Cleanup: Move `BKE_animdata_free()` call out of each IDType free data.

This has been long standing TODO...

Note that remaining usages of BKE_xxx_delete should all be carefully
checked for and utilmately nuked in favor of `BKE_id_delete()`, think we
still have quiet a few bugs hidden in those (code seems to usually
assume those functions do a full ID deletion, which is not the case).
March 9, 2020, 17:43 (GMT)
Cleanup: Remove unused switch/case from BKE_lib_id.

Only covers direct usages of new callbacks from IDTypeInfo.

We still have a lot of those switch/case, many can probably go away
with minimal refactor now, but that will be for later.
March 9, 2020, 17:27 (GMT)
Alembic: constraint for transform animation is using world matrix again

In rB7c5a44c71f13 I changed the way transform matrices are loaded from
Alembic. Instead of having the Alembic importer convert matrices from
local (in the Alembic file) to World (to pass to the constraint handling
the animation of transforms), I set the constraint space to
`CONSTRAINT_SPACE_LOCAL`.

This worked thanks to rB7728bfd4c45c. However, that commit was reverted,
which meant that for parentless objects `CONSTRAINT_SPACE_LOCAL` no
longer means "local space".

The situation is resolved by setting the constraint to world space
again, and computing the world matrix in the Alembic importer.
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021