- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
填充图元生成.ppt
填充图元生成 通用图形软件包中有一种输出图元: 实心或图案填充的多边形区域:填充图元。 可能有其它种类的填充区域图元,但多边形有线性边界,更容易处理。 二维多边形区域填充是三维面着色的基础。 光栅系统中有两种区域填充(填充图元生成)方法: 扫描转换填充(多边形扫描填充): 通过确定横越区域的扫描线间隔来填充。 用来填充多边形、圆、椭圆和其它简单曲线围成的区域;(给定多边形边界的区域) 区域填充: 从给定的位置,涂描/着色直到满足指定的边界条件为止。 用于具有复杂形状边界及交互式涂描系统。 (给定点阵表示的区域) 多边形扫描填充 多边形有两种表示方法: 顶点表示:用多边形的顶点序列来刻画多边形。 这种表示直观,几何意义强,占空间少,易于进行几何变换,被广泛应用于各种几何造型系统中。 点阵表示:用多边形内部的像素的集合来刻画多边形。 这种表示虽然失去了很多重要几何信息(如边界、顶点等),但它却是光栅显示系统显示时所需的表示形式。 多边形扫描转换: 需要将多边形的顶点表示转换成点阵表示。 大多数图形学应用采用顶点序列表示多边形; 顶点表示又不能直接用于显示。 从多边形的顶点信息出发,求出位于其内部的各个像素,并将其颜色值写入帧缓冲器中相应的单元。 扫描转换基本问题 多边形扫描转换基本处理: 对每条横越多边形的扫描线,扫描转换算法确定扫描线与多边形边的交点位置。 一般情况下,扫描线横越多边形的偶数条边,有偶数个交点。 将这些点自左至右分对存贮。 给每对交点间区段内对应的象素点的帧缓冲器位置设置指定填充颜色。 扫描线与顶点相交处理 直观地:扫描线通过一个顶点与多边形的两条边相交,这根扫描线的交点表上要增加两个点。 实际上,需要区别处理两种情况(下图中): 扫描线y1穿过一个顶点(共享顶点的两条边位于扫描线的同侧),它与偶数条边相交,沿扫描线y1的相交点正确地分辩出了内部像素分布; 扫描线y穿过一个顶点(顶点的两条相交边位于扫描线的两侧),与五条多边形边相交。因此,必须要作一些额外的处理才能确定正确的内部点。 顶点与扫描线间拓扑关系 通过标识相交边与扫描线的相对位置关系而鉴别扫描线间的拓扑差异 — 顶点两条边位于扫描线的同侧/异侧。 通过以顺时针或逆时针方向搜索多边形边界,并观察从一条边移到另一条边时顶点y坐标的相对变化: 假如两条顺序连接边的端点y值单调增加或减少,那么,对于任何穿过该点的扫描线就必须将该中间顶点计为一个交点; 否则,共享顶点表示多边形边界上的一个局部极值,这两条边与穿过该顶点的扫描线的交点可以添加到相关表中去。 特殊顶点分离处理 将多边形某些边缩短,以分离应计为1个交点的顶点。 以顺时针或逆时针方向处理整个多边形边界上的非水平边。在处理每条边时进行下列检测: 该边与下一条非水平边是否有单调递增或单调递减的端点y值? 假如有,可将较低一条边缩短,以保证对通过连接两条边公共顶点的扫描线仅有一个交点生成: 当两条边的端点y值增加时,当前边较高端点y值减去1; 当端点y值单调递减时,紧随边较高端点的y坐标值减就去1 。 连贯性和增量计算原理 在扫描转换及其它图形算法中常充分利用待显示场景的各种连贯特性。 连贯性可简单地看作场景中的一部分的特性以某种方式与场景中的其它部分相关,这种关系可用来减少处理。 利用沿一条边从一条扫描线到下一条扫描时斜率为常数这一连贯性,确定边交点时可采用增量坐标计算。 连贯性和增量计算方法 沿一条边x方向增量值1/m可用斜率m为两整数比的整数运算来完成: m=△y/△x。 沿一条边对连续的扫描线的x交点的增量计算可表示为: xk+1=xk+(△x/△y)。 用舍入法来取整到最后的交点像素x位置完成交点x坐标的整数求值: 先将计数器初始化为零, 而后每当移向一条新的扫描线计数器就增加△x值, 当计数器的值大于等于△y时,当前交点x值增加1并将计数器减去△y值。 修改边相交算法:使增量与△y/2比较: 在每一步中计数器增加2△x值,并将增量与△y比较, 当增量大于或等于△y值时,x值增加1,而计数器值减去2△y。 这个过程相当于保持交点x值的整数和小数部分,并增加小数部分直至达到下一个整数值。 连贯性和增量计算示例 例:假设一条边的斜率为m=7/3, 在起始扫描线处,将计数器设置为零,并增加3, 当沿这条边移到其它三条扫描线时,计数器顺序地设置值3、6和9。 在初始扫描线以上的第三条扫描线上,计数器值大于7,因而,交点x坐标增加1,并重新将计数器设置为值9-7=2, 继续以这种方法决定扫描线交点,直止到达边界的高端点。 例:假设一条边的斜率为m=7/3, 对于这条边上初始扫描线以上的n条扫描线的计数器k的值变为:6、12;-2(x=x+1,k=12-2×7=-2)、4、
文档评论(0)