ahut计算机图形学8.ppt
《ahut计算机图形学8.ppt》由会员分享,可在线阅读,更多相关《ahut计算机图形学8.ppt(90页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第8章章真真实实感感图图形形生生成成技技术术 _ 简单光照模型简单光照模型 _ 隐藏线面的消除隐藏线面的消除 _ 透明处理透明处理 _ 明暗处理明暗处理 _ 阴影处理阴影处理 _ 纹理处理纹理处理 _ 光线跟踪算法光线跟踪算法 _ 颜色模型颜色模型 用计算机生成三维形体的真实感图形,是计用计算机生成三维形体的真实感图形,是计算机图形学研究的重要内容之一。算机图形学研究的重要内容之一。 真实感图形生成技术在仿真模拟、几何造型、真实感图形生成技术在仿真模拟、几何造型、计算机动画制作、影视广告、科学计算可视化、计算机动画制作、影视广告、科学计算可视化、自然景物模拟、医学、气象学、地质学等领域都自然
2、景物模拟、医学、气象学、地质学等领域都有广泛应用。有广泛应用。 近几年来随着多色彩高分辨率光栅图形设备近几年来随着多色彩高分辨率光栅图形设备的普及,真实感图形生成技术发展迅速。的普及,真实感图形生成技术发展迅速。 真实感图形生成技术涉及到的主要问题包括真实感图形生成技术涉及到的主要问题包括隐藏线面的消除隐藏线面的消除、明暗处理明暗处理、阴影处理阴影处理、纹理处纹理处理理等,缺乏这些处理,图形会缺乏真实感或真实等,缺乏这些处理,图形会缺乏真实感或真实感不足。感不足。第第8章章真真实实感感图图形形生生成成技技术术 8.1 隐藏线面的消除隐藏线面的消除 在用计算机生成三维图形时,形体的所有部分都将被
3、表在用计算机生成三维图形时,形体的所有部分都将被表示,不管是可见的还是不可见的,这样的图形显示出来形状示,不管是可见的还是不可见的,这样的图形显示出来形状是不清楚的,甚至是不确定的。是不清楚的,甚至是不确定的。 图图1(a)所示是一个通过棱边表示的立方体的图形,如)所示是一个通过棱边表示的立方体的图形,如果不消隐不易辨别。通过适当删除不可见的隐藏部分,可以果不消隐不易辨别。通过适当删除不可见的隐藏部分,可以得到表示明确的图形。得到表示明确的图形。 图图1(b)是观察点在立方体的前上方的消隐图,)是观察点在立方体的前上方的消隐图, 图图1(c)是观察点位于立方体的前下方消隐图,消隐图)是观察点位
4、于立方体的前下方消隐图,消隐图表示了明确的立体感形体。表示了明确的立体感形体。图图1 1第第8章章真真实实感感图图形形生生成成技技术术 观察点确定后,找出并消除图形中不可见的部观察点确定后,找出并消除图形中不可见的部分,称为分,称为消隐消隐。 经过消隐得到的图形称为经过消隐得到的图形称为消隐图消隐图。 消除隐藏线和隐藏面是计算机图形学中一个较消除隐藏线和隐藏面是计算机图形学中一个较为困难的问题,为困难的问题,消隐算法消隐算法是决定相对于空间给定位是决定相对于空间给定位置的观察者,哪些棱边、表面或物体是可见的,哪置的观察者,哪些棱边、表面或物体是可见的,哪些是不可见的。些是不可见的。 消隐不仅与
5、消隐对象有关,还与观察点、观察消隐不仅与消隐对象有关,还与观察点、观察方向、投影面等的设置方位有关。改变这些设置,方向、投影面等的设置方位有关。改变这些设置,物体上某些可见的部分将会变成不可见,某些不可物体上某些可见的部分将会变成不可见,某些不可见的部分又会变成可见。见的部分又会变成可见。 第第8章章真真实实感感图图形形生生成成技技术术 虽然各种消隐算法的基本思想有所不同,但它虽然各种消隐算法的基本思想有所不同,但它们大多采用了们大多采用了排序和相关性排序和相关性以提高效率。以提高效率。 排序的主要目的是区分体、面、边、点与观察排序的主要目的是区分体、面、边、点与观察点间几何距离的远近。点间几
6、何距离的远近。 因为一个物体离观察点愈远,它愈有可能被另因为一个物体离观察点愈远,它愈有可能被另一距离观察点较近的物体部分地或全部遮挡。一距离观察点较近的物体部分地或全部遮挡。 消隐算法的效率在很大程度上取决于排序的效消隐算法的效率在很大程度上取决于排序的效率。率。 通常利用画面在局部区域内的相关性来提高排通常利用画面在局部区域内的相关性来提高排序过程的效率。序过程的效率。第第8章章真真实实感感图图形形生生成成技技术术 消隐算法一般可以分为两类。消隐算法一般可以分为两类。 如果算法是在物体所定义的空间实现,那么如果算法是在物体所定义的空间实现,那么这种算法称为这种算法称为对象空间算法对象空间算
7、法; 如果算法是在物体投影后的屏幕坐标空间实如果算法是在物体投影后的屏幕坐标空间实现,那么这种算法就称为现,那么这种算法就称为图象空间算法图象空间算法。 一般说来,对象空间算法有比较高的精度,一般说来,对象空间算法有比较高的精度, 而图象空间算法在精度上受屏幕分辨率的限而图象空间算法在精度上受屏幕分辨率的限制,但可以方便地利用图象空间中各种相关性获制,但可以方便地利用图象空间中各种相关性获得较高的计算效率。得较高的计算效率。第第8章章真真实实感感图图形形生生成成技技术术 8.1.1 凸多面体的消隐算法凸多面体的消隐算法 在消隐问题中,凸多面体是最简单情形。在消隐问题中,凸多面体是最简单情形。
8、凸多面体是由多个凸多边形平面包围而成的凸多面体是由多个凸多边形平面包围而成的立体,连接形体上不属于同一表面的任意两点的立体,连接形体上不属于同一表面的任意两点的线段完全位于形体的内部。线段完全位于形体的内部。 对于单个凸多面体,背向观察点的面是不可对于单个凸多面体,背向观察点的面是不可见面,如图见面,如图2所示。因此,只要判断出这些所示。因此,只要判断出这些“朝后朝后面面”,即可达到隐藏面消除的目的。,即可达到隐藏面消除的目的。第第8章章真真实实感感图图形形生生成成技技术术 图图2 2图图2 构成多面体的每个平面都有其构成多面体的每个平面都有其法线法线。通常规。通常规定法线的方向是由多面体的内
9、部指向多面体的外定法线的方向是由多面体的内部指向多面体的外部,称为部,称为“外法线外法线”。第第8章章真真实实感感图图形形生生成成技技术术 假定在右手坐标系中,观察点位于原点,投影假定在右手坐标系中,观察点位于原点,投影面平行于面平行于XY坐标平面,以坐标平面,以Z轴作为深度坐标轴,视轴作为深度坐标轴,视线平行于线平行于Z轴,如图轴,如图3所示,则平面外法线同所示,则平面外法线同Z轴方轴方向的夹角,就是外法线同视线的夹角。向的夹角,就是外法线同视线的夹角。 很显然,对于单个凸多面体,当外法线同视线很显然,对于单个凸多面体,当外法线同视线的夹角小于的夹角小于90时,其平面背向观察点为不可见面。时
10、,其平面背向观察点为不可见面。图图3第第8章章真真实实感感图图形形生生成成技技术术 设平面外法线同设平面外法线同Z轴方向的夹角为轴方向的夹角为,则,则cos为单为单位平面外法线矢量在位平面外法线矢量在Z轴上的分量。轴上的分量。角同可见性的关系为:角同可见性的关系为: (1)当)当 0 90 时,时,cos0,此面背向观察者,此面背向观察者为不可见面。为不可见面。 (2)当)当 90 时,时,cos0,此面平行于,此面平行于Z轴,轴,可以认为是不可见面。可以认为是不可见面。 (3)当)当 90 180 时,时,cos0,此面朝向观察,此面朝向观察者的,为可见面。者的,为可见面。 设平面方程为设平
11、面方程为 Ax+By+Cz+D=0法向矢量为法向矢量为 NAiBjCk 则则cosC/|N|。作为判断依据,只需要知道。作为判断依据,只需要知道cos的正负号就够了。因为的正负号就够了。因为|N|恒大于恒大于 0,所以,所以cos的符的符号由号由C决定,因此,当决定,因此,当C0 时,为可见面。当时,为可见面。当C0时,为不可见面。时,为不可见面。第第8章章真真实实感感图图形形生生成成技技术术 由于三点可以构成一个平面,和三点可以构由于三点可以构成一个平面,和三点可以构成两个矢量,由两矢量的叉积可以求出平面的法成两个矢量,由两矢量的叉积可以求出平面的法线。线。 对于凸多面体,任取构成平面多边形
12、的三个对于凸多面体,任取构成平面多边形的三个相邻点相邻点P0(x0,y0,z0),P1(x1,y1,z1),P2(x2,y2,z2),按右手,按右手规则确定点的顺序,此时有:规则确定点的顺序,此时有:)()(0112120112120101yyxxyyxxyyxxyyxxC 为了决定一个凸多面体的不可见面,对于每一为了决定一个凸多面体的不可见面,对于每一个面按上述公式进行计算,当个面按上述公式进行计算,当C0时为不可见面。时为不可见面。 对于对于单个凸多面体单个凸多面体,该方法可判别出所有隐藏,该方法可判别出所有隐藏面,因为每个面或是完全可见,或是完全不可见。面,因为每个面或是完全可见,或是完
13、全不可见。对于其它形体,如凹多面体或由多个物体组成的复对于其它形体,如凹多面体或由多个物体组成的复杂形体,则还需进行更多的测试来检查是否存在被杂形体,则还需进行更多的测试来检查是否存在被其它面或其它物体完全或部分遮挡的表面。通常,其它面或其它物体完全或部分遮挡的表面。通常,凸多面体消隐处理可消除一半左右的隐藏面。凸多面体消隐处理可消除一半左右的隐藏面。第第8章章真真实实感感图图形形生生成成技技术术 8.1.2 画家算法画家算法 画家创作一幅画的过程是先画背景,然后画中画家创作一幅画的过程是先画背景,然后画中间景物,最后才画近景。这样,每一层总是在前一间景物,最后才画近景。这样,每一层总是在前一
14、层的景物上覆盖,从而解决了隐藏面或可见性问题。层的景物上覆盖,从而解决了隐藏面或可见性问题。 采用同样的技术,首先将形体的所有面根据它采用同样的技术,首先将形体的所有面根据它们与观察点的距离排序,然后按距离递减顺序逐个们与观察点的距离排序,然后按距离递减顺序逐个将各面显示出来,由于当重迭时,后显示的画面会将各面显示出来,由于当重迭时,后显示的画面会覆盖先显示的画面,这样就可以实现消除隐藏面的覆盖先显示的画面,这样就可以实现消除隐藏面的目的。这种隐藏面消除算法通常称为目的。这种隐藏面消除算法通常称为画家算法画家算法。 画家算法也称画家算法也称表优先级算法表优先级算法或或深度优先排序算深度优先排序
15、算法法。这种算法排序操作同时在对象空间和图象空间。这种算法排序操作同时在对象空间和图象空间完成,而在图象空间产生消隐图。实现时首先以深完成,而在图象空间产生消隐图。实现时首先以深度优先级进行排序,距观察点远的面优先级低,近度优先级进行排序,距观察点远的面优先级低,近的面优先级高,以此建立一张深度优先级表。然后的面优先级高,以此建立一张深度优先级表。然后按优先级表顺序将各面送入帧缓冲器进行显示。按优先级表顺序将各面送入帧缓冲器进行显示。第第8章章真真实实感感图图形形生生成成技技术术 深度优先级表的建立深度优先级表的建立是动态进行的。假定观察是动态进行的。假定观察方向同方向同Z轴同向,则最初可按各
16、面的最小轴同向,则最初可按各面的最小z值排序。值排序。但这一初步排序可能出现差错,如图但这一初步排序可能出现差错,如图4所示的情况。所示的情况。图中尽管面图中尽管面S1的最小的最小z值小于面值小于面S2的最小的最小z值,但正值,但正确的顺序是面确的顺序是面S2位于面位于面S1前。因此在实际将前。因此在实际将z值最大值最大的面的面S写入帧缓冲器之前,需与其它面比较以确定是写入帧缓冲器之前,需与其它面比较以确定是否在否在Z方向存在重叠。若无重叠,则对方向存在重叠。若无重叠,则对S进行写入,进行写入,若存在重叠,则需作一些比较以决定是否有必要重若存在重叠,则需作一些比较以决定是否有必要重新排序。如果
17、存在两面相交和循环遮挡,如图新排序。如果存在两面相交和循环遮挡,如图5中所中所示的情况,这时简单的排序是无法解决问题的,必示的情况,这时简单的排序是无法解决问题的,必须求交分割后再进行排序。须求交分割后再进行排序。图4图5第第8章章真真实实感感图图形形生生成成技技术术 下面给出这种算法过程的简单描述下面给出这种算法过程的简单描述 (1)计算各面最小)计算各面最小z值值zmin,并以此值的优先级进,并以此值的优先级进行排序,建立初步的深度优先表;行排序,建立初步的深度优先表; (2)表空结束。否则取表中深度最大的面)表空结束。否则取表中深度最大的面Sn,检查检查表中其它各面表中其它各面Sk(k=
18、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); (4)用用Sn和和Sj的交线分割的交线分割Sn为两部分,转为两部分,转(1)。 画家算法的优点是简单,容易实现
19、,缺点是算画家算法的优点是简单,容易实现,缺点是算法中的深度排序计算量大。法中的深度排序计算量大。第第8章章真真实实感感图图形形生生成成技技术术 8.1.3 深度缓冲器算法深度缓冲器算法 深度缓冲器算法深度缓冲器算法是一种图象空间消隐算法。由是一种图象空间消隐算法。由于一般采用于一般采用Z轴方向为观察方向,沿轴方向为观察方向,沿Z轴计算深度,轴计算深度,所以此方法也称为所以此方法也称为z缓冲器算法缓冲器算法。 它需要两个缓冲器,一个是深度缓冲器,用于它需要两个缓冲器,一个是深度缓冲器,用于保存表面上各象素点保存表面上各象素点(x,y)所对应的深度值所对应的深度值z,一个是,一个是刷新缓冲器,用
20、于保存各点的属性值。两个缓冲器刷新缓冲器,用于保存各点的属性值。两个缓冲器的大小与屏幕上象素点的个数相同,也与显示器帧的大小与屏幕上象素点的个数相同,也与显示器帧缓冲器的单元个数相同。缓冲器的单元个数相同。 深度缓冲器算法的原理深度缓冲器算法的原理是,对一坐标是,对一坐标(x,y),查,查找最小的找最小的z(x,y)值。对每一象素计算值。对每一象素计算z(x,y)值并与已值并与已经存在经存在z缓冲器中该象素的原深度值缓冲器中该象素的原深度值z比较。如果比较。如果z(x,y)小于原小于原z值则替换原值,同时用当前点的属性值则替换原值,同时用当前点的属性更新原属性。算法的最大优点在于简单,它可轻而
21、更新原属性。算法的最大优点在于简单,它可轻而易举地处理任意复杂的画面。因为图象空间的大小易举地处理任意复杂的画面。因为图象空间的大小是固定的,计算量最多随画面复杂度线性增长。是固定的,计算量最多随画面复杂度线性增长。第第8章章真真实实感感图图形形生生成成技技术术 深度缓冲器算法可描述如下深度缓冲器算法可描述如下: (1) 刷新缓冲器置成背景光强或颜色;刷新缓冲器置成背景光强或颜色; (2) 深度缓冲器置成最大深度缓冲器置成最大z值;值; (3) 以任意顺序扫描各多边形:以任意顺序扫描各多边形: 对于多边形中的每一象素对于多边形中的每一象素(x,y,z),将,将z(x,y)与深度缓与深度缓冲器中
22、存储值冲器中存储值Zbuffer(x,y) 进行比较进行比较,若若z(x,y)Zbuffer(x,y),则将此点属性写入,则将此点属性写入刷新缓冲器,且用刷新缓冲器,且用z(x,y)重置重置Zbuffer(x,y); (4) 所有多边形都处理完后,显示消隐图。所有多边形都处理完后,显示消隐图。 深度缓冲器算法便于硬件实现。实际上,在当今生深度缓冲器算法便于硬件实现。实际上,在当今生产的大多数高档图形工作站,除了帧缓存外,还带有产的大多数高档图形工作站,除了帧缓存外,还带有用于消隐的深度缓存,从而克服了深度缓存算法占用用于消隐的深度缓存,从而克服了深度缓存算法占用大量存储单元的缺点。大量存储单元
23、的缺点。第第8章章真真实实感感图图形形生生成成技技术术 8.1.4 区域细分算法区域细分算法 区域细分算法区域细分算法也称为也称为Warnock算法。这种算法在算法。这种算法在图像空间中实现。该算法充分利用图形的区域连贯性,图像空间中实现。该算法充分利用图形的区域连贯性,在连续的区域上确定可见线面及其属性。它既可以用在连续的区域上确定可见线面及其属性。它既可以用于消除隐藏线,也可以用于消除隐面,适用于解决多于消除隐藏线,也可以用于消除隐面,适用于解决多边形所表示的画面消隐问题。边形所表示的画面消隐问题。 区域细分算法的基本思想区域细分算法的基本思想是,把形体投影到全屏幕是,把形体投影到全屏幕窗
24、口上,然后递归地分割窗口,直到窗口内仅包含单窗口上,然后递归地分割窗口,直到窗口内仅包含单个可见面或不包含任何面。算法先检测初始窗口是否个可见面或不包含任何面。算法先检测初始窗口是否包含图形,如果不包含,则按背景色显示,若窗口内包含图形,如果不包含,则按背景色显示,若窗口内只有单个面,则把该面显示出来。否则,当窗口内含只有单个面,则把该面显示出来。否则,当窗口内含有两个以上的面时,则把窗口等分成四个小窗口,对有两个以上的面时,则把窗口等分成四个小窗口,对每个小窗口再作上述同样的处理。这样反复地进行下每个小窗口再作上述同样的处理。这样反复地进行下去,如果窗口细分到象素大小,而窗口内仍有两个以去,
25、如果窗口细分到象素大小,而窗口内仍有两个以上的面,这时不必再继续分割,只要取窗口内最近的上的面,这时不必再继续分割,只要取窗口内最近的可见面的颜色或所有可见面的平均色作为该象素的值。可见面的颜色或所有可见面的平均色作为该象素的值。第第8章章真真实实感感图图形形生生成成技技术术 细分过程如图细分过程如图6所示,算法每次将区域分割为四所示,算法每次将区域分割为四等分,类似于组织一棵四叉树。这样,即使是一个等分,类似于组织一棵四叉树。这样,即使是一个1024l024分辨率的窗口被细分分辨率的窗口被细分10次以后,也仅能次以后,也仅能使每个单元覆盖一个象素。使每个单元覆盖一个象素。图图6 6第第8章章
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ahut 计算机 图形学
限制150内