Revision 48ea173 by Pablo Dobarro March 26, 2020, 15:24 (GMT) |
Sculpt: Create Face Set by Edit Mode Selection 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 |
Revision 99530ef by Pablo Dobarro March 26, 2020, 15:20 (GMT) |
Sculpt: Face Sets Init operator 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 |
Revision a218be3 by Pablo Dobarro March 26, 2020, 15:13 (GMT) |
Sculpt: Surface Smooth Brush and Mesh Filter 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 |
Revision a0437c3 by Clément Foucault March 26, 2020, 15:03 (GMT) |
Fix T75087 Workbench: DoF: Divide By Zero when antialiasing is disabled |
Revision f5ac118 by Pablo Dobarro March 26, 2020, 15:02 (GMT) |
Sculpt: Use uchar to store the sculpt mask in the GPU 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 |
Revision e000dcb by Clément Foucault March 26, 2020, 14:55 (GMT) |
Overlay: Wireframe: New method to avoid zfighting with geometry 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 |
Revision 458f50b by Pablo Dobarro March 26, 2020, 14:50 (GMT) |
Fix T74780: Face sets operators not aware of SCULPT_FACE_SET_NONE 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 |
Revision 83947ea by Pablo Dobarro March 26, 2020, 14:44 (GMT) |
Fix T74761: Reimplement vertex to face sets visibility sync 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 |
Revision c286fa3 by Pablo Dobarro March 26, 2020, 14:41 (GMT) |
Fix T74899: Add Draw Face Sets brush to versioning defaults 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 |
Revision 32bb848 by Pablo Dobarro March 26, 2020, 14:39 (GMT) |
Fix T74692: Do not draw nodes with the default face set 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 |
Revision c32cf06 by Pablo Dobarro March 26, 2020, 14:38 (GMT) |
Fix T74808: Division by 0 in Cloth brush solver with overlapping vertices 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 |
Revision 4ff3d5a by Pablo Dobarro March 26, 2020, 14:36 (GMT) |
Fix T75089: Missing pmap when using Face Sets in the mesh filter 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 |
Revision 7ed3ebb by Jeroen Bakker March 26, 2020, 14:34 (GMT) |
Fix T67888: Incorrect Wireframe After Applying SubSurf/MultiRes 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 |
Revision 2e8fb95 by Jeroen Bakker March 26, 2020, 13:35 (GMT) |
SubDiv: Incorrect normals loose edges The normals of loose edges can be non uniform as they aren't normalized. Checked with what happens with edit loose edges and synchronized the implementation. Reviewed By: Brecht van Lommel Differential Revision: https://developer.blender.org/D7127 |
Revision 0545a84 by Jeroen Bakker March 26, 2020, 13:16 (GMT) |
Fix Crash In Paint Overlay The previous implementation tested the normal behavior and ignored some edge cases. This patch will also test for NULL in all cases |
Revision 1ca1744 by Jeroen Bakker March 26, 2020, 12:35 (GMT) |
Fix T70807: Weight Paint Overlay XRay Weight paint overlay was not working when XRay was turned on. The Weight Paint overlay is rendered directly into the default framebuffer with a depth equal test. This test fails as the depth won't match. This patch will update the depth buffer in these cases. Reviewed By: fclem Differential Revision: https://developer.blender.org/D7176 |
Revision 1b1c683 by Germano Cavalcante March 26, 2020, 12:22 (GMT) |
Fix missing text input on Windows with certain keyboard layouts Events for keys specific to certain keyboard layouts unknown to Blender were ignored. Now pass them along as unknown key events for which we can still handle text input, like we already do for Linux and macOS. Differential Revision: https://developer.blender.org/D7229 |
Revision 622e159 by Antonio Vazquez March 26, 2020, 12:17 (GMT) |
GPencil: Fix unreported fade object when no Gpencil object is selected Only must fade if the active object is a GPencil. |
Revision a093112 by Sergey Sharybin March 26, 2020, 12:07 (GMT) |
CMake: Fix compilation with Xcode generation on Xcode 11.4 Need to give correct SDKROOT. |
Revision bd2b1a6 by Patrick Mours March 26, 2020, 12:00 (GMT) |
Fix T74939: Random Walk subsurface appearance in OptiX does not match other engines Random Walk subsurface scattering did look different with OptiX because transmittance is calculated based on the hit distance, but the OptiX implementation of `scene_intersect_local` would return the distance in world space, while the Cycles BVH version returns it in object space. This fixes the problem by simply skipping the object->world transforms in all the places using the result of `scene_intersect_local` with OptiX. Reviewed By: brecht Differential Revision: https://developer.blender.org/D7232 |
|