计算机图形学第六章真实感图形学.ppt

上传人:牧羊曲112 文档编号:6342311 上传时间:2023-10-18 格式:PPT 页数:69 大小:1.62MB
返回 下载 相关 举报
计算机图形学第六章真实感图形学.ppt_第1页
第1页 / 共69页
计算机图形学第六章真实感图形学.ppt_第2页
第2页 / 共69页
计算机图形学第六章真实感图形学.ppt_第3页
第3页 / 共69页
计算机图形学第六章真实感图形学.ppt_第4页
第4页 / 共69页
计算机图形学第六章真实感图形学.ppt_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《计算机图形学第六章真实感图形学.ppt》由会员分享,可在线阅读,更多相关《计算机图形学第六章真实感图形学.ppt(69页珍藏版)》请在三一办公上搜索。

1、第六章 真实感图形学,真实感图形学是计算机图形学中的一个重要组成部分,它的基本要求就是在计算机中生成三维场景的真实感图象。即给定一个三维场景及其光照明条件,如何确定它在屏幕上生成的图象的每一个象素的明暗、颜色,是真实感图形学需要解决的主要问题。目前,产生真实感图像主要有两种方式:1.基于物体空间的显示多边形投影显示2.基于图像空间的显示光线跟踪算法,两种显示方式的比较,基于物体空间的显示:这种显示方式首先将要显示的对象表示为相互连接的多边形(通常是三角形)面片;然后通过一条所谓的图形绘制管线将每一个三角形绘制到屏幕上。当所有面片都处理完毕后,就得到了一幅完整的真实感图像。这种显示方式有图形硬件

2、的支持,显示速度很快,通常用于交互设计。但它的真实感程度稍逊。典型应用:交互设计、游戏。基于图像空间的显示:这种显示方式逐个计算屏幕象素点的颜色,以获得整个屏幕的图像。它采用光线跟踪算法,通过逆向跟踪通过屏幕象素的光线路径,并累加路径上光线贡献,得到该象素点的色彩。这种显示方式可以生成超真实的图像,是生成最终效果图的主要方法。典型应用:广告。,6.1 颜色和视觉 1)基本概念,颜色:颜色是外来的光刺激作用于人的视觉器官而产生的主观感觉。物体的颜色不仅取决于物体本身,还与光源、周围环境的颜色,以及观察者的视觉系统有关系。色调、饱和度、亮度:从心理学和视觉的角度出发,颜色有如下三个特性:色调(Hu

3、e)、饱和度(Saturation)和亮度(Lightness)。色调是一种颜色区别于其它颜色的要素,也就是我们平常所说的红、绿、蓝、紫等;饱和度是指颜色的纯度,在某种光中添加白色相当于减少该颜色的饱和度,鲜红色饱和度高,粉红色饱和度低;亮度即光的强度。主波长、纯度、明度:从光学物理学的角度出发,颜色的三个特性分别为:主波长(Dominant Wavelength)、纯度(Purity)和明度(Luminance)。主波长是产生颜色的光的波长,对应于视觉感知的色调;光的纯度对应于饱和度,而明度就是光的亮度。“色调、饱和度、亮度”与“主波长、纯度、明度”是从两个不同角度来描述颜色的特性。,颜色纺

4、锤体:色调、饱和度、亮度,可以用一个三维的颜色纺锤体来表示。颜色纺锤体的垂直轴线表示亮度变化,顶部是白色,底部是黑色,从下向上,亮度越来越大;色调由水平圆周表示,圆周上不同角度的点代表着不同色调的颜色,如红、橙、黄、绿、青、蓝、紫等,圆周中心的色调是中灰色,它的亮度和该水平圆周上各色调的亮度相同;从圆心向圆周过渡表示同一色调下饱和度的提高。在颜色纺锤体的一个平面圆形上,它们的色调和饱和度不同,而亮度是相同的。,可见光的电磁波:可见光是人的视觉系统能够感知到的电磁波,它的波长在400nm700nm之间。这些电磁波使人产生了红、橙、黄、绿、青、蓝、紫等颜色的感觉。可见光可以由它的光谱能量分布P()

5、来表示,其中是波长,当一束可见光的各种波长的能量大致相等时为白光;否则为彩色光;若一束可见光中,只包含一种波长的电磁波,其它波长都为零时,称其为单色光。但是,光谱与颜色的对应关系是多对一的,也就是说,具有不同光谱分布的光产生的颜色感觉是有可能一样的。这种现象称为“异谱同色”。需要采用其它颜色定义的方法,使光本身与颜色一一对应。,白光的光谱能量分布,彩色光的光谱能量分布,单色光的光谱能量分布,可见光的光谱,2)三色学说,三色学说也称为三刺激理论。近代的三色学说研究认为:人眼的视网膜中存在着三种锥体细胞,第一种锥体细胞专门感受红光,第二和第三种锥体细胞则分别感受绿光和蓝光。它们三者共同作用,使人们

6、产生了不同的颜色感觉。三色学说是真实感图形学的生理视觉基础。,CIE(International Commission on Illumination,国际照明委员会)选取的标准红、绿、蓝三种光的波长分别为:红光,R,1=700nm;绿光,G,2546nm;蓝光,B,3 435.8nm。任何光的颜色可以表示为:C=rR+gG+bB其中权值r、g、b为需要的R、G、B三色光的相对量,即三刺激值。这个系统被称为CIE-RGB系统。,标准三原色匹配任意颜色的光谱三刺激值曲线,CIE-RGB系统:,在CIE-RGB系统,三刺激值可能是负数。由于实际上不存在负的光强,而且这种计算极不方便,不易理解。19

7、31年的CIE-XYZ系统利用三种假想的标准原色X(红)、Y(绿)、Z(蓝),能够使得到的颜色的三刺激值都是正值。即在CIE-XYZ系统中,任意光的颜色可以表示为:C=xX+yY+zZ而且x,y,z均为正。,CIE-XYZ系统:,三刺激空间:R、G、B三原色(其实是X、Y、Z)的单位向量定义了一个三维颜色空间,该三维向量空间称为(R、G、B)三刺激空间。色度图:为了在二维空间中表示颜色,取三刺激空间中的截面(R)(G)(B)1。该截面与三个坐标平面的交线构成一个等边三角形,称为色度图。对于三刺激空间中坐标为X、Y、Z的颜色刺激向量,它与色度图的交点坐标(x,y,z)被称为色度值:,CIE色度图

8、:把可见光色度图投影到XY平面上,所得到的马蹄形区域称为CIE色度图。马蹄形区域的边界和内部代表了所有可见光的色度值,边界弯曲部分代表了光谱在某种纯度为百分之百的色光。,X,Y,Z,0,1,1,1,3)常用颜色模型,虽然色度图和三刺激值给出了描述颜色的标准精确方法,但是,它的应用还是比较复杂的。在计算机图形学中,通常使用一些通俗易懂的颜色模型。所谓颜色模型就是指某个三维颜色空间中的一个可见光子集,它包含某个颜色域的所有颜色。颜色模型的用途是在某个颜色域内方便地指定颜色。由于每一个颜色域都是可见光的子集,所以任何一个颜色模型都无法包含所有的可见光。,RGB颜色模型通常用于彩色光栅图形设备中,是使

9、用最多的颜色模型。它采用红、绿、蓝为原色,各个原色混合在一起可以产生复合色,被称为加色系统。通常采用单位立方体来表示。,RGB三原色混合效果,RGB立方体,RGB颜色模型:,CMY颜色模型:以红、绿、蓝的补色青(Cyan)、品红(Magenta)、黄(Yellow)为原色构成的CMY颜色模型,常用于从白光中滤去某种颜色,被称为减色系统。,CMYK颜色模型:CMYK:Cyan 青,Magenta 品红,Yellow 黄,blacK 黑。取黑色的根本原因是青、品红、黄三色混合常产生“灰”黑。与采用三色颜色叠印相比,使用单一颜色印刷显然更易干燥,而且黑墨水比彩色墨水便宜。在CMYK系统中,黑色被用于

10、代替等量的青、品红、黄三色K=min(C,M.Y)C=C-KM=M-KY=Y-K这个过程称为底色去除。,XYZ系统到RGB模型的相互转换,CIE的色度坐标和三刺激值给出了描述颜色的标准精确方法。由于涉及颜色的工业部门都各有一套颜色描述的规则和惯例。采用CIE色度坐标有助于这些工业部门之间颜色信息的传递和转换。因此从CIE坐标值到另一种颜色系统的变换及逆变换是引人关注的研究课题。计算机图形学需要在CIE XYZ系统和RGB加色系统之间进行转换。由RGB颜色空间至CIE XYZ颜色空间的变换为其中Xr、Yr、Zr为生成单位量的R原色所需要的三刺激值,Xg、Yg、Zg以及Xb、Yb、Zb类同。只要将

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

12、 法向量在同一平面上。,(2)折射定律:折射角与入射角满足,1/2=sin/sin且折射线在入射线与法线构成的平面上,1、2为两种介质的折射率。,(3)能量关系:在光的反射和折射现象中,能量是守恒的,能量的分布情况满足:Ii=Id+Is+It+Iv其中:Ii为入射光强,由光源引起;Id为漫反射光强,由表面不光滑引起;Is为镜面反射光强,由表面光滑性引起;It 为透射光,由物体的透明性引起;Iv为被物体所吸收的光,由能量损耗引起。,6.3 简单光照明模型,简单光照明模型模拟物体表面对光的反射作用。光源被假定为点光源,反射作用被细分为镜面反射(Specular Reflection)和漫反射(Di

13、ffuse Reflection)。简单光照明模型只考虑物体对直接光照的反射作用,而物体间的光反射作用,只用环境光(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三原

14、色的漫反射系数,它们是反映物体的颜色的,通过调整它们,可以改变物体的颜色。同样,我们也可以把入射光强I设为三个分量Ir,Ig,Ib,通过这些分量的值来调整光源的颜色。,P,N,L,1)理想漫反射,对于理想镜面,反射光集中在一个方向,并遵守反射定律。对一般的光滑表面,反射光集中在一个范围内,且由反射定律决定的反射方向光强最大。因此,对于同一点来说,从不同位置所观察到的镜面反射光强是不同的。镜面反射光强可表示为:Is=Ip*Ks*cosn(),(0,/2)其中Ks是与物体有关的镜面反射系数,为视线方向V与反射方向R的夹角,n为反射指数,反映了物体表面的光泽程度,一般为12000,数目越大物体表面越

15、光滑。镜面反射光会在反射方向附近形成很亮的光斑,称为高光现象。同样,将V和R都格式化为单位向量,镜面反射光强可表示为:Is=Ip*Ks*(R V)n对多个光源的情形,镜面反射光强可表示为:Is=KsIpi(Ri V)n镜面反射光产生的高光区域只反映光源的颜色,镜面反射系数Ks是一个与物体的颜色无关的参数(与光洁程度有关)。综合前面已经提到的,在简单光照明模型中,我们只能通过改变物体的漫反射系数来控制物体的颜色。,2)镜面反射,环境光是指光源间接对物体的影响,是在物体和环境之间多次反射,最终达到平衡时的一种光。我们近似地认为同一环境下的环境光,其光强分布是均匀的,它在任何一个方向上的分布都相同。

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

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

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

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

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

21、透射光,但强度随视线V与光线的折射方向T的夹角的增大而急剧减小。这种规则透射光的光强比漫透射光强高出好多倍,在折射方向周围形成高光域,这个高光域的光强要比其周围区域要大的多。Hall用下面的式子模拟透射高光现象:,法线N,入射方向L,折射方向T,视线V,其中,It为规则透射光在视线方向的强度,Ip为入射光的强度;Kt为物体的透明系数,n为反映物体表面光泽度的常数。,4)光透射模型,综合简单光照明模型,Whitted光透射模型和Hall光透射模型,可得简单光反射透射模型(含有全局项):,其中下标i表示直接照射表面的光源,下标j表示引起折射的光源;下标ds表示漫反射,下标s表示规则反射;下标dt表

22、示漫折射,下标t表示规则折射;上标表示非光源项;L表示光源方向;N表示法线方向;R表示反射方向;V表示视线方向;T表示折射方向。,6.5 整体光照明模型,简单光照明模型虽然可以产生物体的真实感图象,但它只考虑物体对直接光照的反射作用,不能很好的模拟光的折射和阴影等,也不能用来表示物体间的相互光照明影响;而基于简单光照明模型的光透射模型,虽然可以模拟光的折射,但是这种折射的计算范围很小,不能很好的模拟多个透明体之间的复杂光照明现象。对于上述的这些问题,必须要有一个更精确的光照明模型。整体光照明模型就是这样的一种模型。在现有的整体光照明模型中,主要有光线跟踪和辐射度两种方法,它们是当今真实感图形学

23、中最重要的两个图形绘制技术,在CAD及图形学领域得到了广泛的应用。,1)光线跟踪算法,光线跟踪算法是真实感图形学中的主要算法之一,该算法具有原理简单、实现方便和能够生成各种逼真的视觉效果等突出的优点,综合考虑了光的反射、折射、阴影等。光线跟踪的基本原理:模拟理想表面的光线传播,跟踪镜面反射和折射。由光源发出的光线,经反射与折射,只有很少部分可以进入人的眼睛。因此光线跟踪算法的跟踪方向与光传播的方向是相反,是视线跟踪。由视点与象素(x,y)发出一根射线,与第一个物体相交后,在其反射与折射方向上进行跟踪。,1)由光源产生的直接的光线照射光强,是交点处的局部光强,可以由简单光照模型计算(但要考虑遮挡

24、)。2)反射方向上由其它物体引起的间接光照光强,由IsKs 计算,Is通过对反射光线的递归跟踪得到。3)折射方向上由其它物体引起的间接光照光强,由ItKt 计算,It通过对折射光线的递归跟踪得到。,光线跟踪算法的基本过程,当视线与物体表面交于点P时,点P的光分为三部分,把这三部分光强相加,就是P点处的总的光强:,两个透明球和一个非透明物体组成场景的光线跟踪,虽然在理想情况下,光线可以在物体之间进行无限次的反射和折射,但是在实际的算法进行过程中,我们不可能进行无穷的光线跟踪,因而需要给出一些跟踪的终止条件。实际应用中,可以有以下几种终止条件:该光线未碰到任何物体。该光线碰到了背景(即边界)。光线

25、经过许多次反射和折射以后,就会产生衰减。当衰减系数小于某个给定的值时,光线对于视点的光强贡献很小,这时可以停止跟踪。光线反射或折射的次数(即跟踪深度)大于给定的值。,光线跟踪终止条件,光线跟踪算法伪码:函数名为RayTracing(),光线的起点为start,光线的方向为direction,光线的衰减权值为weight,初始值为1,算法最后返回光线方向上的颜色值color。对于每一个象素点,第一次调用RayTracing()时,可以设起点start为视点,而direction为视点到该象素点的射线方向。RayTracing(start,direction,weight,color)if(wei

26、ght MinWeight)color=black;else 计算光线与所有物体的交点中离start最近的点;if(没有交点)color=black;else Ilocal=在交点处用局部光照模型计算出的光强;计算反射方向 R;RayTracing(最近的交点,R,weight*Wr,Ir);/Wr:反射方向的衰减系数 计算折射方向 T;RayTracing(最近的交点,T,weight*Wt,It);/Wt:折射方向的衰减系数 color=Ilocal+KsIr+KtIt;/Ks、Kt:该点的反射系数和透射系数/此算法只设置了两个终止条件,光线跟踪算法举例,2)辐射度方法,辐射度方法是继光线

27、跟踪算法后,真实感图形绘制技术的一个重要进展。尽管光线跟踪算法成功地模拟了景物表面间的镜面反射、规则透射及阴影等整体光照效果,但由于光线跟踪算法的采样特性,和局部光照模型的不完善性,该方法难于模拟景物表面之间的多重漫反射效果,因而不能反映色彩渗透现象(相距较近的景物表面之间的颜色辉映现象)。1984年,美国Cornell大学和日本广岛大学的学者分别将热辐射工程中的辐射度方法引入到计算机图形学中,用辐射度方法成功地模拟了理想漫反射表面间的多重漫反射效果。经过十多年的发展,辐射度方法模拟的场景越来越复杂,图形效果越来越真实。辐射度方法是基于热辐射工程的能量传递和守恒理论,即一封闭的环境中能量经多重

28、反射之后,最终会达到一种平衡状态。由于这种能量平衡状态可以用一系统方程来定量表达,因而与以往光照明模型和绘制算法不同,辐射度方法是一种整体求解技术。事实上,一旦得到辐射度系统方程的解,我们就知道了每一个景物表面的辐射度分布,进而可以选取任一视点和视线方向对整个场景作绘制。,基本概念:(1)立体角:三维空间中的立体锥角称为立体角,记为d。以立体角的顶点为球心,作一半径为r的球面,立体角的边界在球面上所截的面积ds除以半径平方表示立体角的大小:d=ds/r2(2)光亮度:发光面积微元在单位时间、单位投影面积(沿视线方向)和单位立体角向某方向(视线方向)辐射的光能称为光亮度,记为I。(3)辐射度:发

29、光面积微元在单位时间、单位面积向其四周半空间辐射的总能量,记为B。,视线方向,d,立体角,光亮度,辐射度,单位面积,辐射度与光亮度的关系:设:dP为表面某点处单位面积上朝某辐射方向d角度单位时间发出的光能,则dP与该点处的光亮度I的关系为:dP=Icosd其中为该点处的表面法线与辐射方向之间的交角。则:该点的辐射度,因此,理想漫射表面每点处的辐射度值与光亮度值之比为一常数,表面各点处的光亮度计算可以通过求解整个场景的辐射度方程而得到。,视线方向,法线方向,视线方向和法线方向,假设周围环境为一封闭系统,则表面上每一点x处微面元dS(x)向周围环境辐射的能量由它自身所具有的辐射光能和它接受来自环境

30、中其它景物表面向该点辐射后反射的光能组成。假设周围环境入射到微面元dS(x)上的光能为H(x),而 为该表面在x处的反射率,则微面元dS(x)对环境入射光的反射而产生的那部分辐射光能为:。由此,x点处的辐射度B(x)满足:,其中dA(x)为微面元dS(x)的面积,E(x)为该表面在x点处的自身辐射度,若该表面为漫射光源,E(x)0,否则,E(x)0。现在我们来考虑如何计算H(x),由H(x)的定义知,H(x)是周围环境表面各点辐射度B(x)的函数,其中xx。一般来说,x点处的微面元dS(x)向四周发射的能量中只有一部分到达x点处。若我们用F(x,x)来表示微面元dS(x)辐射并达到面元dS(x

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

32、的法线Nx与向量x-x之间的交角。由此,由微面元dS(x)发出的能量到达dS(x)的能量为:,其中dP(x)为x处单位面积朝立体角d发出的光能(光通量)。I(x)为x点处的光亮度(各向相同),x为dS(x)在x处的法向量Nx与向量x-x之间的交角。,dS(x),dS(x),Nx,Nx,由辐射度的定义可知,微面元dS(x)向四周发出的总能量为B(x)dA(x),故面元dS(x)到面元dS(x)的形状因子为:,以上推导隐含了一个假设,即微面元dS(x)与dS(x)之间是完全可见的。若dS(x)与dS(x)之间存在遮挡物,则由几何光学原理知,dS(x)入射到dS(x)上的能量为零。引进遮挡函数HID

33、(dS(x),dS(x),若遮挡,其值为0,否则为1,则形状因子的一般形式为:,由(1)、(2)、(5)可得:,此即为一般理想漫射环境的辐射度方程。该方程系统地描述了封闭环境中各景物表面在平衡状态时的光能分布。,尽管上述方程给出了景物表面辐射度函数的一般表达式,但实际应用中,该方程过于复杂,精确求解景物表面上各点的辐射度B(x)显然不切实际。为此应对(6)式作简化。我们假设景物表面被剖分成一系列互不重迭的小平面片,且各面片上的辐射度值和漫反射率均为常数。不妨假设分割后场景中景物面片数为N,第i个面片Si的辐射度为Bi,其自身拥有的辐射度为Ei,漫反射系数为i,其面积为Ai,则方程(6)应用在面

34、片Ai上,并在方程两边对Si求积分得:若记:则上式可写为:,i=1,2N(7),此即为简化后漫射环境下的辐射度系统方程。,可将(7)式写成矩阵形式:(I+M)B=E(8)其中I为NN的单位阵,,由(7)式可知,Fij恰好表达了面片Sj发出并到达面片Si的辐射能占Sj向四周辐射的总能量的比例(Si、Sj作为整体看),被称为面片Sj到面片Si的形状因子。一旦计算好形状因子,就可以通过求解方程组(7)得到个面片的辐射度的值。由于辐射度解与视点无关,一旦给定视点和视线方向,就可以用任一消隐算法来绘制场景。无论视点、视线、光源光照属性、面片漫反射系数发生改变,均无需重新计算形状因子。,漫射环境下的辐射度

35、方法可归结为如下流程图。,输入场景,将场景中的表面剖分为小平面片,计算面片间的形状因子Fij,辐射度系统方程求解,绘制并显示场景,改变光源光照属性和表面漫反射系数,改变视点或视线,表面剖分处理原则:剖分所生成面片的数量和形状不仅严重影响辐射度方法的效率,而且也会影响面片间形状因子的计算精度。在算法实现时,应尽量避免将景物表面分割成狭长的面片形状。在面片数一定的情况下,一个好的剖分算法应使这些面片均匀地分布在各景物表面上。在辐射度面片剖分算法中,一般采用正方率来衡量各面片形状的优劣。一面片的正方率定义为其内接圆半径与其外接圆半径之比。显然,面片的正方率越大(接近于1),该面片的形状越方正;若其正

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

37、凸曲面片,则有Fii=0证:可见性(4)计算:除几种简单情形外,形状因子Fij的计算公式没有精确的解析解,因而图形学中均采用数值求解技术来计算形状因子。,辐射度方程求解方程:(I+M)B=E其中I为NN的单位阵,方程组的系数矩阵为:,M为按列绝对对角占优矩阵,方程有唯一解。,绘制通过计算形状因子和求解辐射度方程,可得到每一面片的辐射度Bi。它们可用于绘制场景中的面片。由于面片之间的形状因子与视点无关,因此辐射度方程的解也与视点无关。这一性质使得辐射度的解特别适合于对视点连续变化的场景的绘制,即所谓的漫游。一般地,漫反射率对RGB三原色具有不同的数值,这时需要分别求解三组联立方程组,然后合成RG

38、B颜色。如果用Bi去直接绘制面片,每一面片按无变化的光亮度绘制,则整个景物表面的光亮度将不连续。解决的方法是:将所得的面片辐射度的值外推到周围的顶点,再用Gouraud方法显示多边形。,封闭性:辐射度方法要求有一个封闭的环境,在这个封闭环境中能量是守恒的。这个封闭环境被简化为由N个表面组成。它们可以是发光表面(如光源)、反射面或虚拟的表面(如窗户)。表面被假定为理想漫反射体、理想漫射发光体、理想漫反射体和漫射发光体的组合。将光源看作具有指定照明强度的表面。对于有向光源,首先独立地计算它对场景中表面的有向辐射;然后将受到有向辐射的各表面视作发光表面进行辐射度求解。,辐射度法举例,纹理:物体的表面

39、细节称为纹理(Texture),纹理分为两类:(1)颜色纹理:颜色或明暗度变化体现出来的表面细节,如刨光木材表面上的木纹。(2)几何纹理:由不规则的细小凹凸体现出来的表面细节,如桔子皮表面的皱纹。在真实感图形学中,可以用下列两种方法来定义纹理:(1)图象纹理:将二维纹理图案映射到三维物体表面,绘制物体表面上一点时,采用相应的纹理图案中相应点的颜色值。(2)函数纹理:用数学函数定义简单的二维纹理图案,如方格地毯;或用数学函数定义随机高度场,生成表面粗糙纹理即几何纹理。,6.6 纹理及纹理映射,图像纹理,函数纹理,纹理映射:纹理一般定义在单位正方形域(0u1,0v1)上,称为纹理空间。为了表示物体

40、的表面细节,需要进行物体坐标(x,y,z)到纹理坐标(u,v)的变换,在确定点(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+a

41、3v=b0 x+b1y+b2z+b3,几何纹理的生成:颜色纹理可以使用图像纹理和函数纹理直接生成,而几何纹理则使用一个称为扰动函数的数学函数进行定义。扰动函数通过对景物表面各采样点的位置作微小扰动来改变表面的微观几何形状。设景物表面由下述参数方程定义:则表面任一点(u,v)处的法线为:又设扰动函数为:则扰动后的表面为:且:由于扰动函数P(u,v)非常小,故上两式的最后一项可略去。这样扰动后的法向可以近似表示为:,其中:位于表面在(u,v)点的切平面上,扰动的意义明显。,扰动函数的确定:扰动函数是一标量函数,可以任意选择。可以是简单的网格图案、字符位图、Z缓冲图案,也可以是交互式绘图系统绘制的各

42、种图案。当使用离散的扰动函数时,使用差分代替微分。对表面函数的处理:景物表面几何形状的微小扰动会引起表面法向的较大变化。由于表面光亮度是景物表面法向的函数,这种法向变化会引起表面光亮度的突变,从而产生表面凹凸不平的真实感效果。通常情况下,我们并不需要将扰动函数加入最后显示的表面,而只是借助扰动函数扰动表面的法线,这时在景物的轮廓线上表现不出凸凹不平的效果;如果将扰动函数直接加入表面的法线方向,则可以产生真实的凸凹模型。两者在表现景物表面的几何纹理时效果相差不大,但在轮廓区域则完全不同。,纹理举例,Mip-Map纹理反走样技术纹理映射经常涉及将一纹理图案映射到不同大小的景物表面上。当各屏幕象素中

43、的可见曲面与纹理象素的大小相匹配时,它们之间形成一对一的映射。而当景物表面在屏幕上的投影区域较小时,位于一个屏幕象素内的曲面区域映射到纹理平面上后可能覆盖多个纹理象素,这时,若仍基于屏幕象素中心在纹理平面上作采样,由于采样点在纹理空间的变化很大,则会产生严重的走样现象。实际上应当取这一区域上纹理象素颜色的平均值作为当前象素内可见区域的平均纹理属性,Mip-Map纹理反走样技术即基于这种思想。Mip是拉丁文“multum in parvo”的缩写,意为“聚集在一块小区域内的许多东西”。Mip-Map技术保留了一幅图像的多个分辨率版本,最高版本是原始图像,低级版本的分辨率是其上级版本的1/2,其每

44、个象素是上级图像四个象素的平均值,所有版本构成了一个图像金字塔。,高,低,Mip-Map方法在确定一个屏幕象素的纹理颜色时需要计算三个参数,即屏幕象素中心在纹理平面上映射点的坐标(u,v)和屏幕象素内可见平面区域在纹理平面上所映射区域的边长d。d决定了应在哪一级分辨率的纹理图像上进行纹理采样。通常情况下,可以根据象素的四个角点在纹理平面上的对应坐标,对d进行估计:,(x,y),(x+1,y),(x+1,y+1),(x,y+1),y,x,u,v,A,B,C,D,d是一个实数,通常介于两个分辨率图像的象素边长之间,这时,首先通过插值(横向)确定象素中心在这两幅图像上的纹理颜色,再使用这两个纹理颜色

45、在两幅图像之间作线性插值(纵向),这个纹理颜色既是对应象素的纹理颜色。,Mip-Map的纹理映射过程,通过三角形三个顶点的对应坐标建立了屏幕坐标到纹理坐标的映射,三维空间,屏幕空间,纹理空间,1,1,0,Mip-Map的纹理映射过程,-d-,1,1/8,1/4,1/2,象素长度,颜色,d,作业3,使用OpenGL绘制一个立方体,要求:(1)其中的两个面使用简单颜色绘制(颜色自己定,可以是渐变色也可以是单一颜色)、两个面使用光照绘制(材料自己定)、两个面使用纹理绘制(纹理图像要求至少有一张是自己的面部特写)。(2)可以用鼠标进行图像的旋转、放大和平移。其中鼠标左键控制旋转;鼠标右键控制图像的平移

46、、鼠标滚轮控制图像的放大。旋转、放大和平移有效果就行。,计算机生成的图形是由离散点组成的数字化图像,因而生成的图形必然与真实景物之间存在误差。这种误差表现为图形上的直线或光滑的曲线呈锯齿状、彩色花纹失去原有的形态和色彩、细小物体在画面上得不到反映等等。这种现象在计算机图形学中称为图形走样(aliasing)。从信号理论来看这是由于生成图像时对真实画面的采样频率过低造成的。解决这个问题的最根本方法是用面积采样代替点采样,或者在景物的细节部分增加采样点,并使用适当的滤波器对采样信号进行处理(例如加权平均)。,6.7图形反走样技术,1)面积采样反走样,glEnable(GL_POINT_SMOOTH

47、);glEnable(GL_LINE_SMOOTH);glEnable(GL_POLYGON_SMOOTH);,原始,走样,面积反走样,2)增加采样点反走样,在使用光线跟踪方法绘制图形时,可采用象素细分技术增加采样点进行反走样。其基本思想是将发生图形走样的象素细分为四个象素,分别对子象素进行光线跟踪,若子象素仍有图形走样,则继续细分子象素直到每一子象素的光亮度都大致正确为止。最后取各子象素光亮度的加权平均即可得到整个象素的光亮度。,Procedure antialiasing(I1,I2,I3,I4,I)/I1,I2,I3,I4为当前象素或子象素四个角点的光亮度值,/I为所求的当前象素或子象素

48、的光亮度。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);Antialiasing(I41,Im,I34,I4,Id);I=(Ia+Ib+Ic+Id)/4EndEnd,I3,Im,I1,I2,I4,I12,I41,I23,I34,6.8 一些特殊效果

49、,1)雾化(fog),雾化是一种可以添加到最终图像中的简单效果,可以用于很多目的:可以提高户外场景的真实度。可以帮助场景中的观察者确定物体所在位置的远近。可以实现远平面的光滑剪裁。假设物体表面的颜色为Cs,雾的颜色为Cf,雾化因子为f,最终象素的颜色Cp,则:CpfCs(1f)Cf雾化系数f0,1,它随视点距离的增加而减少,有各种计算方法,例如:,线性雾化 指数雾化 平方指数雾化其中,Zp为象素点的Z深度,df为控制雾化浓度的参数。,2)阴影(shadow),当观察方向与光源重合时,观察者看不到任何阴影。但当两者不一致时,就会出现阴影。阴影可以表现出画面上景物的远近和相对方位,从而极大的增强画

50、面的真实感。本影与半影:阴影分为两种,本影与半影。位于中间的全黑的轮廓分明的部分称为本影。本影周围半明半暗的区域称为半影。点光源只产生本影,位于有限距离内的分布光源则同时形成本影和半影。本影是任何光线都照不到的区域,而半影区域则可接收到从分布光源来的部分光线。自身阴影和投射阴影:自身阴影是由于物体自身的遮挡而使光线照射不到它上面的某些面;投射阴影是由于物体遮挡光线,使场景中位于它后面的物体或区域受不到光照射而形成的。由于阴影与观察者的位置无关,阴影信息可以反复利用。然而除了光线跟踪算法以外,基于物体空间的图形显示方法对阴影的绘制并非易事。下面介绍两种方法:阴影体法;阴影图法,阴影体法,由一个点

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号