计算机图形学(二)输出图元_10_多边形填充区_4_多边形表
来源:互联网 发布:淘宝婚庆四件套 编辑:程序博客网 时间:2024/05/19 15:44
多边形表
场景中的对象一般用一组多边形面片来描述。实际上,图形软件包经常提供以多边形网格形式描述表面形状的函数。对每一个对象的描述包括指定多边形面片的几何信息和其他表面参数(如颜色、透明性及光反射特性)。在输入每个多边形的信息时,数据放进一些表格中等待后续处理、显示和场景的对象管理。这些多边形数据表分成两组来组织:几何数据表和属性数据表。几何数据表包含顶点坐标和标识多边形面片空间方向的参数。对象的属性信息包含指定对象的透明程度及其表面的反射性能和纹理特征。场景中对象的几何数据简单地组织为三张表:顶点表、边表和面片表(简称为面表)。对象的每一顶点的坐标存储在顶点表中。边表包含指向顶点表的指针以确定每一多边形的边的端点。而面片表包含指向边表的指针以确定每个多边形的边。图3.50给出了对象表面两个相邻多边形面片的相关表。另外,对象及其组成多边形均可赋以对象和面片标识,这样可以比较容易地引用它们。
如图3.50中将几何数据放在三个表格中的做法为引用各个组成部分(每个对象的顶点、边、和面片)提供了方便。使用标识多边形边界的边表数据还可以高效地显示对象。另一种安排是只用两张表:顶点表和面片表。但这种方案不够方便,有些边会在线框图中画两次。另一种可能是仅使用一张面片表,这会引起坐标信息的重复,因为每一面片中都使用了显式的坐标值。边和面的关系也必须从面片表的顶点清单中进行重建。
可以在图3.50的数据表中加人附加信息来提高信息的提取速度。例如,扩充边表使其包含指向面片表的指针,从而使属于两个多边形的公共边能被快速标识(参见图3.51 )。这对需要从一个多边形到下一个平滑过渡着色的绘制过程特别有用。类似地,顶点表也可以扩充指向相应边的指针,以便快速提取信息。
另外一些常常存储在数据表中的几何信息包括每一条边的斜率和多边形边、多边形面片及场景中每一对象的坐标范围。输入顶点时,我们可以计算边的斜率并通过扫描坐标值来确认单条线段及多边形的最小和最大的x,y,z值。由于几何数据表可以包含场景中大量的复杂对象的顶点和边,检查其一致性和完整性是十分重要的。特别是在交互应用中有可能在描述顶点、边和多边形的过程中,产生一些输入错误使对象的显示变形。
数据表中包含的信息越多,错误的检查越容易。因此,当使用三个数据表(顶点、边和面片)时错误的检查比较容易,因为这个方案提供了最多的信息。可由图形软件包来完成的测试有:
- 每一顶点至少有两条边以其作为端点
- 每条边至少是一个多边形的组成部分
- 每一个多边形都是封闭的
- 每个多边形至少有一条共享边
- 如果边表包含指向多边形的指针,那么由多边形指针引用的每条边都有一个反向指针指回该多边形。
0 0
- 计算机图形学(二)输出图元_10_多边形填充区_4_多边形表
- 计算机图形学(二)输出图元_10_多边形填充区_1_多边形分类和识别
- 计算机图形学(二)输出图元_10_多边形填充区_2_分割凹多边形
- 计算机图形学(二)输出图元_10_多边形填充区_3_内-外测试
- 计算机图形学(二)输出图元_10_多边形填充区_5_平面方程
- 计算机图形学(二)输出图元_10_多边形填充区_6_前向面与后向面
- 计算机图形学(二)输出图元_11_OpenGL多边形填充区函数(上)
- 计算机图形学(二)输出图元_11_OpenGL多边形填充区函数(下)
- 计算机图形学(二)输出图元_4_并行画线算法
- 计算机图形学(二)输出图元_6_OpenGL曲线函数_4_中点椭圆算法(上)
- 计算机图形学(二)输出图元_6_OpenGL曲线函数_4_中点椭圆算法(下)
- 计算机图形学(二)输出图元_9_填充区图元
- 计算机图形学-多边形填充法
- 计算机图形学(三)_图元的属性_10_ 通用扫描填充算法
- 计算机图形学(二)输出图元
- 图形学(6)多边形的区域填充
- 计算机图形学--多边形扫瞄转换与区域填充实现
- 计算机图形学(二)输出图元_12_OpenGL顶点数组
- uva 784 DFS 染色问题。有坑点。一个getchar()
- leetcode.207. Course Schedule
- 线程的3种创建方式
- 导航栏标题文字不居中
- 例4.10 POJ3525/LA3890离海最远的点 半平面交 + 二分法 + double小数点后有效位数处理方式/printf与g++、c++的问题
- 计算机图形学(二)输出图元_10_多边形填充区_4_多边形表
- 双栈(Dual Stack)
- JAVA第三方库
- Android 学习笔记之七 Application类
- Java线程池核心类ThreadPoolExecutor
- Android内核开发:系统启动速度优化
- qt中的TabWidget应用程序框架
- 长连接的几种实现方式
- 探索推荐引擎内部的秘密,第 3 部分: 深入推荐引擎相关算法 - 聚类