tornavis/source/blender/render
Hans Goudey 4d841e1b35 Mesh: Reimplement and unify topology maps
Combine the newer less efficient C++ implementations and the older
less convenient C functions. The maps now contain one large array of
indices, split into groups by a separate array of offset indices.
Though performance of creating the maps is relatively unchanged, the
new implementation uses 4 bytes less per source element than the C
maps, and 20 bytes less than the newer C++ functions (which also
had more overhead with larger N-gons). The usage syntax is simpler
than the C functions as well.

The reduced memory usage is helpful for when these maps are cached
in the near future. It will also allow sharing the offsets between
maps for different domains like vertex to corner and vertex to face.

A simple `GroupedSpan` class is introduced to make accessing the
topology maps much simpler. It combines offset indices and a separate
span, splitting it into chunks in an efficient way.

Pull Request: https://projects.blender.org/blender/blender/pulls/107861
2023-05-24 13:16:57 +02:00
..
intern Mesh: Reimplement and unify topology maps 2023-05-24 13:16:57 +02:00
CMakeLists.txt Cleanup: Move pipeline.h to C++ 2023-05-02 16:55:45 +02:00
RE_bake.h Remove "All Rights Reserved" from Blender Foundation copyright code 2023-03-30 10:51:59 +02:00
RE_engine.h Remove "All Rights Reserved" from Blender Foundation copyright code 2023-03-30 10:51:59 +02:00
RE_multires_bake.h Remove "All Rights Reserved" from Blender Foundation copyright code 2023-03-30 10:51:59 +02:00
RE_pipeline.h Cleanup: Typo in the comment 2023-05-24 09:56:09 +02:00
RE_texture.h Remove "All Rights Reserved" from Blender Foundation copyright code 2023-03-30 10:51:59 +02:00
RE_texture_margin.h Cleanup: remove redundant forward declarations for structs 2023-01-18 18:41:13 +11:00