99c55bdbfbf4fefd0127b0030ee115e938c338f4
Part of #118145 This commit tackles splitting up the cached, per element data that is calculated prior to the first stroke of the boundary brush occuring. The main entry point is the `data_init` function which handles the following rough steps: * Find the closest boundary vert to the current position. * Check to see if the selected boundary is valid. * Find all boundary vertices to affect with this task. * For all vertices near each of the boundary vertices, populate various information to be used when actually performing the deformation into an array that is sized to the total number of elements in the backing data structure. The result at the end of this is the `SculptBoundary` struct which has remained unchanged and is populated for each of the symmetry passes. Because the current algorithm is single threaded, this commit opts to avoid making any major changes to this structure, as improving this performance will likely require reevaluating the problem from the base needs of this brush. For each of the preceding four rough areas of computation, the methods have been split into separate implementations per PBVH type to remove most usage of `SculptSession` and `PBVHVertRef`. Additionally, the method which is used to display the targeted boundary and the pivot data has been updated as well to use this same code path. Pull Request: https://projects.blender.org/blender/blender/pulls/125525
…
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%
