最新计算机图形学第六章真实感图形学课件.ppt

上传人(卖家):晟晟文业 文档编号:4969128 上传时间:2023-01-29 格式:PPT 页数:70 大小:2.33MB
下载 相关 举报
最新计算机图形学第六章真实感图形学课件.ppt_第1页
第1页 / 共70页
最新计算机图形学第六章真实感图形学课件.ppt_第2页
第2页 / 共70页
最新计算机图形学第六章真实感图形学课件.ppt_第3页
第3页 / 共70页
最新计算机图形学第六章真实感图形学课件.ppt_第4页
第4页 / 共70页
最新计算机图形学第六章真实感图形学课件.ppt_第5页
第5页 / 共70页
点击查看更多>>
资源描述

1、计算机图形学第六章真实计算机图形学第六章真实感图形学感图形学两种显示方式的比较基于物体空间的显示:这种显示方式首先将要显示的对象表示为相互连接的多边形(通常是三角形)面片;然后通过一条所谓的图形绘制管线将每一个三角形绘制到屏幕上。当所有面片都处理完毕后,就得到了一幅完整的真实感图像。这种显示方式有图形硬件的支持,显示速度很快,通常用于交互设计。但它的真实感程度稍逊。典型应用:交互设计、游戏。基于图像空间的显示:这种显示方式逐个计算屏幕象素点的颜色,以获得整个屏幕的图像。它采用光线跟踪算法,通过逆向跟踪通过屏幕象素的光线路径,并累加路径上光线贡献,得到该象素点的色彩。这种显示方式可以生成超真实的

2、图像,是生成最终效果图的主要方法。典型应用:广告。三刺激空间三刺激空间:R、G、B三原色(其实是X、Y、Z)的单位向量定义了一个三维颜色空间,该三维向量空间称为(R、G、B)三刺激空间。色度图:色度图:为了在二维空间中表示颜色,取三刺激空间中的截面(R)(G)(B)1。该截面与三个坐标平面的交线构成一个等边三角形,称为色度图。对于三刺激空间中坐标为X、Y、Z的颜色刺激向量,它与色度图的交点坐标(x,y,z)被称为色度值:CIE色度图:色度图:把可见光色度图投影到XY平面上,所得到的马蹄形区域称为CIE色度图。马蹄形区域的边界和内部代表了所有可见光的色度值,边界弯曲部分代表了光谱在某种纯度为百分

3、之百的色光。XYZ01113)常用颜色模型虽然色度图和三刺激值给出了描述颜色的标准精确方法,但是,它的应用还是比较复杂的。在计算机图形学中,通常使用一些通俗易懂的颜色模型。所谓颜色模型就是指某个三维颜色空间中的一个可见光子集,它包含某个颜色域的所有颜色。颜色模型的用途是在某个颜色域内方便地指定颜色。由于每一个颜色域都是可见光的子集,所以任何一个颜色模型都无法包含所有的可见光。RGB颜色模型通常用于彩色光栅图形设备中,是使用最多的颜色模型。它采用红、绿、蓝为原色,各个原色混合在一起可以产生复合色,被称为加色系统。通常采用单位立方体来表示。RGB三原色混合效果RGB立方体RGB颜色模型:CMY颜色

4、模型:颜色模型:以红、绿、蓝的补色青(Cyan)、品红(Magenta)、黄(Yellow)为原色构成的CMY颜色模型,常用于从白光中滤去某种颜色,被称为减色系统。CMYK颜色模型:颜色模型:CMYK:Cyan 青,Magenta 品红,Yellow 黄,blacK 黑。取黑色的根本原因是青、品红、黄三色混合常产生“灰”黑。与采用三色颜色叠印相比,使用单一颜色印刷显然更易干燥,而且黑墨水比彩色墨水便宜。在CMYK系统中,黑色被用于代替等量的青、品红、黄三色K=min(C,M.Y)C=C-KM=M-KY=Y-K这个过程称为底色去除。XYZ系统到RGB模型的相互转换CIE的色度坐标和三刺激值给出了

5、描述颜色的标准精确方法。由于涉及颜色的工业部门都各有一套颜色描述的规则和惯例。采用CIE色度坐标有助于这些工业部门之间颜色信息的传递和转换。因此从CIE坐标值到另一种颜色系统的变换及逆变换是引人关注的研究课题。计算机图形学需要在CIE XYZ系统和RGB加色系统之间进行转换。由RGB颜色空间至CIE XYZ颜色空间的变换为其中Xr、Yr、Zr为生成单位量的R原色所需要的三刺激值,Xg、Yg、Zg以及Xb、Yb、Zb类同。只要将RGB颜色模型的三个分量带入,就可以得到在CIE XYZ系统中的三刺激值。BGRZZZYYYXXXZYXbgrbgrbgr6.2 光照明模型光照明模型 当光照射到物体表面

6、时,光线可能被吸收、反射和透射。被物体吸收的部分转化为热,反射、透射的光进入人的视觉系统,使我们能看见物体。为模拟这一现象,需要建立一些数学模型来替代复杂的物理模型,这些模型被称为明暗效应模型或者光照明模型。三维物体的图形经过消隐后,再进行明暗效应的处理,可以进一步提高图形的真实感。1)光的传播在正常的情况下,光沿着直线传播,当光遇到介质不同的表面时,会产生反射和折射现象,而且在反射和折射的时候,遵循反射定律和折射定律。(1)反射定律:入射角等于反射角,且反射光线、入射光线与 法向量在同一平面上。(2)折射定律:折射角与入射角满足,1/2=sin/sin且折射线在入射线与法线构成的平面上,1、

7、2为两种介质的折射率。(3)能量关系:在光的反射和折射现象中,能量是守恒的,能量的分布情况满足:Ii=Id+Is+It+Iv其中:Ii为入射光强,由光源引起;Id为漫反射光强,由表面不光滑引起;Is为镜面反射光强,由表面光滑性引起;It 为透射光,由物体的透明性引起;Iv为被物体所吸收的光,由能量损耗引起。6.3 6.3 简单光照明模型简单光照明模型 简单光照明模型模拟物体表面对光的反射作用。光源被假定为点光源,反射作用被细分为镜面反射(Specular Reflection)和漫反射(Diffuse Reflection)。简单光照明模型只考虑物体对直接光照的反射作用,而物体间的光反射作用,

8、只用环境光(Ambient Light)来表示。漫反射由表面的粗糙不平引起,它均匀地向各方向传播,与视点无关。记入射光强为Ip,物体表面上点P 的法向为N,从点P指向光源的向量为L,两者间的夹角为,则漫反射光强为:Id=Ip*Kd*cos()(0,/2)其中,Kd是与物体有关的漫反射系数,0Kd1。当L、N为单位向量时:Id=Ip*Kd*(LN)在有多个光源的情况下,有如下表示:Id=KdIpi*(LiN)在RGB颜色模型下,漫反射系数Kd有三个分量Kdr,Kdg,Kdb分别代表RGB三原色的漫反射系数,它们是反映物体的颜色的,通过调整它们,可以改变物体的颜色。同样,我们也可以把入射光强I设为

9、三个分量Ir,Ig,Ib,通过这些分量的值来调整光源的颜色。PNL1 1)理想漫反射理想漫反射对于理想镜面,反射光集中在一个方向,并遵守反射定律。对一般的光滑表面,反射光集中在一个范围内,且由反射定律决定的反射方向光强最大。因此,对于同一点来说,从不同位置所观察到的镜面反射光强是不同的。镜面反射光强可表示为:Is=Ip*Ks*cosn(),(0,/2)其中Ks是与物体有关的镜面反射系数,为视线方向V与反射方向R的夹角,n为反射指数,反映了物体表面的光泽程度,一般为12000,数目越大物体表面越光滑。镜面反射光会在反射方向附近形成很亮的光斑,称为高光现象。同样,将V和R都格式化为单位向量,镜面反

10、射光强可表示为:Is=Ip*Ks*(R V)n对多个光源的情形,镜面反射光强可表示为:Is=KsIpi(Ri V)n镜面反射光产生的高光区域只反映光源的颜色,镜面反射系数Ks是一个与物体的颜色无关的参数(与光洁程度有关)。综合前面已经提到的,在简单光照明模型中,我们只能通过改变物体的漫反射系数来控制物体的颜色。2 2)镜面反射镜面反射环境光是指光源间接对物体的影响,是在物体和环境之间多次反射,最终达到平衡时的一种光。我们近似地认为同一环境下的环境光,其光强分布是均匀的,它在任何一个方向上的分布都相同。例如,透过厚厚云层的阳光就可以称为环境光。在简单光照明模型中,我们用一个常数来模拟环境光:Ie

11、=IaKa其中:Ia为环境光的光强,Ka为物体对环境光的反射系数。3 3)环境光环境光4 4)Phong光照明模型综合上面介绍的光反射作用的各个部分,Phong光照明模型有这样的一个表述:由物体表面上一点P反射到视点的光强I为环境光的反射光强Ia、理想漫反射光强Id、和镜面反射光Is的总和,即:nspdpaaVRKINLKIKII在用Phong模型进行真实感图形计算时,对物体表面上的每个点P,均需计算光线的反射方向R,再由V计算(RV)。为减少计算量,我们可以作如下假设:a)光源在无穷远处。即光线方向L为常数;b)视点在无穷远处,即视线方向V为常数;c)用(HN)近似(RV)。这里H为L和V的

12、平分向量,H=(L+V)/|L+V|。在这种简化下,由于对所有的点总共只计算一次H的值(N总是需要计算的),节省了计算时间。OpenGL对多边形的处理:对多边形的处理:多边形顶点颜色使用Phone光照明模型计算,多边形的填充使用Gouraud明暗模式。Gouraud明暗模式:明暗模式:首先,通过顶点线性插值多边形边界象素的颜色;其次,通过扫描线与边界的交点线性插值多边形内部象素颜色。缺点:不够细致,对较大的多边形最好进行分解!6.46.4 光透射模型光透射模型 对于透明(transparency)或半透明的物体,在光线与物体表面相交时,一般会产生反射与折射(refraction),经折射后的光

13、线将穿过物体而在物体的另一个面射出,形成透射光。如果视点在折射光线的方向上,就可以看到透射光。1)透明效果的简单模拟 颜色调和法:该方法不考虑透明体对光的折射以及透明物体本身的厚度,光通过物体表面是不会改变方向的,故可以模拟平面玻璃。设t是物体的透明度,t=0表示物体是不透明体;t=1表示物体是完全透体。我们所看到的颜色,是物体表面的颜色和透过物体的背景颜色的叠加。设过象素点(x,y)的视线与物体相交处的颜色(或光强)为Ia,视线穿过物体与另一不透明物体相交处的颜色(或光强)为Ib,则象素点(x,y)的颜色(或光强)可由如下颜色调和公式计算:I=t*Ib+(1-t)*Ia其中,Ia和Ib可由简

14、单光照明模型计算。由于未考虑透射光的折射,以及透明物体的厚度,颜色调和法只能模拟玻璃的透明或半透明效果。2)Whitted 光透射模型其中It和Is分别为折射方向和反射方向的入射光强度(非光源);Kt和Ks分别为透射系数和反射系数,都是01之间的常数,取决于物体的材质。Ks和Ks可以相同。这一模型于1980年由Whitted提出,并第一次给出了使用此模型的光线跟踪算法范例。NVIsItIp在简单光照明模型的基础上,加上透射光项就得到Whitted光透射模型:再加上镜面反射光项,就得到Whitted 整体光照模型:ttnspdpaaKIVRKINLKIKIIssttnspdpaaKIKIVRKI

15、NLKIKII3)Hall 光透射模型 Hall光透射模型是在Whitted光透射模型的基础上推广而来的。实际上,就是在Whitted模型的光强计算中加入光源引起的漫透射和规则透射。透明体的粗糙表面对透射光的作用表现为漫透射。如毛玻璃表面即为漫透射面。当光线透过这样的表面射出时,光线将向各个方向散射。对理想漫透射面,透射光的光强在各个方向均相等。用Lambert余弦定律描述点P处的漫透射光的光强为:LNKIIdtpdt其中Ip为入射光的强度,Kdt为物体的漫透射系数,在0与1之间。L为入射光的方向,N为面法线(-N为背面法线)。法线N入射方向L对于理想的透明介质,只有在光线的折射方向才能见到透

16、射光,其他方向均见不到。对非理想透明物体,视点在透射方向附近也能见到部分透射光,但强度随视线V与光线的折射方向T的夹角的增大而急剧减小。这种规则透射光的光强比漫透射光强高出好多倍,在折射方向周围形成高光域,这个高光域的光强要比其周围区域要大的多。Hall用下面的式子模拟透射高光现象:法线N入射方向L折射方向T视线VntptVTKII其中,It为规则透射光在视线方向的强度,Ip为入射光的强度;Kt为物体的透明系数,n为反映物体表面光泽度的常数。4)光透射模型 综合简单光照明模型,Whitted光透射模型和Hall光透射模型,可得简单光反射透射模型(含有全局项):ssttjntjdtpjinsid

17、spiaaKIKIVTKLNKIVRKNLKIKIIts其中下标i表示直接照射表面的光源,下标j表示引起折射的光源;下标ds表示漫反射,下标s表示规则反射;下标dt表示漫折射,下标t表示规则折射;上标表示非光源项;L表示光源方向;N表示法线方向;R表示反射方向;V表示视线方向;T表示折射方向。6.5 6.5 整体光照明模型整体光照明模型 简单光照明模型虽然可以产生物体的真实感图象,但它只考虑物体对直接光照的反射作用,不能很好的模拟光的折射和阴影等,也不能用来表示物体间的相互光照明影响;而基于简单光照明模型的光透射模型,虽然可以模拟光的折射,但是这种折射的计算范围很小,不能很好的模拟多个透明体之

18、间的复杂光照明现象。对于上述的这些问题,必须要有一个更精确的光照明模型。整体光照明模型就是这样的一种模型。在现有的整体光照明模型中,主要有光线跟踪和辐射度两种方法,它们是当今真实感图形学中最重要的两个图形绘制技术,在CAD及图形学领域得到了广泛的应用。1)光线跟踪算法 光线跟踪算法是真实感图形学中的主要算法之一,该算法具有原理简单、实现方便和能够生成各种逼真的视觉效果等突出的优点,综合考虑了光的反射、折射、阴影等。光线跟踪的基本原理:光线跟踪的基本原理:模拟理想表面的光线传播,跟踪镜面反射和折射。由光源发出的光线,经反射与折射,只有很少部分可以进入人的眼睛。因此光线跟踪算法的跟踪方向与光传播的

19、方向是相反,是视线跟踪。由视点与象素(x,y)发出一根射线,与第一个物体相交后,在其反射与折射方向上进行跟踪。1)由光源产生的直接的光线照射光强,是交点处的局部光强,可以由简单光照模型计算(但要考虑遮挡)。2)反射方向上由其它物体引起的间接光照光强,由IsKs 计算,Is通过对反射光线的递归跟踪得到。3)折射方向上由其它物体引起的间接光照光强,由ItKt 计算,It通过对折射光线的递归跟踪得到。光线跟踪算法的基本过程 当视线与物体表面交于点P时,点P的光分为三部分,把这三部分光强相加,就是P点处的总的光强:两个透明球和一个非透明物体组成场景的光线跟踪 虽然在理想情况下,光线可以在物体之间进行无

20、限次的反射和折射,但是在实际的算法进行过程中,我们不可能进行无穷的光线跟踪,因而需要给出一些跟踪的终止条件。实际应用中,可以有以下几种终止条件:该光线未碰到任何物体。该光线碰到了背景(即边界)。光线经过许多次反射和折射以后,就会产生衰减。当衰减系数小于某个给定的值时,光线对于视点的光强贡献很小,这时可以停止跟踪。光线反射或折射的次数(即跟踪深度)大于给定的值。光线跟踪终止条件光线跟踪算法伪码:光线跟踪算法伪码:函数名为RayTracing(),光线的起点为start,光线的方向为direction,光线的衰减权值为weight,初始值为1,算法最后返回光线方向上的颜色值color。对于每一个象

21、素点,第一次调用RayTracing()时,可以设起点start为视点,而direction为视点到该象素点的射线方向。RayTracing(start,direction,weight,color)if(weight 0,否则,E(x)0。现在我们来考虑如何计算H(x),由H(x)的定义知,H(x)是周围环境表面各点辐射度B(x)的函数,其中xx。一般来说,x点处的微面元dS(x)向四周发射的能量中只有一部分到达x点处。若我们用F(x,x)来表示微面元dS(x)辐射并达到面元dS(x)的光能占它向四周辐射的总能量的比例,则dS(x)对x的入射光能为:。其中dA(x)为微面元dS(x)的面积。

22、由H(x)的定义知,)(),()(xdAxxFxB(2)(),()()(SxdAxxFxBxH其中S为环境中的所有表面。通常我们称F(x,x)为微面元dS(x)对微面元dS(x)的形状因子。由(1)、(2)两个方程知道,形状因子的表达与计算是建立辐射度方程的关键。由于理想漫射表面接收到来自空间任一方向的光能后向各个方向均匀反射,故形状因子F(x,x)只与微面元dS(x)和dS(x)的相对位置、几何大小有关,即F(x,x)是一个纯几何量。根据立体角的定义,当从x处观察dS(x)时所张的立体角为:),()(cos2xxrxdAdx其中r(x,x)为点x到点x之间的距离,x为dS(x)在x处的法线N

23、x与向量x-x之间的交角。由此,由微面元dS(x)发出的能量到达dS(x)的能量为:(3)(cos)()(cos)()()(xdAdxBxdAdxIxdAxdPxx其中dP(x)为x处单位面积朝立体角d发出的光能(光通量)。I(x)为x点处的光亮度(各向相同),x为dS(x)在x处的法向量Nx与向量x-x之间的交角。dS(x)dS(x)NxNxx x由辐射度的定义可知,微面元dS(x)向四周发出的总能量为B(x)dA(x),故面元dS(x)到面元dS(x)的形状因子为:(4)(),(coscoscos)()()()(),(2xdAxxrdxdAxBxdAxdPxxFxxx以上推导隐含了一个假设

24、,即微面元dS(x)与dS(x)之间是完全可见的。若dS(x)与dS(x)之间存在遮挡物,则由几何光学原理知,dS(x)入射到dS(x)上的能量为零。引进遮挡函数HID(dS(x),dS(x),若遮挡,其值为0,否则为1,则形状因子的一般形式为:(5)(),(coscos)(),(),(2xdAxxrxdSxdSHIDxxFxx由(1)、(2)、(5)可得:(6)()(),(),(coscos)()()()(2xdAxdSxdSHIDxxrxBxxExBxxS此即为一般理想漫射环境的辐射度方程。该方程系统地描述了封闭环境中各景物表面在平衡状态时的光能分布。尽管上述方程给出了景物表面辐射度函数的

25、一般表达式,但实际应用中,该方程过于复杂,精确求解景物表面上各点的辐射度B(x)显然不切实际。为此应对(6)式作简化。我们假设景物表面被剖分成一系列互不重迭的小平面片,且各面片上的辐射度值和漫反射率均为常数。不妨假设分割后场景中景物面片数为N,第i个面片Si的辐射度为Bi,其自身拥有的辐射度为Ei,漫反射系数为i,其面积为Ai,则方程(6)应用在面片Ai上,并在方程两边对Si求积分得:若记:则上式可写为:,i=1,2N (7)NjSSxxjiiiiiijxdAxdAxdSxdSHIDxxrBAEAB12)()()(),(),(coscosN1jijjiiiFBEB ijSSxxiijxdAxd

26、AxdSxdSHIDxxrAF)()()(),(),(coscos12此即为简化后漫射环境下的辐射度系统方程。可将(7)式写成矩阵形式:(I+M)B=E (8)其中I为NN的单位阵,TNTNNNNNNNNNNEEEEBBBBFFFFFFFFFM),(),(2121212222221211121111由(7)式可知,Fij恰好表达了面片Sj发出并到达面片Si的辐射能占Sj向四周辐射的总能量的比例(Si、Sj作为整体看),被称为面片Sj到面片Si的形状因子。一旦计算好形状因子,就可以通过求解方程组(7)得到个面片的辐射度的值。由于辐射度解与视点无关,一旦给定视点和视线方向,就可以用任一消隐算法来绘

27、制场景。无论视点、视线、光源光照属性、面片漫反射系数发生改变,均无需重新计算形状因子。漫射环境下的辐射度方法可归结为如下流程图。输入场景将场景中的表面剖分为小平面片计算面片间的形状因子Fij辐射度系统方程求解绘制并显示场景改变光源光照属性和表面漫反射系数改变视点或视线表面剖分处理原则:表面剖分处理原则:剖分所生成面片的数量和形状不仅严重影响辐射度方法的效率,而且也会影响面片间形状因子的计算精度。在算法实现时,应尽量避免将景物表面分割成狭长的面片形状。在面片数一定的情况下,一个好的剖分算法应使这些面片均匀地分布在各景物表面上。在辐射度面片剖分算法中,一般采用正方率来衡量各面片形状的优劣。一面片的

28、正方率定义为其内接圆半径与其外接圆半径之比。显然,面片的正方率越大(接近于1),该面片的形状越方正;若其正方率接近于零,则面片呈狭长的形状。由于我们事先并不知道各景物表面上辐射度函数的变化规律,因而无法准确预测应在景物表面的哪些区域分得细一些,在哪些区域分得细一些。一个折中的方案是先对表面作均匀剖分来生成初始面片,并尽可能使各面片的正方率大一些。当然,这可能与后面计算得到的表面辐射度分布不相吻合。但经对初始面片继续作递归细分,可生成所需的非均匀网格。正方率0.3正方率0.5形状因子形状因子Fij的计算:的计算:(1)Fij和Fji满足下列交换关系:AiFij=AjFji证:(2)对封闭环境有:

29、证:Fij为面片Sj发出并到达面片Si的辐射能占Sj向四周辐射的总能量的比例,1001。(3)若面片Si为一平面片或凸曲面片,则有Fii=0证:可见性(4)计算:除几种简单情形外,形状因子Fij的计算公式没有精确的解析解,因而图形学中均采用数值求解技术来计算形状因子。ijSSxxiijxdAxdAxdSxdSHIDxxrAF)()()(),(),(coscos12NiijF11辐射度方程求解辐射度方程求解方程:(I+M)B=E其中I为NN的单位阵TNTNNNNNNNNNNEEEEBBBBFFFFFFFFFM),(),(2121212222221211121111方程组的系数矩阵为:NNNNNN

30、NNNFFFFFFFFFM111212222221211121111M为按列绝对对角占优矩阵,方程有唯一解。绘制绘制通过计算形状因子和求解辐射度方程,可得到每一面片的辐射度Bi。它们可用于绘制场景中的面片。由于面片之间的形状因子与视点无关,因此辐射度方程的解也与视点无关。这一性质使得辐射度的解特别适合于对视点连续变化的场景的绘制,即所谓的漫游。一般地,漫反射率对RGB三原色具有不同的数值,这时需要分别求解三组联立方程组,然后合成RGB颜色。如果用Bi去直接绘制面片,每一面片按无变化的光亮度绘制,则整个景物表面的光亮度将不连续。解决的方法是:将所得的面片辐射度的值外推到周围的顶点,再用Goura

31、ud方法显示多边形。封闭性:封闭性:辐射度方法要求有一个封闭的环境,在这个封闭环境中能量是守恒的。这个封闭环境被简化为由N个表面组成。它们可以是发光表面(如光源)、反射面或虚拟的表面(如窗户)。表面被假定为理想漫反射体、理想漫射发光体、理想漫反射体和漫射发光体的组合。将光源看作具有指定照明强度的表面。对于有向光源,首先独立地计算它对场景中表面的有向辐射;然后将受到有向辐射的各表面视作发光表面进行辐射度求解。辐射度法举例纹理:纹理:物体的表面细节称为纹理(Texture),纹理分为两类:(1)颜色纹理:颜色或明暗度变化体现出来的表面细节,如刨光木材表面上的木纹。(2)几何纹理:由不规则的细小凹凸

32、体现出来的表面细节,如桔子皮表面的皱纹。在真实感图形学中,可以用下列两种方法来定义纹理:(1)图象纹理:将二维纹理图案映射到三维物体表面,绘制物体表面上一点时,采用相应的纹理图案中相应点的颜色值。(2)函数纹理:用数学函数定义简单的二维纹理图案,如方格地毯;或用数学函数定义随机高度场,生成表面粗糙纹理即几何纹理。6.6 纹理及纹理映射图像纹理函数纹理 的最大整数表示小于其中:为偶数为奇数xx 881880),(vuvuvug纹理映射:纹理映射:纹理一般定义在单位正方形域(0u1,0v1)上,称为纹理空间。为了表示物体的表面细节,需要进行物体坐标(x,y,z)到纹理坐标(u,v)的变换,在确定点

33、(x,y,z)的色彩时,用纹理坐标(u,v)对应的纹理色彩代替(或参与)。纹理数据通常是离散的(例如一幅纹理图像),在计算(u,v)点的色彩时,通常需要使用该点周围已知的纹理色彩进行插值(例如线性插值或取最近点)。物体坐标到纹理坐标的转换通常使用下列两种方法:物体坐标到纹理坐标的转换通常使用下列两种方法:(1)在绘制一个三角形时,为每个顶点指定纹理坐标,三角形内部点的纹理坐标由纹理三角形的对应点确定。即指定:(x0,y0,z0)(u0,v0)(x1,y1,z1)(u1,v1)(x2,y2,z2)(u2,v2)(2)指定映射关系:u=a0 x+a1y+a2z+a3v=b0 x+b1y+b2z+b

34、3几何纹理的生成:几何纹理的生成:颜色纹理可以使用图像纹理和函数纹理直接生成,而几何纹理则使用一个称为扰动函数的数学函数进行定义。扰动函数通过对景物表面各采样点的位置作微小扰动来改变表面的微观几何形状。设景物表面由下述参数方程定义:则表面任一点(u,v)处的法线为:又设扰动函数为:则扰动后的表面为:且:由于扰动函数P(u,v)非常小,故上两式的最后一项可略去。这样扰动后的法向可以近似表示为:),(vuQQ),(vuP),(),(),(),(),(vuvuvuvuvuvuvuQQQQNNvvvvuuuuPPPPNNQQNNQQNQQ),(),(vuPvuDNNQQNQQQQN)()(uvvuvu

35、vuPP其中:位于表面在(u,v)点的切平面上,扰动的意义明显。)()(NQQNDuvvuPP扰动函数的确定:扰动函数的确定:扰动函数是一标量函数,可以任意选择。可以是简单的网格图案、字符位图、Z缓冲图案,也可以是交互式绘图系统绘制的各种图案。当使用离散的扰动函数时,使用差分代替微分。对表面函数的处理:对表面函数的处理:景物表面几何形状的微小扰动会引起表面法向的较大变化。由于表面光亮度是景物表面法向的函数,这种法向变化会引起表面光亮度的突变,从而产生表面凹凸不平的真实感效果。通常情况下,我们并不需要将扰动函数加入最后显示的表面,而只是借助扰动函数扰动表面的法线,这时在景物的轮廓线上表现不出凸凹

36、不平的效果;如果将扰动函数直接加入表面的法线方向,则可以产生真实的凸凹模型。两者在表现景物表面的几何纹理时效果相差不大,但在轮廓区域则完全不同。纹理举例Mip-Map纹理反走样技术纹理反走样技术纹理映射经常涉及将一纹理图案映射到不同大小的景物表面上。当各屏幕象素中的可见曲面与纹理象素的大小相匹配时,它们之间形成一对一的映射。而当景物表面在屏幕上的投影区域较小时,位于一个屏幕象素内的曲面区域映射到纹理平面上后可能覆盖多个纹理象素,这时,若仍基于屏幕象素中心在纹理平面上作采样,由于采样点在纹理空间的变化很大,则会产生严重的走样现象。实际上应当取这一区域上纹理象素颜色的平均值作为当前象素内可见区域的

37、平均纹理属性,Mip-Map纹理反走样技术即基于这种思想。Mip是拉丁文“multum in parvo”的缩写,意为“聚集在一块小区域内的许多东西”。Mip-Map技术保留了一幅图像的多个分辨率版本,最高版本是原始图像,低级版本的分辨率是其上级版本的1/2,其每个象素是上级图像四个象素的平均值,所有版本构成了一个图像金字塔。高低Mip-Map方法在确定一个屏幕象素的纹理颜色时需要计算三个参数,即屏幕象素中心在纹理平面上映射点的坐标(u,v)和屏幕象素内可见平面区域在纹理平面上所映射区域的边长d。d决定了应在哪一级分辨率的纹理图像上进行纹理采样。通常情况下,可以根据象素的四个角点在纹理平面上的

38、对应坐标,对d进行估计:(x,y)(x+1,y)(x+1,y+1)(x,y+1)yxuvABCDd是一个实数,通常介于两个分辨率图像的象素边长之间,这时,首先通过插值(横向)确定象素中心在这两幅图像上的纹理颜色,再使用这两个纹理颜色在两幅图像之间作线性插值(纵向),这个纹理颜色既是对应象素的纹理颜色。Mip-Map的纹理映射过程通过三角形三个顶点的对应坐标建立了屏幕坐标到纹理坐标的映射三维空间屏幕空间纹理空间110Mip-Map的纹理映射过程-d-11/8 1/41/2象素长度颜色d作业3使用OpenGL绘制一个立方体,要求:(1)其中的两个面使用简单颜色绘制(颜色自己定,可以是渐变色也可以是

39、单一颜色)、两个面使用光照绘制(材料自己定)、两个面使用纹理绘制(纹理图像要求至少有一张是自己的面部特写)。(2)可以用鼠标进行图像的旋转、放大和平移。其中鼠标左键控制旋转;鼠标右键控制图像的平移、鼠标滚轮控制图像的放大。旋转、放大和平移有效果就行。计算机生成的图形是由离散点组成的数字化图像,因而生成的图形必然与真实景物之间存在误差。这种误差表现为图形上的直线或光滑的曲线呈锯齿状、彩色花纹失去原有的形态和色彩、细小物体在画面上得不到反映等等。这种现象在计算机图形学中称为图形走样(aliasing)。从信号理论来看这是由于生成图像时对真实画面的采样频率过低造成的。解决这个问题的最根本方法是用面积

40、采样代替点采样,或者在景物的细节部分增加采样点,并使用适当的滤波器对采样信号进行处理(例如加权平均)。6.7图形反走样技术1)面积采样反走样glEnable(GL_POINT_SMOOTH);glEnable(GL_LINE_SMOOTH);glEnable(GL_POLYGON_SMOOTH);原始走样面积反走样2)增加采样点反走样在使用光线跟踪方法绘制图形时,可采用象素细分技术增加采样点进行反走样。其基本思想是将发生图形走样的象素细分为四个象素,分别对子象素进行光线跟踪,若子象素仍有图形走样,则继续细分子象素直到每一子象素的光亮度都大致正确为止。最后取各子象素光亮度的加权平均即可得到整个象

41、素的光亮度。Procedure antialiasing(I1,I2,I3,I4,I)/I1,I2,I3,I4为当前象素或子象素四个角点的光亮度值,/I为所求的当前象素或子象素的光亮度。BeginIf(I1,I2,I3,I4大致相等)then I=(I1+I2+I3+I4)/4ElseBegin在象素四条边界的中点及象素中心点发出光线,得到五个采样点处的光亮度I12,I23,I34,I41和ImAntialiasing(I1,I12,Im,I41,Ia);Antialiasing(I12,I2,I23,Im,Ib);Antialiasing(Im,I23,I3,I34,Ic);Antialia

42、sing(I41,Im,I34,I4,Id);I=(Ia+Ib+Ic+Id)/4EndEndI3ImI1I2I4I12I41I23I346.8 一些特殊效果1)雾化(fog)雾化是一种可以添加到最终图像中的简单效果,可以用于很多目的:可以提高户外场景的真实度。可以帮助场景中的观察者确定物体所在位置的远近。可以实现远平面的光滑剪裁。假设物体表面的颜色为Cs,雾的颜色为Cf,雾化因子为f,最终象素的颜色Cp,则:CpfCs(1f)Cf雾化系数f0,1,它随视点距离的增加而减少,有各种计算方法,例如:startendpendZZZZfpfZdef2pfZdef 线性雾化 指数雾化 平方指数雾化其中,

43、Zp为象素点的Z深度,df为控制雾化浓度的参数。2)阴影(shadow)当观察方向与光源重合时,观察者看不到任何阴影。但当两者不一致时,就会出现阴影。阴影可以表现出画面上景物的远近和相对方位,从而极大的增强画面的真实感。本影与半影:阴影分为两种,本影与半影。位于中间的全黑的轮廓分明的部分称为本影。本影周围半明半暗的区域称为半影。点光源只产生本影,位于有限距离内的分布光源则同时形成本影和半影。本影是任何光线都照不到的区域,而半影区域则可接收到从分布光源来的部分光线。自身阴影和投射阴影:自身阴影是由于物体自身的遮挡而使光线照射不到它上面的某些面;投射阴影是由于物体遮挡光线,使场景中位于它后面的物体

44、或区域受不到光照射而形成的。由于阴影与观察者的位置无关,阴影信息可以反复利用。然而除了光线跟踪算法以外,基于物体空间的图形显示方法对阴影的绘制并非易事。下面介绍两种方法:阴影体法;阴影图法阴影体法由一个点光源和一个三角形可以生成一个无限大的阴影体。落在这个阴影体中的物体,就处于阴影中。假设正在对场景进行观察,同时跟踪一条通过某个象素点的光线,直到这条光线碰到屏幕上显示的某个物体。在对光线进行跟踪的过程中,如果这条射线穿过了阴影体的一个正面(朝向视点的一个面),则计数器加1。如果这条射线穿过了阴影体的一个背面(背向视点的一个面),则计数器减1。如果最终计数器的数值大于0,则说明这个象素处于阴影中

45、,否则处于阴影之外。注:三角形本身不用考虑,因为这里它只能是不透明的,它后面的物体会被它遮住。AB续前页通过巧妙使用模板缓冲器,可以将阴影投射到任意形状的物体上:第一步,将模板缓冲器清空。第二步,只使用环境光和自发光,对场景进行绘制,得到帧缓冲器中的图像和深度缓冲器中的深度。第三步,关闭帧缓冲器和深度缓冲器,但启动深度比较,打开模板缓冲器。在模板缓冲器中绘制出所有阴影体的正向多边形。每绘制一个多边形,就使模板缓冲器的数值增加1。第四步,在模板缓冲器中绘制出所有阴影体的背向多边形。每绘制一个多边形,就使模板缓冲器的数值减少1。(模板不能用颜色绘图)第五步,关闭模板缓冲器,但启用模板,打开帧缓冲器

46、。打开并清空深度缓冲,启用深度比较,在帧缓冲器中对整个场景再次进行绘制,但只绘制模板缓冲器中数值为0的象素。阴影图法这种方法的主要思想是使用Z缓冲器算法,从投射阴影的光源位置对整个场景进行绘制。这时,对于Z缓冲器的每一个象素,它的z深度值包括了这个象素到距离光源最近点的物体的距离。一般将Z缓冲器中的整个内容称为阴影图(Shadow Map),有时候也称为阴影深度图。为了使用阴影图,需要对场景进行二次绘制,不过这次是从视点的角度来进行的。在对每个图元进行绘制的时候,将它们的位置与阴影图进行比较,如果绘制点距离光源比阴影图中的数值还要远,那么这个点就在阴影中,否则就不在阴影中。这种做法与深度测试的

47、思想类似,只不过这里是光源计算深度而不是从视点。光源视点abVaVb续前页高版本的OpenGL对这种方法提供了支持。其实现过程可以简单描述为(参见:OpenGL Programming Guide Sixth Edition):首先:以光源为视点对场景进行第一次绘制。本次生成的图像并不重要,关键是取得其Z缓冲中生成的阴影图,并将其制作成纹理。其次:从视点对场景进行第二次绘制。在绘制过程中为所有像素点计算其三维纹理坐标,计算方法与生成纹理的方法相同。这时,如果某像素的第三纹理坐标小于纹理中的灰度,则该像素不在阴影中,其颜色就是光照的颜色;反之则在阴影中,其颜色为零。这种方法的优点是可以使用一般用途的图形硬件(纹理贴图硬件)对任意的阴影进行绘制(但软件版本要高);缺点是阴影质量与阴影图的象素分辨率有很大关系,同时也依赖于Z缓冲器的数值精度。3)粒子系统粒子系统是一组分散的微小物体集合,其中的这些微小物体按照某种算法运动,实际应用包括模拟火焰、烟、爆炸、流水、树木、旋转星系和其它一些自然现象。这种方法的思想是在粒子的生命周期内控制它的产生、运动、变化和消失。每个粒子可以是屏幕上的一个单独点,也可以用一个布告版来表示。布告版(billboard)就是一个方向始终朝向视点的多边形,在绘制这个多边形时可以使用透明纹理技术。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(最新计算机图形学第六章真实感图形学课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|