d93b27a12e6598fa333c39d5b3fccf8a0697fc03
The main change is avoid storage of redundant data in the subdivision draw cache, mainly by replacing reverse lookup from subdivided edge to coarse edge. This way loops are structured as iteration over coarse edges instead of iteration over subdivided edges with optional behavior for vertices with matching base mesh faces. With that inversion the information in the draw cache is trivial (or duplicated from an array in `MeshRenderData`), so it's all removed, except for the subdivided loose edge positions. That array is also shrunk though, by not duplicating positions in between each subdivided edge. Its calculation is more efficient for the same reason too. Overall, besides code simplification, the effect should be lower overhead with loose edges with GPU subdivision. Admittedly this isn't a very important use case, but it's part of a general refactor trying to use better data oriented design in this area (#116901). Pull Request: https://projects.blender.org/blender/blender/pulls/122071
…
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%
