6b0fa709fa87366ba4bc22eb1265d19200bbcb82
Prior to the brush refactor in 4.3, the cavity automasking feature had an implicit dependency on stable position values. In many cases, such as during brush evaulation, this was upheld by the usage of the proxy system, which meant that even if a vertex's neighbor was changed during a stroke in paralell, these changes would not be accessed until after a stroke finished. With the new method of brush evaulation removing the proxy system, this introduced subtle artifacts on BVH node boundaries, as vertices were guaranteed to change and cause differences as there was no temporary storage to use the "old" position data. This effect was most noticable in 4.3 and beyond in multires sculpting, though similar artifacts can be seen when using the mesh filter in all prior versions. To fix these issues, instead of calculating the internal cavity factor during a stroke or during deformations, we calculate it ahead of time based on the affected nodes of a stroke. This has the benefit of now behaving consistently for a given mesh and given brush or filter application. From a performance perspective, this change should have no noticeable impact, as each BVH node, and by extension each vertex, only has its corresponding cavity factor calculated once, when the stroke would affect the node. Related: #102745 Pull Request: https://projects.blender.org/blender/blender/pulls/133224
…
Blender
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.
Project Pages
Development
License
Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different, but compatible license.
See blender.org/about/license for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%
