Revision 9c5522f by Brecht Van Lommel March 9, 2020, 20:58 (GMT) |
Cleanup: compiler warnings |
Revision 0133d66 by Brecht Van Lommel March 9, 2020, 20:58 (GMT) |
Fix error in grease pencil vertex paint levels operator |
Revision 4652f23 by Pablo Dobarro 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 |
Revision 84b94f9 by Pablo Dobarro 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 |
Revision 18e3615 by Pablo Dobarro 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 |
Revision 0dfb4ac by Pablo Dobarro 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 |
Revision e702c9a by Pablo Dobarro 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 |
Revision 0030e6a by Pablo Dobarro 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 |
Revision 503d5c0 by Pablo Dobarro 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 |
Revision c65b9fb by Pablo Dobarro 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 |
Revision 6eb76f6 by Pablo Dobarro 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 |
Revision a540d16 by Pablo Dobarro 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 |
Revision 1131e33 by Germano Cavalcante 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 |
Revision be2e41c by Bastien Montagne 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). |
Revision 6472a72 by Bastien Montagne 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. |
Revision b080de7 by Sybren A. Stüvel 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. |
|