网格化中常用的数据结构

最简单的三角形网格化结构,每个面存储三个顶点的坐标,这个方法存在的两个缺点,1是连接信息不能被显示地捕捉到,顶点和相关联的数据复制了多次。
顶点的冗余的问题可以通过面集索引或者共享顶点的数据结构存储。
网格化中常用的数据结构
因为简单和存储效率高,许多文件格式都采用了这种表示方法,比如off,obj,VRML.相似地,它和一类高效率地渲染算法相关。
然而,因为没有保存有效地链接信息,这种数据结构需要昂贵的搜索来恢复顶点的局部链接信息,因此,这种方法对大多数算法来说,不足够搞效。
这是大多数算法频繁使用的操作集合
1 定位单独的顶点,边和面,这个包含以非特定的顺序遍历所有的元素
2 面向面的边缘的遍历,即在一个面中,寻找下一个或者前一个边缘。有额外的路径可以到顶点,例如,渲染多个面是可以的。
3.进入边的入射面,依赖于朝向,这个可以是左侧或者右侧的多种情况。这个可以确保进入相邻的面。
4.给定一个边,可以确定它相邻的两个顶点
5.给定一个顶点,至少一个入射面或者边可以进入
对于各种各样的网格划分,相关的顶点可以枚举
这些操作可以保证网格相关顶点和有连接信息的面 可以被局部或全局的遍历。
现在来回顾几种快速遍历网格的数据结构。