真实感图形显示_第1页
真实感图形显示_第2页
真实感图形显示_第3页
真实感图形显示_第4页
真实感图形显示_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、(一)苏 小 红哈尔滨工业大学计算机科学与技术(jsh)学院真实感图形生成(shn chn)共五十二页 真实感图形绘制(huzh)流程场景造型取景变换背面剔除视域四棱锥裁剪透视变换隐面消除、场景造型光亮度计算扫描转换、场景造型2共五十二页取景(q jng)变换(1/5) 场景坐标系场景的局部坐标系完成物体的造型 场景的世界坐标系(整体坐标系)放入待绘制(huzh)的场景,定义物体之间的相互位置观察坐标系也称摄像机坐标系,或者视点坐标系完成取景变换所需建立的第一个坐标系3共五十二页取景(q jng)变换(2/5)建立观察坐标系的步骤确定观察参考点,即视点位置可以设在任何(rnh)位置通常选在靠近

2、或在物体的表面将视点位置取为视点坐标系的原点确定观察方向,即视线方向一般取深度坐标轴,即ze轴的正向为简便起见,设为总是指向场景坐标系的原点确定观察平面,即视平面位置一般取过视点且垂直于视线方向的平面,即xeye平面4共五十二页取景(q jng)变换(3/5)场景坐标系一般取右手坐标系观察坐标系通常取左手坐标系符合(fh)人们的观察习惯 xwzwywzexeye视点E观察坐标系为左手坐标系场景坐标系为右手坐标系O5共五十二页取景(q jng)变换(4/5)将物体投影到观察平面之前必须将场景坐标系中的点转换到观察坐标系中 这一过程称为取景变换(binhun),也称视向变换包括平移和旋转的一系列几

3、何变换的级联 取景变换矩阵 6共五十二页取景(q jng)变换(5/5)场景坐标系原点平移到视点位置E绕xe轴逆时针旋转90 绕ye轴顺时针旋转角绕xe轴逆时针旋转角调整x轴指向对x轴作对称(duchn)变换xwzwywzexeyeEOCxCyCzxwzwywzexe yeEOCxCyCz90 xwzwywzexeyeEOCxCyCzxwzwywzexeyeEOCxCyCz7共五十二页消隐(xio yn)算法按实现方式不同分为两大类:景物空间(object space) 消隐(xio yn)算法直接在视点坐标系中确定视点不可见的表面区域将它们表达成同原表面一致的数据结构侧重于景中各物体之间的几

4、何关系图像空间(image space)消隐算法 在投影屏幕上,以屏幕像素为采样单位,确定投影于每一像素的可见景物表面区域将其颜色作为该像素的显示光亮度 侧重于向屏幕投影后形成的图像8共五十二页背面剔除(tch)算法背面(bimin)剔除算法 法向向量N 视线向量V法向向量N 法向向量N 90 909共五十二页隐藏(yncng)面的消除- Roberts算法(1/9)Roberts算法(sun f)景物空间消隐算法1963年,Roberts于MIT提出 10共五十二页隐藏(yncng)面的消除- Roberts算法(2/9)基本思想消除被物体自身遮挡的边和面再用每个物体留下的边与其它(qt)物

5、体比较适用范围凸体凹体怎么办?分解成若干凸体的组合11共五十二页隐藏面的消除(xioch)- Roberts算法(3/9)体矩阵平面(pngmin)方程ax+by+cz+d=0 12共五十二页隐藏面的消除(xioch)- Roberts算法(4/9)求平面方程ax+by+cz+d=0的系数 利用(lyng)不共线三点坐标利用平面的法向量平面法向量:n=ai+bj+ckd=-(ax1+by1+cz1) 利用Martin Newell方法 13共五十二页隐藏(yncng)面的消除- Roberts算法(5/9)已知:S=x y z 1,P=a b c d若S在平面上 则SP=0若点S不在平面上则点

6、积的正负号标识(biozh)点在平面的哪一侧约定:若点S在体内一侧则SP0 若点S在体外一侧则SP0如何得到正确的体矩阵?对体矩阵V进行校正 在体内找一试验点S若某平面方程系数P与S的点积符号为负则将该方程系数均乘以-1 15共五十二页隐藏(yncng)面的消除- Roberts算法(7/9)自隐藏面的判别 假设视点:位于z轴正向的无穷远处视线(shxin)方向:z轴负向的无穷远点 E=0 0 -1 0 用E作为试验点判定一平面是自隐藏面的条件 EV Z-buf中对应此像素点(x,y)的z值) 把多边形在(x,y)处的深度值z(x,y)存入Z-buf中的(x,y)处; 把多边形在(x,y)处的

7、亮度值存入f-buf中的(x,y)处; 当所有的多边形都处理完后,帧缓冲器中的内容即为消除(xioch)隐藏面后的图像30共五十二页隐藏面消除(xioch)-深度缓冲器算法(5/8)优点简单在象素级上以近物代替远物,易于消除隐藏面,并准确显示复杂曲面之间的交线。计算量呈线性复杂度场景中景物表面采样点的数目无需对各景物表面片作深度预排序景物表面上的可见点可按任意次序写入深度缓冲器和帧缓冲器易于硬件(yn jin)实现图形工作站上配置由硬件实现的深度缓冲器算法很多微型机上都装有基于深度缓冲器算法的图形加速卡31共五十二页隐藏(yncng)面消除-深度缓冲器算法(6/8)缺点需要很大的存储空间象素数

8、目为500500,深度值采用浮点类型(4字节)除刷新缓存外,还需500*500*4=1M字节的额外存储空间在实现反走样、处理透明和半透明等效果方面存在困难,并由此会产生(chnshng)巨大的处理时间开销由于在帧缓冲器内的同一象素点上可见表面的写入顺序是不确定的,所以可能导致画面上的局部错误。32共五十二页隐藏面消除(xioch)-深度缓冲器算法(7/8)改进一:减少需要(xyo)相对测试的多边形平面数最小最大测试 不重叠,不可能互相遮蔽 测试无确定结果 对每条边进行最小最大测试XminXmax33共五十二页隐藏面消除-深度(shnd)缓冲器算法(8/8)改进二:利用连贯性计算深度水平(shu

9、png)方向竖直方向改进三:降低对存储空间的需求图像空间划分为4、16甚至更多的子正方形或条状区域在最小情况下,只对应一条扫描线的深度缓冲器扫描线相关算法34共五十二页隐藏面的消除-扫描线相关(xinggun)算法(1/3)扫描线相关算法按扫描线顺序处理一帧画面在扫描平面(ZOX平面)上解决消隐问题由视点和扫描线所决定深度(shnd)缓冲器算法的一维版本深度缓冲器所需的存储空间屏幕水平分辨率每个深度值所占的存储位数 35共五十二页隐藏(yncng)面的消除for (每条扫描线) 将扫描线帧缓冲器f_buf置成背景色; 将扫描线深度缓冲器Z_buf置成最小值; for (每个多边形) 求出该多边

10、形与当前扫描线的相交区间(q jin); for (相交区间内每个象素点(x,y) 计算多边形在该处的深度值z; if (多边形在该处的深度值z Z_buf在该处的值) 用多边形在该处的深度值z取代Z_buf在该处的值; 用多边形在该处的亮度值取代f_buf在该处的值; 用f_buf的内容显示当前扫描线;36共五十二页隐藏(yncng)面的消除-扫描线相关算法(3/3)缺点在每一个被多边形覆盖像素处需要计算深度(shnd)值被多个多边形覆盖的像素需要多次计算深度值改进在一条扫描线上,以区间为单位确定多边形的可见性37共五十二页隐藏面的消除(xioch)- Warnock算法(1/4)Warno

11、ck算法图像(t xin)空间消隐算法区域的连贯性 也称区域细分area-subdivision实质分而治之 38共五十二页隐藏(yncng)面的消除- Warnock算法(2/4)基本思想观察整个窗口区域判别窗口是否单纯(dnchn)窗口内无任何可见物体窗口已被一个可见面片完全充满将非单纯的窗口四等分为四个子窗口对每个子窗口再进一步判别是否是单纯的直到窗口单纯或窗口边长已缩至一个象素点为止 即使10241024分辨率视图被细分10次后,也能使每个子窗口覆盖一个像素 39共五十二页隐藏面的消除(xioch)- Warnock算法(3/4)关键步骤分析观察窗口与所有投影后多边形面片之间的关系分离

12、内含相交包围判别窗口(chungku)是否单纯40共五十二页隐藏(yncng)面的消除- Warnock算法(4/4)基本步骤对每个窗口判断与多边形分离(fnl)仅包含一个多边形与一个多边形相交被一个多边形所包围且窗口内无其它多边形至少被一个多边形所包围,且此多边形距离视点最近否则继续细分窗口,并重复以上测试41共五十二页 光线(gungxin)投射算法(1/4)Ray CastingAppel提出建立在几何光学(gungxu)基础之上对于包含曲面、特别是球面的场景效率高42共五十二页 光线(gungxin)投射算法(2/4)基本思想观察者之所以能看见景物光源发出的光照射到物体上的结果其中一部

13、分光到达人的眼睛引起视觉到达观察者眼中的光由物体表面反射通过表面折射或透射若从光源出发跟踪光线则只有极少量的光能到达观察者的眼睛效率低从视点或像素出发,仅对穿过像素的光线反向跟踪当光线路径到达一个可见的不透明物体的表面时停止(tngzh)追踪43共五十二页将景物通过透视投影变换到图像空间反向跟踪一条穿过像素点的光线决定它与场景中的哪一景物表面相交交点按深度排序需求出该光线与景物表面的所有可能(knng)的交点具有最大z值的交点对应的面就是屏幕上该像素对应的可见面离视点最近该像素处的显示值由相应物体的属性决定对屏幕上所有像素都进行如上处理后,算法结束 视点光线投影面上的像素位置物体假设视点位于z

14、轴正向投影(tuyng)平面(屏幕)垂直于z轴反向跟踪一条穿过像素点的光线光线投射算法(3/4)44共五十二页光线(gungxin)投射算法(4/4)光线(gungxin)投射算法 for(y=0;y=ymax;y+) for(x=0;x=xmax;x+) 形成通过像素(x,y)的投影线; for(场景中的每一个多边形)将投影线与多边形求交; if(有交点) 以最近交点所属多边形的颜色显示像素(x,y); else 以背景颜色显示像素(x,y); 45共五十二页阴影(ynyng)处理 (1/6)判断视点、光源以及物体之间的位置关系(gun x) 从视点可见,从光源也可见从视点可见,从光源不可见

15、 相对于部分光源可见,相对于另一部分光源不可见46共五十二页阴影(ynyng)处理(2/6)当观察方向与光源方向重合时观察者看不到任何阴影可以(ky)不进行阴影测试当观察方向与光源方向不一致或光源多且光源体制比较复杂时必须进行阴影处理 47共五十二页阴影(ynyng)处理(3/6)阴影由两部分组成本影任何光线都照不到的区域呈现为全黑的轮廓分明(fnmng)的区域 半影 可接收到分布光源照射的部分光线的区域 通常位于本影周围,呈现为半明半暗的区域 本半区影区影区影无光源面光源照射形成的本影与半影48共五十二页阴影(ynyng)处理(4/6)点光源只能产生(chnshng)本影位于有限距离内的分布

16、光源可同时产生本影和半影需要的阴影计算量大49共五十二页阴影(ynyng)处理(5/6)计算阴影的过程相当于两次消隐过程对每个光源进行消隐对视点(sh din)的位置进行消隐好处改变视点位置,第一次消隐过程不必重新计算50共五十二页阴影(ynyng)处理(6/6)产生的本影包括自身(zshn)阴影面假设视点在点光源位置,用背面剔除的方法求出投射阴影从光源向物体的所有可见面投射光线将这些面投影到场景中得到投影面将这些投影面与场景中其它平面求交线,可得阴影多边形 自身阴影投射阴影51共五十二页内容摘要(一)。确定观察方向,即视线方向。这一过程称为(chn wi)取景变换,也称视向变换。取景变换(5/5)。平面方程ax+by+cz+d=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论