Georgia Institute of Technology, Atlanta.
IEEE Trans Vis Comput Graph. 2014 Jan;20(1):84-98. doi: 10.1109/TVCG.2013.81.
We present Grouper: an all-in-one compact file format, random-access data structure, and streamable representation for large triangle meshes. Similarly to the recently published SQuad representation, Grouper represents the geometry and connectivity of a mesh by grouping vertices and triangles into fixed-size records, most of which store two adjacent triangles and a shared vertex. Unlike SQuad, however, Grouper interleaves geometry with connectivity and uses a new connectivity representation to ensure that vertices and triangles can be stored in a coherent order that enables memory-efficient sequential stream processing. We present a linear-time construction algorithm that allows streaming out Grouper meshes using a small memory footprint while preserving the initial ordering of vertices. As a part of this construction, we show how the problem of assigning vertices and triangles to groups reduces to a well-known NP-hard optimization problem, and present a simple yet effective heuristic solution that performs well in practice. Our array-based Grouper representation also doubles as a triangle mesh data structure that allows direct access to vertices and triangles. Storing only about two integer references per triangle--i.e., less than the three vertex references stored with each triangle in a conventional indexed mesh format--Grouper answers both incidence and adjacency queries in amortized constant time. Our compact representation enables data-parallel processing on multicore computers, instant partitioning and fast transmission for distributed processing, as well as efficient out-of-core access. We demonstrate the versatility and performance benefits of Grouper using a suite of example meshes and processing kernels.
我们提出了 Grouper:一种集紧凑文件格式、随机访问数据结构和大型三角网格流表示于一体的方法。与最近发布的 SQuad 表示类似,Grouper 通过将顶点和三角形分组到固定大小的记录中,来表示网格的几何形状和连接性,其中大多数记录存储两个相邻的三角形和一个共享顶点。然而,与 SQuad 不同的是,Grouper 将几何形状与连接性交织在一起,并使用新的连接性表示来确保顶点和三角形可以以一致的顺序存储,从而实现高效的连续流处理。我们提出了一种线性时间构建算法,该算法允许使用小的内存足迹流式输出 Grouper 网格,同时保留顶点的初始顺序。作为该构建的一部分,我们展示了如何将顶点和三角形分配到组的问题减少到一个众所周知的 NP 难优化问题,并提出了一种简单而有效的启发式解决方案,该解决方案在实践中表现良好。我们的基于数组的 Grouper 表示也可以作为三角形网格数据结构,允许直接访问顶点和三角形。存储每个三角形仅约两个整数引用 - 即,少于传统索引网格格式中每个三角形存储的三个顶点引用 - Grouper 以摊还常数时间回答关联和邻接查询。我们的紧凑表示允许在多核计算机上进行数据并行处理,为分布式处理提供即时分区和快速传输,以及高效的核外访问。我们使用一系列示例网格和处理内核展示了 Grouper 的多功能性和性能优势。