计算机图形学第八章真实感图形生成技术课件.pptx
《计算机图形学第八章真实感图形生成技术课件.pptx》由会员分享,可在线阅读,更多相关《计算机图形学第八章真实感图形生成技术课件.pptx(58页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机图形学第八章真实感图形生成技术2023/4/101第1页,此课件共58页哦2023/4/102 8.1 8.1 隐藏线面的消除隐藏线面的消除 在用计算机生成三维图形时,形体的所有部分都将被表示,不管是可见的还是不可见的,这样的图形显示出来形状是不清楚的,甚至是不确定的。图1(a)所示是一个通过棱边表示的立方体的图形,如果不消隐不易辨别。通过适当删除不可见的隐藏部分,可以得到表示明确的图形。图1(b)是观察点在立方体的前上方的消隐图,图1(c)是观察点位于立方体的前下方消隐图,消隐图表示了明确的立体感形体。图1第2页,此课件共58页哦2023/4/103 观察点确定后,找出并消除图形中不可
2、见的部分,称为消隐。经过消隐得到的图形称为消隐图。消除隐藏线和隐藏面是计算机图形学中一个较为困难的问题,消隐算法是决定相对于空间给定位置的观察者,哪些棱边、表面或物体是可见的,哪些是不可见的。消隐不仅与消隐对象有关,还与观察点、观察方向、投影面等的设置方位有关。改变这些设置,物体上某些可见的部分将会变成不可见,某些不可见的部分又会变成可见。虽然各种消隐算法的基本思想有所不同,但它们大多采用了排序和相关性以提高效率。排序的主要目的是区分体、面、边、点与观察点间几何距离的远近。因为一个物体离观察点愈远,它愈有可能被另一距观察点较近的物体部分地或全部遮挡。消隐算法的效率在很大程度上取决于排序的效率。
3、通常利用画面在局部区域内的相关性来提高排序过程的效率。第3页,此课件共58页哦2023/4/104 消隐算法一般可以分为两类。如果算法是在物体所定义的空间实现,那么这种算法称为对象空间算法;如果算法是在物体投影后的屏幕坐标空间实现,那么这种算法就称为图象空间算法。一般说来,对象空间算法有比较高的精度,而图象空间算法在精度上受屏幕分辨率的限制,但可以方便地利用图象空间中各种相关性获得较高的计算效率。8.1.1 8.1.1 凸多面体的消隐算法凸多面体的消隐算法 在消隐问题中,凸多面体是最简单情形。凸多面体是由多个凸多边形平面包围而成的立体,连接形体上不属于同一表面的任意两点的线段完全位于形体的内部
4、。对于单个凸多面体,背向观察点的面是不可见面,如图2所示。因此,只要判断出这些“朝后面”,即可达到隐藏面消除的目的。第4页,此课件共58页哦2023/4/105图2 构成多面体的每个平面都有其法线。通常规定法线的方向是由多面体的内部指向多面体的外部,称为“外法线”。第5页,此课件共58页哦2023/4/106假定在右手坐标系中,观察点位于原点,投影面平行于XY坐标平面,以Z轴作为深度坐标轴,视线平行于Z轴,如图3所示,则平面外法线同Z轴方向的夹角,就是外法线同视线的夹角。很显然,对于单个凸多面体,当外法线同视线的夹角小于90时,其平面背向观察点为不可见面。图3第6页,此课件共58页哦2023/
5、4/107设平面外法线同Z轴方向的夹角为,则cos为单位平面外法线矢量在Z轴上的分量。角同可见性的关系为:(1)当 090 时,cos0,此面背向观察者为不可见面。(2)当 90 时,cos0,此面平行于Z轴,可以认为是不可见面。(3)当 90180 时,cos0,此面朝向观察者的,为可见面。设平面方程为 Ax+By+Cz+D=0法向矢量为 N NAi iBj jCk k则cosC/|N N|。作为判断依据,只需要知道cos的正负号就够了。因为|N N|恒大于 0,所以cos的符号由C决定,因此,当C0 时,为可见面。当C0时,为不可见面。第7页,此课件共58页哦2023/4/108 由于三点
6、可以构成一个平面,和三点可以构成两个矢量,由两矢量的叉积可以求出平面的法线。对于凸多面体,任取构成平面多边形的三个相邻点P0(x0,y0,z0),P1(x1,y1,z1),P2(x2,y2,z2),按右手规则确定点的顺序,此时有:为了决定一个凸多面体的不可见面,对于每一个面按上述公式进行计算,当C0时为不可见面。对于单个凸多面体,该方法可判别出所有隐藏面,因为每个面或是完全可见,或是完全不可见。对于其它形体,如凹多面体或由多个物体组成的复杂形体,则还需进行更多的测试来检查是否存在被其它面或其它物体完全或部分遮挡的表面。通常,凸多面体消隐处理可消除一半左右的隐藏面。第8页,此课件共58页哦202
7、3/4/109凸多面体消隐演示示例:第9页,此课件共58页哦2023/4/10108.1.2 8.1.2 画家算法画家算法 画家创作一幅画的过程是先画背景,然后画中间景物,最后才画近景。这样,每一层总是在前一层的景物上覆盖,从而解决了隐藏面或可见性问题。采用同样的技术,首先将形体的所有面根据它们与观察点的距离排序,然后按距离递减顺序逐个将各面显示出来,由于当重迭时,后显示的画面会覆盖先显示的画面,这样就可以实现消除隐藏面的目的。这种隐藏面消除算法通常称为画家算法。画家算法也称表优先级算法或深度优先排序算法。这种算法排序操作同时在对象空间和图象空间完成,而在图象空间产生消隐图。实现时首先以深度优
8、先级进行排序,距观察点远的面优先级低,近的面优先级高,以此建立一张深度优先级表。然后按优先级表顺序将各面送入帧缓冲器进行显示。第10页,此课件共58页哦2023/4/1011 深度优先级表的建立是动态进行的。假定观察方向同Z轴同向,则最初可按各面的最小z值排序。但这一初步排序可能出现差错,如图4所示的情况。图中尽管面S1的最小z值小于面S2的最小z值,但正确的顺序是面S2位于面S1前。因此在实际将z值最大的面S写入帧缓冲器之前,需与其它面比较以确定是否在Z方向存在重叠。若无重叠,则对S进行写入,若存在重叠,则需作一些比较以决定是否有必要重新排序。如果存在两面相交和循环遮挡,如图5中所示的情况,
9、这时简单的排序是无法解决问题的,必须求交分割后再进行排序。图4图5第11页,此课件共58页哦2023/4/1012 下面给出这种算法过程的简单描述 (1)计算各面最小z值zmin,并以此值的优先级进行排序,建立初步的深度优先表;(2)表空结束。否则取表中深度最大的面Sn,检查表中其它各面Sk(k=0,1,.,n-1)与Sn是否在Z方向存在重叠的关系。存在,记重叠面为Sj转(3)。否则,将Sn写入帧缓冲器,n=n-1转(2);(3)检查Sn是否遮挡Sj,不遮挡则将Sn写入帧缓存器,n=n-1转(2)。否则,交换Sn和Sj在表中位置,转(2)。如果Sn和Sj已经交换过位置,则两面交叉遮挡,转(4)
10、;(4)用Sn和Sj的交线分割Sn为两部分,转(1)。画家算法的优点是简单,容易实现,缺点是算法中的深度排序计算量大。第12页,此课件共58页哦2023/4/10138.1.3 8.1.3 深度深度缓冲器算法缓冲器算法 深度缓冲器算法是一种图象空间消隐算法。由于一般采用Z轴方向为观察方向,沿Z轴计算深度,所以此方法也称为z缓冲器算法。它需要两个缓冲器,一个是深度缓冲器,用于保存表面上各象素点(x,y)所对应的深度值z,一个是刷新缓冲器,用于保存各点的属性值。两个缓冲器的大小与屏幕上象素点的个数相同,也与显示器帧缓冲器的单元个数相同。深度缓冲器算法的原理是,对一坐标(x,y),查找最小的z(x,
11、y)值。对每一象素计算z(x,y)值并与已经存在z缓冲器中该象素的原深度值z比较。如果z(x,y)小于原z值则替换原值,同时用当前点的属性更新原属性。算法的最大优点在于简单,它可轻而易举地处理任意复杂的画面。因为图象空间的大小是固定的,计算量最多随画面复杂度线性增长。第13页,此课件共58页哦2023/4/1014 深度缓冲器算法可描述如下:(1)刷新缓冲器置成背景光强或颜色;(2)深度缓冲器置成最大z值;(3)以任意顺序扫描各多边形:对于多边形中的每一象素(x,y,z),将z(x,y)与深度缓冲器中存储值Zbuffer(x,y)进行比较,若z(x,y)Zbuffer(x,y),则将此点属性写
12、入刷新缓冲器,且用z(x,y)重置Zbuffer(x,y);(4)所有多边形都处理完后,显示消隐图。深度缓冲器算法便于硬件实现。实际上,在当今生产的大多数高档图形工作站,除了帧缓存外,还带有用于消隐的深度缓存,从而克服了深度缓存算法占用大量存储单元的缺点。第14页,此课件共58页哦2023/4/10158.1.4 8.1.4 区域细分算法区域细分算法 区域细分算法也称为Warnock算法。这种算法在图像空间中实现。该算法充分利用图形的区域连贯性,在连续的区域上确定可见线面及其属性。它既可以用于消除隐藏线,也可以用于消除隐面,适用于解决多边形所表示的画面消隐问题。区域细分算法的基本思想是,把形体
13、投影到全屏幕窗口上,然后递归地分割窗口,直到窗口内仅包含单个可见面或不包含任何面。算法先检测初始窗口是否包含图形,如果不包含,则按背景色显示,若窗口内只有单个面,则把该面显示出来。否则,当窗口内含有两个以上的面时,则把窗口等分成四个小窗口,对每个小窗口再作上述同样的处理。这样反复地进行下去,如果窗口细分到象素大小,而窗口内仍有两个以上的面,这时不必再继续分割,只要取窗口内最近的可见面的颜色或所有可见面的平均色作为该象素的值。第15页,此课件共58页哦2023/4/1016 细分过程如图6所示,算法每次将区域分割为四等分,类似于组织一棵四叉树。这样,即使是一个1024l024分辨率的窗口被细分1
14、0次以后,也仅能使每个单元覆盖一个象素。图6第16页,此课件共58页哦2023/4/1017 窗口与多边形面的相互关系可分为四种:内含、相交、包围和分离。内含指的是多边形全部落在窗口内;相交指的是多边形一部分在窗口内,另一部分在窗口外;包围是指窗口包含在多边形内;分离指的是多边形完全在窗口外。四种关系如图7所示。图7第17页,此课件共58页哦2023/4/1018 我们可根据这四种关系来确定一个窗口是否需要继续细分。若以下条件之一为真,则无须再对窗口进行细分:所有多边形均为窗口的分离多边形,此时窗口内为空;在窗口内只有一个内含多边形;窗口只与一个多边形相交;窗口只被一个多边形所包围或包围多边形
15、遮挡了其它所有多边形。通过检查所有多边形的包围盒与窗口边界的关系可以实现条件的检测。利用XY平面上的包围盒可以判别内含多边形。窗口和多边形相交关系可以借助于裁剪算法来解决。利用平面方程计算可以测定所有包围多边形、重叠多边形和内含多边形在窗口边界四顶点处的深度值,若某多边形的深度值小于其它所有多边形,则条件结果为真。第18页,此课件共58页哦2023/4/1019区域细分算法可以借助于堆栈结构实现,算法描述如下:(1)将初始窗口入栈;(2)栈空结束。否则,取出栈顶窗口转步骤(3);(3)检测确定当前窗口与多边形关系,若 A条件为真,以背景颜色显示当前窗口,转步骤(2);B条件为真,多边形内区域,
16、以该多边形颜色显示,其它区域以背景颜色显示,转步骤(2);C条件为真,相交多边形位于窗口内的区域以该多边形颜色显示,其它区域以背景颜色显示,转步骤(2);D条件为真,以包围多边形颜色显示当前窗口,转步骤(2);E条件均不满足,转步骤(4)。(4)对当前窗口进行再细分,细分后的子窗口存入堆栈,转(2)。第19页,此课件共58页哦2023/4/1020 8.2 8.2 简单光照模型简单光照模型 当光照射到一个不透明的物体表面时,部分被反射,部分被吸收并转化为热。对一个透明的表面,部分入射光被反射,而另一部分被透射。其中,反射或透射部分的光使物体可见。如果入射光全部被吸收,物体将不可见,该物体称为黑
17、体。一物体表面呈现的颜色是由物体表面向视线方向辐射的光能中各种波长的分布所决定的。光能中被吸收、反射或透射的数量决定于光的波长和物体的表面特性。由于光照射到物体表面产生的现象是很复杂的,它与光源的性质、形状、数量、位置有关,还与物体的几何形状、光学性质、表面纹理等许多因素有关,甚至与人眼对光的生理与心理视觉因素有关,我们不可能把这一切都准确计算出来。我们将讨论计算光强度的一些较为简单的方法,这些经验模型为计算物体表面某点处的光强度提供了简单有效的途径,并能在许多应用场合获得较好的效果。第20页,此课件共58页哦2023/4/10218.2.1 8.2.1 环境光环境光 在实际场景中,一个物体即
18、使不直接暴露于光源之下,还会接收到从周围物体散射出来的光,这种光是由于周围各物体被照明后多次反射所产生的。例如从墙壁、地板及天花板等反射回来的光。这种光是一种分布光源,称为环境光。环境光的特点是照射在物体上的光来自周围各个方向,又均匀地向各个方向反射。由于处理分布光源所需计算量甚大,通常将这种光所产生的效应简化为在各个方向都有均匀的光强度。这样,每个物体表面都得到同样大小的光照,且反射光相对于该物体表面亦为常数,即反射光与观察方向和物体表面的朝向无关。但不同物体的反射光强度取决于物体的表面特性,如果用Ia表示环境光的大小,则表面上一点对环境光的反射强度Ie可表示为 IekaIa 0ka1式中k
19、a为由物体表面材料属性决定的环境光反射系数。第21页,此课件共58页哦2023/4/10228.2.2 8.2.2 漫反射光漫反射光 我们可以用光源来表示所有发出辐射能量的物体,如灯泡或太阳。点光源是光源的最简单模型。这种光源模型是对场景中比物体小得多的光源的合适的逼近。离场景足够远的光源,如太阳,也可用点光源模型来较好的模拟。我们在下面反射光的讨论中假定使用点光源模型。从物体表面反射出来的光决定于光源中光的成分、光线的方向、光源的几何性质以及物体表面的朝向和表面的材料属性等。物体表面的反射光又可分为漫反射光和镜面反射光。漫反射光可以认为是光穿过物体表面并被吸收,然后重新发射出来的光,漫反射光
20、均匀地散布在各个方向,因此同观察者的位置无关。第22页,此课件共58页哦2023/4/1023 朗伯(lambert)余弦定律总结了点光源所发出的光照射在一个完全漫反射体上时光的反射法则。根据朗伯定律,一个完全漫射体上反射出来的光强度同入射光与物体表面法线之间夹角的余弦成正比。即 IdkdIlcos 01式中Id为漫反射光强度;Il为从一点光源所发出的入射光的光强度;kd为决定于物体表面材料属性的漫反射系数,0kd1;为入射光与表面法向量之间的夹角,如下图所示。第23页,此课件共58页哦2023/4/1024 反射光的光强度是光波长的函数,然而在简单的光照模型中,通常假定光波长为常数。若N为物
21、体表面的单位法向量,L为从表面上一点指向点光源的单位矢量,则cos=NL,则(8-3)可以写成:IdkdIl(NL)第24页,此课件共58页哦2023/4/10258.2.3 8.2.3 镜面反射光镜面反射光 除了漫反射,光源照射物体表面还会产生高光或强光,这种现象称为镜面反射。这种高光效果在光滑的物体表面上很明显,如磨光的金属表面,而对于阴暗物体表面则效果较差。镜面反射光是具有一定方向的反射光。镜面反射角等于入射角,它们位于表面的单位法向量N的两侧,如图9所示。用R表示镜面反射方向的单位矢量,L表示指向点光源的单位矢量,V为指向视点的单位矢量,是V 与R之间的夹角。对于一个理想的镜面反射,入
22、射光仅在镜面反射方向有反射现象,即仅当V与R重合时才能观察到反射光,而在其它方向都看不到反射光。对于这种光滑的反射面,镜面的反射光强比漫反射的光强和环境光的光强高出很多倍。第25页,此课件共58页哦2023/4/1026图9第26页,此课件共58页哦2023/4/1027对于一般光滑表面,由于表面具有一定粗糙度,其表面实际上是由许多朝向不同的微小表面组成,镜面反射方向分布在R R周围有限范围内。较光滑表面的镜面反射范围较小,而粗糙的物体表面则有较大的镜面反射范围。Phong提出一个计算镜面反射的经验公式,称为Phong模型。公式用余弦函数的幂次来模拟镜面反射光的空间分布,可表示为:IsksIl
23、cosn 式中Is为镜面反射光强度;Il为入射光的光强度;ks为决定于物体表面材料属性的镜面反射系数,它是入射角和入射光波长的函数,很难精确得到,实际应用中常以美学观点或实验方法取一常数,0ks1;镜面反射光强度与cosn成正比,090,因而0cosn1。第27页,此课件共58页哦2023/4/1028 n为镜面反射光的会聚系数,其值同被观察物体表面的光滑度有关,会聚性好的光滑表面,如金属表面,n值较大,而粗糙表面如纸张表面的n值则较小。n值一般取12000,图10表示了n对镜面反射角度范围的影响。图10第28页,此课件共58页哦2023/4/1029 当视点取在镜面反射方向附近时,观察者接受
24、到镜面反射光较强,而偏离这一方向观察时,接受到镜面反射光就会减弱,故高光随着观察者的位置变化而变化。另外,由于镜面反射光是经物体外表面直接反射而产生的,与漫反射光不同,高光具有与入射光同样性质,而与物体表面颜色无关。若R R与V V已规格化为单位向量,则式(8-5)可改写为:IsksIl(R RV V)n 综上所述,从视点观察到物体表面上任一点处的颜色和亮度I应为反射光强度Ie、漫反射光强度Id及镜面反射光强度Is的总和,即 IIeIdIs将各入上式,则得 IkaIakdIl(N NL L)ksIl(R RV V)n 第29页,此课件共58页哦2023/4/1030 另外,反射光强度还和物体与
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 图形学 第八 真实感 图形 生成 技术 课件
限制150内