某些数据结构似乎在图形应用程序中反复出现,可能是因为它们解决了诸如表面、空间和场景结构等基本概念。本章讨论了几个基本的和不相关的数据结构类别,它们是最常见和最有用的数据结构:网格结构、空间数据结构、场景图和平铺多维数组。
对于网格,我们讨论了用于存储静态网格和将网格传输到图形api的基本存储方案。我们还讨论了翼边数据结构(winged-edge data sturcture)(Baumgart, 1974)和相关的半边结构,这对于管理细分变化的模型很有用,例如在细分或模型简化中。虽然这些方法可以推广到任意多边形网格,但我们在这里关注的是更简单的三角形网格。
其次,给出了场景图数据结构。这种数据结构的各种形式在图形应用程序中无处不在,因为它们在管理对象和转换时非常有用。所有新的图形api都能很好地支持场景图形。
对于空间数据结构,我们讨论了在3D空间中组织模型的三种方法,边界体层次结构,层次空间细分和均匀空间细分,以及使用层次空间细分(BSPtrees)来去除隐藏表面。同样的方法也用于其他目的,包括几何剔除和碰撞检测。
最后给出了平铺的多维数组。最初开发这种结构是为了在需要从磁盘交换图形数据的应用程序中提高分页性能,现在这种结构对于机器上的内存位置至关重要,而不管数组是否适合主存。