计算机图形学电子教案.ppt
《计算机图形学电子教案.ppt》由会员分享,可在线阅读,更多相关《计算机图形学电子教案.ppt(28页珍藏版)》请在三一办公上搜索。
1、第6章 真实感图形的生成技术,6.1 消隐技术 6.2 光照技术 6.3 物体表面细节的模拟6.4 阴影的生成6.5 图形反走样技术6.6 用OpenGL生成真实感图形,6.1 消隐技术,真实感图形绘制:借助数学、物理、计算机等学科的知识在计算机二维显示屏上产生三维场景的真实逼真图像、图形。应用:计算机辅助设计、多媒体教育、虚拟现实系统、科学计算可视化、动画制作、电影特技模拟、计算机游戏等。,将三维场景绘制在计算机二维显示屏上必须经过投影变换,投影变换将三维信息变换到二维平面上,这个过程中深度信息被丢失,生成的图形往往具有二义性,早期判别可见面的算法有消除隐藏线、消除隐藏面算法。现在有画家算法
2、、Z缓冲器算法、扫描线缓算法、光线追踪算法等等。,物空间算法是在定义、描述物体的世界坐标系中实现的,以场景中的物体为处理单元:for(场景中的每一个物体)将其与场景中的其它物体比较,确定其表面的可见部分;显示该物体表面的可见部分;像空间算法是在观看物体的屏幕坐标系下实现的,它以窗口内的每个像素为处理单元:for(窗口内的每一个像素)确定与此像素对应的距离视点最近的物体,以该物体表面该处的颜色来显示像素;,判别可见面算法通常按它们在实现时所基于的坐标系分为两类:物空间算法和像空间算法。,理论上讲,物空间算法的计算量少于像空间算法的计算量,但实际上物体到视点距离的排序与遮挡判别比较复杂,算法效率很
3、大程度上取决于排序的效率。而以扫描线的方式实现像空间算法时容易利用连贯性质从而使得像空间算法更具效率。,(1)将线段和多边形投影到投影平面上得到线段 和多边形。(2)计算线段 和多边形 各条边的交点。(3)交点将 分成若干个子线段,特别地当交点不存在时,子线段只有一个,即自身。现在每个子线段上的所有点具有 相同的隐藏性。(4)分别判断各个子线段的隐藏性。,多面体隐藏线消除,隐藏线的产生是因为在给定的观察方向下,某些棱(或棱的一部分)被表面多边形的遮挡成为不可见,因此多面体隐藏线消除可以归结为一个根本问题:在给定的观察方向下,给定一条空间线段 和一个多边形,判断线段是否被多边形遮挡。如果遮挡,求
4、出遮挡部分。步骤如下:,取子线段的中点,判断该点是否在多边形 内。如不在多边形内,子线段与多边形 不存在隐藏关系,子线段是可见的。如在多边形内,从子线段中点向视点引射线,如果射线与多边形 相交,则该子线段被多边形隐藏,否则该子线段可见。,消除自隐藏线、隐藏面 利用多面体表面多边形的法矢判别“朝后的面”,即不可见面。深度测试 在观察坐标系下判断线段与多边形的前后关系。如多边形完全在线段之后,则线段完全可见,无需就线段和多边形的遮挡关系进行进一步判断。包围盒测试 包围盒不相交,线段和多边形也不相交,线段完全可见,无需就线段和多边形的遮挡关系进行进一步判断。,线段和一个多边形进行隐藏性判断时,涉及到
5、的运算包括投影变换,平面上线段和多边形的求交,判断点是否在多边形内,空间中射线和平面求交。如果将多面体的每条棱与每个多边形都按上面的方法消除隐藏线,那么计算量将非常大。采取如下措施可以减少计算量:,Z缓冲器消隐算法,Z缓冲器消隐算法是最简单的消除隐藏面算法之一。在这个算法里,除了有一个帧缓冲区用来存放每个像素的亮度值,还要有一个Z缓冲区用来存放每个像素的深度值。帧缓冲区和Z缓冲区的存储单元数目相同,并且都等于屏幕上像素的个数,见图。,for(各个多边形)扫描转换该多边形;for(多边形所覆盖的每个像素(x,y)计算该像素所对应多边形上的点在观察坐标系下的z坐标值Z(x,y);if(Z(x,y)
6、大于Z缓冲区在(x,y)处的值)Z缓冲区中(x,y)处深度值替换为Z(x,y);帧缓冲区中(x,y)处亮度值替换为多边形在(x,y)处的亮度值;,帧缓冲区置成背景色;Z缓冲区置成某初始值,该值比场景在观察坐标系下的最小z值还小;,Z缓冲区算法的流程为:,6.2 光照技术,图6-5(a)经过光照计算的球(b)不经过光照计算的球,单纯判别物体表面的可见性,远远不能反映物体表面的真实感。,物体表面所呈现的颜色是由表面向视线方向辐射进入人眼中光决定的。建立数学模型模拟物体表面的光照明物理现象,按照数学模型计算物体表面向视线方向辐射进入人眼中的光亮度,即可获得像素所对应的物体上的可见点的颜色,这样绘制出
7、来的图形具有较强的真实感,如图6-5(a)。这些数学模型就称为明暗效应模型或者光照明模型。,当光照射到物体表面时,光可能被吸收、反射和透射,被物体吸收的部分转化为热,只有反射、透射的光能够进入人眼产生视觉效果,它们决定了物体所呈现的颜色。如果物体是不透明的,则透射光不存在,物体的颜色仅由反射光决定。这种情形正是简单光照模型需要考虑的,简单光照模型只考察光源直接照射下物体表面的反射情况。,光学反射模型,通常物体表面的反射光可以认为包含三个分量:对环境光的反射、对特定光源的漫反射和镜面反射。,环境光的反射:环境光(ambient light)来自周围环境(如墙面)散射的光,在空间近似均匀分布,入射
8、至物体表面后向空间各个方向均匀反射出去。物体对环境光的反射分量表示:,其中Ia是入射的环境光亮度,Ka是环境光漫反射系数,它与物体表面性质有关。如果简单光照模型中仅考虑环境光的反射分量,则物体表面的亮度是一个恒定值,没有明暗的自然过渡。,漫反射(diffuse reflection):漫反射分量表示特定光源在物体表面的反射光中那些向空间各个方向均匀反射出去的光。兰伯特(Lambert)余弦定律指出:当点光源照射到一个漫反射体时,其表面反射光亮度和光源入射角(入射光线和表面法矢量的夹角)的余弦成正比,即,其中Il是来自点光源的入射光亮度。Kd是漫反射系数,与物体表面性质有关。是入射光线和表面法矢
9、量的夹角。,兰伯特反射光照模型,只考虑对环境光的反射分量和对特定光源的漫反射分量,则物体表面的反射光亮度为:,适用于粗糙、无光泽的物体,如粉笔、黑板。对于擦亮的金属、光滑的塑料等光亮物体需要计算镜面反射。,镜面反射(specular reflection):表示特定光源在物体表面的反射光中那些遵循反射定律的光。对于纯镜面,反射光和入射光对称地分布在表面法向的两侧。对于一般光滑表面,表面可理解为由许多朝向不同的微小平面构成,入射光经许多微小平面反射后形成的反射光不再是单向的,而是分布于理想镜面反射方向的周围。通常采用余弦函数的幂次来模拟一般光滑表面的镜面反射光的空间分布。,Il是入射光亮度。Ks
10、是物体表面镜面反射系数,为理想镜面反射方向与视线方向的夹角,n为镜面反射光的会聚指数。,Phong 光照模型,考虑环境光、漫反射和镜面反射,则物体表面的反射光亮度为:,实际上光的亮度与传播距离的平方成反比,Il为光源处的光亮度,光线抵达物体表面以及从物体表面反射进入观察者眼睛的过程中存在衰减的问题。漫反射分量和镜面反射分量应该乘以一个衰减因子,以取得远的物体看起来暗些的效果。当场景的投影变换采用透视投影时,Warnock提出线性衰减因子1/d,而Rommey提出衰减因子1/dp可以取得比较真实的效果。此时Phong光照模型可以进一步描述为:,其中d是物体上当前考察点到视点的距离,K是一个任意的
11、常量,。,光照效果图,计算物体上可见点光亮度时通常是将光亮度转换成为光栅图形显示器采用的RGB三基色,这时计算需要在三个基色上分别进行。如果存在多个光源,则将效果线性相加。此时光照模型可以描述为:,建立简单光照模型后,就可以用于消隐算法中计算像素所对应的物体上可见点的亮度。,明暗处理,图6-7(a)多边形表示的物体(b)Gouraud明暗处理,光照计算时需要用到多边形上点的法矢量,如果多边形上点的法矢量总是取多边形的面法矢,则由于不同平面片之间法矢量不连续,最终绘制出来的图像看起来呈多面体状。,解决方法:首先多边形的顶点法矢量不再简单的取为其所在多边形的面法矢,而是取为共该顶点的所有多边形的面
12、法矢的平均值;其次多边形内部点的法矢量也不再简单地取为多边形的面法矢,而是利用多边形顶点的法矢量通过双线性插值计算出。,图6-8 对P点进行双线性插值,Phong明暗处理(插值法矢),如图6-8,P1、P2、P3是多边形顶点,其法矢量视为共该点的所有多边形法矢量的平均值。由P1、P2的法矢量可以线性插值计算出A点的法矢量,由P1、P3的法矢量可以线性插值计算出B点的法矢量,于是P点的法矢量可以由A、B点处的法矢量线性插值计算出,计算出P的法矢量后应用简单光照模型可以计算出P点的光亮度。,Gouraud明暗处理(插值颜色),由于每个像素点都需要法向量插值和光照计算,Phong明暗处理计算量较大,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 图形学 电子 教案
链接地址:https://www.31ppt.com/p-6201798.html