计算机图形学(二)输出图元_10_多边形填充区_4_多边形表

多边形表
        场景中的对象一般用一组多边形面片来描述。实际上,图形软件包经常提供以多边形网格形式描述表面形状的函数 。对每一个对象的描述 包括指定多边形面片的几何信息和其他表面参数(如颜色、透明性及光反射特性)。 在输入每个多边形的信息时,数据放进一些表格中等待后续处理、显示和场景的对象管理。这些多边形数据表分成两组来组织:几何数据表和属性数据表。几何数据表包含顶点坐标和标识多边形面片空间方向的参数。对象的属性信息包含指定对象的透明程度及其表面的反射性能和纹理特征。
        场景中对象的几何数据简单地组织为三张表:顶点表、边表和面片表(简称为面表)。 对象的每一顶点的坐标存储在顶点表中。边表包含指向顶点表的指针以确定每一多边形的边的端点。而面片表包含指向边表的指针以确定每个多边形的边。图3.50给出了对象表面两个相邻多边形面片的相关表。另外,对象及其组成多边形均可赋以对象和面片标识,这样可以比较容易地引用它们。



         如图3.50中将几何数据放在三个表格中的做法为引用各个组成部分(每个对象的顶点、边、和面片)提供了方便。使用标识多边形边界的边表数据还可以高效地显示对象。 另一种安排是只用两张表: 顶点表和面片表。但这种方案不够方便,有些边会在线框图中画两次。 另一种可能是仅使用一张面片表 ,这会引起坐标信息的重复,因为每一面片中都使用了显式的坐标值。边和面的关系也必须从面片表的顶点清单中进行重建。
        可以在图3.50的数据表中加人附加信息来提高信息的提取速度。 例如,扩充边表使其包含指向面片表的指针,从而使属于两个多边形的公共边能被快速标识(参见图3.51 )。这对需要从一个多边形到下一个平滑过渡着色的绘制过程特别有用。类似地,顶点表也可以扩充指向相应边的指针,以便快速提取信息。
      另外一些常常存储在数据表中的几何信息包括每一条边的斜率和多边形边、多边形面片及场景中每一对象的坐标范围。 输入顶点时,我们可以计算边的斜率并通过扫描坐标值来确认单条线段及多边形的最小和最大的x,y,z值。由于几何数据表可以包含场景中大量的复杂对象的顶点和边,检查其一致性和完整性是十分重要的。特别是在交互应用中有可能在描述顶点、边和多边形的过程中,产生一些输入错误使对象的显示变形。

       数据表中包含的信息越多,错误的检查越容易。因此,当使用三个数据表(顶点、边和面片)时错误的检查比较容易,因为这个方案提供了最多的信息。可由图形软件包来完成的测试有:

  1. 一顶点至少有两条边以其作为端点
  2. 每条边至少是一个多边形的组成部分
  3. 每一个多边形都是封闭的
  4. 每个多边形至少有一条共享边
  5. 如果边表包含指向多边形的指针,那么由多边形指针引用的每条边都有一个反向指针指回该多边形。
   计算机图形学(二)输出图元_10_多边形填充区_4_多边形表_第1张图片

你可能感兴趣的:(多边形表)