- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
解答消隐复习中函数中设置不同视口的方法反走样用离散量表示连续量引起的失真现象称之为走样光栅图形的走样现象阶梯状边界图形细节失真狭小图形遗失动画序列中时隐时现产生闪烁走样现象举例不光滑阶梯状的图形边界走样现象举例图形细节失真走样现象举例狭小图形的遗失与动态图形的闪烁反走样概念及方法用于减少或消除走样现象的技术称为反走样提高分辨率简单区域取样加权区域取样提高分辨率把显示器分辨率提高一倍直线经过两倍的象素锯齿也增加一倍但同时每个阶梯的宽度也减小了一倍所以显示出的直线段看起来就平直光滑了一些提高分辨率方
解答 消隐复习P32 lianxi1.12.4.c 中display()函数中设置不同视口的方法 2.6 反走样 用离散量表示连续量引起的失真现象称之为走样(aliasing) 。 光栅图形的走样现象 阶梯状边界; 图形细节失真; 狭小图形遗失:动画序列中时隐时现,产生闪烁。 走样现象举例 不光滑(阶梯状)的图形边界 走样现象举例 图形细节失真 走样现象举例 狭小图形的遗失与动态图形的闪烁 反走样概念及方法 用于减少或消除走样现象的技术称为反走样(antialiasing) 提高分辨率 简单区域取样 加权区域取样 提高分辨率 把显示器分辨率提高一倍, 直线经过两倍的象素,锯齿也增加一倍, 但同时每个阶梯的宽度也减小了一倍, 所以显示出的直线段看起来就平直光滑了一些 提高分辨率 方法简单,但代价非常大。 显示器的水平、竖直分辩率各提高一倍,帧缓存容量则增加到原来的4倍,且扫描转换同样大小的图元要花4倍时间。 只能减轻而不能消除锯齿问题 另一种方法(软件方法):用较高的分辨率的显示模式下计算,(对各自像属下计算,再求(非)加权平均的颜色值),在较低的分辨率模式下显示。只能减轻而不能消除锯齿问题。 简单区域采样 解决方法:改变直线段模型 方法步骤: 将直线段看作具有一定宽度的狭长矩形; 当直线段与某象素有交时,求出两者相交区域的面积; 根据相交区域的面积,确定该象素的亮度值 简单区域采样的离散计算方法 求相交区域的近似面积的离散计算方法 将屏幕象素分割成n个更小的子象素; 计算中心点落在直线段内的子象素的个数k; k/n为线段与象素相交区域面积的近似值 简单区域取样 非加权区域采样方法有两个缺点: 象素的亮度与相交区域的面积成正比,而与相交区域落在象素内的位置无关,这仍然会导致锯齿效应。 直线条上沿理想直线方向的相邻两个象素有时会有较大的灰度差,特别是当直线是一条接近水平或接近垂直的直线时,这种现象就会比较突出 。 加权区域取样 采用圆锥形滤波器,圆锥的底圆中心在当前像素,底圆半径为一个像素,锥高为1。当直线条经过该像素时,该像素的灰度值是在二者相交区域上对滤波器(函数w)进行积分的积分值。 加权区域取样 可采用离散计算方法 如:我们将屏幕划分为n=3×3个子象素,加权表可以取作: 权函数w(x,y)为微面元dA与象素中心距离d的函数 然后求出所有中心落于直线段内的子象素。 最后计算所有这些子象素对原象素亮度贡献之和 乘以象素的最大灰度值作为该象素的显示灰度值 加权区域取样 这种区域采样法的反走样效果较好 接近理想直线的像素将被分配更多的灰度值。 相邻的两个像素的滤波器相交,有利于缩小直线条上相邻像素的灰度差。 第2章 建模原理 图形基元 单点和多点(点的绘制非常快) 线段(光栅化…) 线段序列(只需要N+1个顶点就可以指定N个线段) 三角形(几乎所有图形工具都可以处理三角形定义的物体) 三角形序列(注意三角形的方向,法向…) 四边形(顶点序列逆时针方向) 四边形序列 通用多边形(前向面:顶点序列逆时针方向) 多面体 建模的数据结构 tutor/data/a1.obj 模型变换 用户可以在任何空间定义物体,再放置到世界坐标系。光源和视点也一样。 模型变换的好处是组合(复合)变换。 三个基本的模型变换 旋转 rotate(angle, 0, 1, 0) 平移 translate(tx, ty, tz) 缩放 scale(sx, sy, sz) 模型变换(2) 复合变换的顺序 标准的建模方法将物体定义在原点,再应用缩放操作; 缩放之后,立即应用旋转; 缩放或旋转之后应用平移。 translate( tx, ty, tz )rotate( angle, x-axis )scale( 1., 2., 1. )drawSphere() 复合变换的顺序 变换的顺序非常重要(变换不可交换性) translate(rotate(scale(geometry))) 代码中的顺序如下,实际执行的顺序? 模型变换(3) 用矩阵实现变换 齐次坐标 使用变换栈 figure2.13.c 定义变换,以右乘方式加入变换 保存变换的状态(将副本压入堆栈),然后对栈顶元素应用变换;如果要回到开始的变换,弹出堆栈的顶部即可。 * * 例子:PaintBrush 目的:简化计算 n = 16, k = 3 近似面积 = 3/16 n=9,k=3近似面积为1/3 三维变换流程图 局部坐标 模型变换 世界坐标 视图变换 视点坐标 投影变换 投影坐标 设备变换 屏幕坐标 三维变换的流程图 曲线和直线方程 形体(object) 外壳(shell) 面(face) 环(loop) 边(edg
文档评论(0)