计算机图形学第六章真实感图形学-课件

PPT
  • 阅读 64 次
  • 下载 0 次
  • 页数 69 页
  • 大小 1.635 MB
  • 2022-12-01 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
计算机图形学第六章真实感图形学-课件
可在后台配置第一页与第二页中间广告代码
计算机图形学第六章真实感图形学-课件
可在后台配置第二页与第三页中间广告代码
计算机图形学第六章真实感图形学-课件
可在后台配置第三页与第四页中间广告代码
计算机图形学第六章真实感图形学-课件
计算机图形学第六章真实感图形学-课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 69
  • 收藏
  • 违规举报
  • © 版权认领
下载文档30.00 元 加入VIP免费下载
文本内容

【文档说明】计算机图形学第六章真实感图形学-课件.ppt,共(69)页,1.635 MB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-77500.html

以下为本文档部分文字说明:

第六章真实感图形学真实感图形学是计算机图形学中的一个重要组成部分,它的基本要求就是在计算机中生成三维场景的真实感图象。即给定一个三维场景及其光照明条件,如何确定它在屏幕上生成的图象的每一个象素的明暗、颜色,是真实感

图形学需要解决的主要问题。目前,产生真实感图像主要有两种方式:1.基于物体空间的显示-多边形投影显示2.基于图像空间的显示-光线跟踪算法两种显示方式的比较基于物体空间的显示:这种显示方式首先将要显示的对象表示为相互连接的多边形(通常是三角形)

面片;然后通过一条所谓的图形绘制管线将每一个三角形绘制到屏幕上。当所有面片都处理完毕后,就得到了一幅完整的真实感图像。这种显示方式有图形硬件的支持,显示速度很快,通常用于交互设计。但它的真实感程度稍逊。典型应用:交互设计、游戏。基于图像空间的显示:这种显示方式逐个计算

屏幕象素点的颜色,以获得整个屏幕的图像。它采用光线跟踪算法,通过逆向跟踪通过屏幕象素的光线路径,并累加路径上光线贡献,得到该象素点的色彩。这种显示方式可以生成超真实的图像,是生成最终效果图的主要方法。典型应用:广告。6.1颜色和视觉1)基本概念颜色:

颜色是外来的光刺激作用于人的视觉器官而产生的主观感觉。物体的颜色不仅取决于物体本身,还与光源、周围环境的颜色,以及观察者的视觉系统有关系。色调、饱和度、亮度:从心理学和视觉的角度出发,颜色有如下三个特性:色调(Hue)、饱和度(Saturation)和亮度(Lightness)。色调是一种

颜色区别于其它颜色的要素,也就是我们平常所说的红、绿、蓝、紫等;饱和度是指颜色的纯度,在某种光中添加白色相当于减少该颜色的饱和度,鲜红色饱和度高,粉红色饱和度低;亮度即光的强度。主波长、纯度、明度:从光学物理学的角度出发,颜色的

三个特性分别为:主波长(DominantWavelength)、纯度(Purity)和明度(Luminance)。主波长是产生颜色的光的波长,对应于视觉感知的色调;光的纯度对应于饱和度,而明度就是光的亮度。“色调、饱和度、亮度”与“主波长、纯度、明度”是从两个

不同角度来描述颜色的特性。颜色纺锤体:色调、饱和度、亮度,可以用一个三维的颜色纺锤体来表示。颜色纺锤体的垂直轴线表示亮度变化,顶部是白色,底部是黑色,从下向上,亮度越来越大;色调由水平圆周表示,圆周上不同角度的点代表着不同色调的颜色,如红、橙、黄、绿、青、蓝、紫等,圆周中心的色调是中灰色,它

的亮度和该水平圆周上各色调的亮度相同;从圆心向圆周过渡表示同一色调下饱和度的提高。在颜色纺锤体的一个平面圆形上,它们的色调和饱和度不同,而亮度是相同的。可见光的电磁波:可见光是人的视觉系统能够感知到的电磁波,它的波长在4

00nm-700nm之间。这些电磁波使人产生了红、橙、黄、绿、青、蓝、紫等颜色的感觉。可见光可以由它的光谱能量分布P(λ)来表示,其中λ是波长,当一束可见光的各种波长的能量大致相等时为白光;否则为彩色光;若一束可见光中,只包含一种波长的电磁波,其它

波长都为零时,称其为单色光。但是,光谱与颜色的对应关系是多对一的,也就是说,具有不同光谱分布的光产生的颜色感觉是有可能一样的。这种现象称为“异谱同色”。需要采用其它颜色定义的方法,使光本身与颜色一一对应。白光的光谱能量分布彩色光的光谱能量分布单色光的光谱能量分

布可见光的光谱2)三色学说三色学说也称为三刺激理论。近代的三色学说研究认为:人眼的视网膜中存在着三种锥体细胞,第一种锥体细胞专门感受红光,第二和第三种锥体细胞则分别感受绿光和蓝光。它们三者共同作用,使人们产生了不同的颜色感觉。三色学说是真实感图形学的生理视觉基础。CIE(I

nternationalCommissiononIllumination,国际照明委员会)选取的标准红、绿、蓝三种光的波长分别为:红光,R,λ1=700nm;绿光,G,λ2=546nm;蓝光,B,λ3=435.8nm。任何光的颜色可以表示为:C=rR+gG

+bB其中权值r、g、b为需要的R、G、B三色光的相对量,即三刺激值。这个系统被称为CIE-RGB系统。标准三原色匹配任意颜色的光谱三刺激值曲线CIE-RGB系统:在CIE-RGB系统,三刺激值可能是负数。由于实际上不

存在负的光强,而且这种计算极不方便,不易理解。1931年的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色度图:把可见光色度图投影到XY平面上,所得到的马蹄形区域称为CIE色度图。马蹄形区域的边界和内部代表了所有可见光的色度值,边界弯曲部分代表了光谱在某种纯度为百分之百的色光。XYZ01113)常用颜色模型虽然色度图和三刺激值给出了

描述颜色的标准精确方法,但是,它的应用还是比较复杂的。在计算机图形学中,通常使用一些通俗易懂的颜色模型。所谓颜色模型就是指某个三维颜色空间中的一个可见光子集,它包含某个颜色域的所有颜色。颜色模型的用途是在某个颜色域内方便地指定颜色。由于每一个颜色域都是可见光的子集,所以任何一个颜色模型都

无法包含所有的可见光。RGB颜色模型通常用于彩色光栅图形设备中,是使用最多的颜色模型。它采用红、绿、蓝为原色,各个原色混合在一起可以产生复合色,被称为加色系统。通常采用单位立方体来表示。RGB三原色混合效果RGB立方体RGB颜色模型:CMY颜色模型:以红、绿、蓝的补色青(Cyan)、品红(Ma

genta)、黄(Yellow)为原色构成的CMY颜色模型,常用于从白光中滤去某种颜色,被称为减色系统。CMYK颜色模型:CMYK:Cyan青,Magenta品红,Yellow黄,blacK黑。取黑色

的根本原因是青、品红、黄三色混合常产生“灰”黑。与采用三色颜色叠印相比,使用单一颜色印刷显然更易干燥,而且黑墨水比彩色墨水便宜。在CMYK系统中,黑色被用于代替等量的青、品红、黄三色K=min(C,M.Y)

C=C-KM=M-KY=Y-K这个过程称为底色去除。XYZ系统到RGB模型的相互转换CIE的色度坐标和三刺激值给出了描述颜色的标准精确方法。由于涉及颜色的工业部门都各有一套颜色描述的规则和惯例。采用CIE色度坐标有助于这些工业部门之间颜色信息的传递和转换。因此从CIE坐标值到另

一种颜色系统的变换及逆变换是引人关注的研究课题。计算机图形学需要在CIEXYZ系统和RGB加色系统之间进行转换。由RGB颜色空间至CIEXYZ颜色空间的变换为其中Xr、Yr、Zr为生成单位量的R原色所需要的三刺激值,Xg、Yg、Zg以及Xb、Yb、Zb类同

。只要将RGB颜色模型的三个分量带入,就可以得到在CIEXYZ系统中的三刺激值。BGRZZZYYYXXXZYXbgrbgrbgr6.2光照明模型当光照射到物体表面时,光线可能被吸收、反射和透

射。被物体吸收的部分转化为热,反射、透射的光进入人的视觉系统,使我们能看见物体。为模拟这一现象,需要建立一些数学模型来替代复杂的物理模型,这些模型被称为明暗效应模型或者光照明模型。三维物体的图形经过消隐后,再进行明暗效应的处理,可以进一步提

高图形的真实感。1)光的传播在正常的情况下,光沿着直线传播,当光遇到介质不同的表面时,会产生反射和折射现象,而且在反射和折射的时候,遵循反射定律和折射定律。(1)反射定律:入射角等于反射角,且反射光线、入射光线与法向量在同一平面上。(2)折射定律:折射角与入射角满

足,η1/η2=sinφ/sinθ且折射线在入射线与法线构成的平面上,η1、η2为两种介质的折射率。(3)能量关系:在光的反射和折射现象中,能量是守恒的,能量的分布情况满足:Ii=Id+Is+It+Iv其中:Ii为入射光强,由光源引起;Id为漫反射光强,由表面不光滑引起;Is为镜面

反射光强,由表面光滑性引起;It为透射光,由物体的透明性引起;Iv为被物体所吸收的光,由能量损耗引起。6.3简单光照明模型简单光照明模型模拟物体表面对光的反射作用。光源被假定为点光源,反射作用被细分为镜面反射

(SpecularReflection)和漫反射(DiffuseReflection)。简单光照明模型只考虑物体对直接光照的反射作用,而物体间的光反射作用,只用环境光(AmbientLight)来表示。漫反射由表面的粗糙不平引起,它均匀地向各方向传播,与视点无关。记入

射光强为Ip,物体表面上点P的法向为N,从点P指向光源的向量为L,两者间的夹角为θ,则漫反射光强为:Id=Ip*Kd*cos(θ)θ∈(0,π/2)其中,Kd是与物体有关的漫反射系数,0<Kd<1。当L、N为单位向量时:Id=Ip*Kd*(L·N)在有多个

光源的情况下,有如下表示:Id=Kd∑Ipi*(Li·N)在RGB颜色模型下,漫反射系数Kd有三个分量Kdr,Kdg,Kdb分别代表RGB三原色的漫反射系数,它们是反映物体的颜色的,通过调整它们,可以改变物体的颜色。同样,我们也可以把入射光强I设为三个分

量Ir,Ig,Ib,通过这些分量的值来调整光源的颜色。PNLθ1)理想漫反射对于理想镜面,反射光集中在一个方向,并遵守反射定律。对一般的光滑表面,反射光集中在一个范围内,且由反射定律决定的反射方向光强最大。因此,对于

同一点来说,从不同位置所观察到的镜面反射光强是不同的。镜面反射光强可表示为:Is=Ip*Ks*cosn(α),α∈(0,π/2)其中Ks是与物体有关的镜面反射系数,α为视线方向V与反射方向R的夹角,n为反射指数,反映了物体表面的光泽

程度,一般为1~2000,数目越大物体表面越光滑。镜面反射光会在反射方向附近形成很亮的光斑,称为高光现象。同样,将V和R都格式化为单位向量,镜面反射光强可表示为:Is=Ip*Ks*(R·V)n对多个光源的情形,镜面反射光强可表示为:Is=Ks∑[Ip

i(Ri·V)n]镜面反射光产生的高光区域只反映光源的颜色,镜面反射系数Ks是一个与物体的颜色无关的参数(与光洁程度有关)。综合前面已经提到的,在简单光照明模型中,我们只能通过改变物体的漫反射系数来控制物体的颜

色。2)镜面反射环境光是指光源间接对物体的影响,是在物体和环境之间多次反射,最终达到平衡时的一种光。我们近似地认为同一环境下的环境光,其光强分布是均匀的,它在任何一个方向上的分布都相同。例如,透过厚厚云层的阳光就

可以称为环境光。在简单光照明模型中,我们用一个常数来模拟环境光:Ie=Ia·Ka其中:Ia为环境光的光强,Ka为物体对环境光的反射系数。3)环境光4)Phong光照明模型综合上面介绍的光反射作用的各个部分,Phong光照明模型有这样的一个表述:由

物体表面上一点P反射到视点的光强I为环境光的反射光强Ia、理想漫反射光强Id、和镜面反射光Is的总和,即:nspdpaaVRKINLKIKII在用Phong模型进行真实感图形计算时,对物体表面上的每个点P,均需计算光线的反射方向R,再由V计算(

R·V)。为减少计算量,我们可以作如下假设:a)光源在无穷远处。即光线方向L为常数;b)视点在无穷远处,即视线方向V为常数;c)用(H·N)近似(R·V)。这里H为L和V的平分向量,H=(L+V)/|L+V|。在这种简化下,由于对所有的

点总共只计算一次H的值(N总是需要计算的),节省了计算时间。OpenGL对多边形的处理:多边形顶点颜色使用Phone光照明模型计算,多边形的填充使用Gouraud明暗模式。Gouraud明暗模式:首先,通过顶点线性插值多边形边界象素的颜色;其次,通过扫描线与边界

的交点线性插值多边形内部象素颜色。缺点:不够细致,对较大的多边形最好进行分解!6.4光透射模型对于透明(transparency)或半透明的物体,在光线与物体表面相交时,一般会产生反射与折射(refraction),经折射后的光线将

穿过物体而在物体的另一个面射出,形成透射光。如果视点在折射光线的方向上,就可以看到透射光。1)透明效果的简单模拟颜色调和法:该方法不考虑透明体对光的折射以及透明物体本身的厚度,光通过物体表面是不会改变方

向的,故可以模拟平面玻璃。设t是物体的透明度,t=0表示物体是不透明体;t=1表示物体是完全透体。我们所看到的颜色,是物体表面的颜色和透过物体的背景颜色的叠加。设过象素点(x,y)的视线与物体相交处的颜色(或光强)为Ia,视线穿过物体与另一不透明

物体相交处的颜色(或光强)为Ib,则象素点(x,y)的颜色(或光强)可由如下颜色调和公式计算:I=t*Ib+(1-t)*Ia其中,Ia和Ib可由简单光照明模型计算。由于未考虑透射光的折射,以及透明物体的厚度,颜色调和法只能模

拟玻璃的透明或半透明效果。2)Whitted光透射模型其中It’和Is’分别为折射方向和反射方向的入射光强度(非光源);Kt’和Ks’分别为透射系数和反射系数,都是0-1之间的常数,取决于物体的材质。Ks和Ks’可以相同。这一模型于1980年由Whitted提出,并第一次给出了使用此模型的光线跟踪

算法范例。NθφθVIsItIp在简单光照明模型的基础上,加上透射光项就得到Whitted光透射模型:再加上镜面反射光项,就得到Whitted整体光照模型:''ttnspdpaaKIVRKINLKIKII''''ssttnspdpaaKI

KIVRKINLKIKII3)Hall光透射模型Hall光透射模型是在Whitted光透射模型的基础上推广而来的。实际上,就是在Whitted模型的光强计算中加入光源引起的漫透射和规则透射。透明体的粗糙表面对透射光的作用表现为漫透射。如毛玻璃表面即为漫透射面。当光线

透过这样的表面射出时,光线将向各个方向散射。对理想漫透射面,透射光的光强在各个方向均相等。用Lambert余弦定律描述点P处的漫透射光的光强为:LNKIIdtpdt其中Ip为入射光的强度,Kdt为物体的漫透射系数,在0与1之间。L为入射光的方向,N为面

法线(-N为背面法线)。法线N入射方向L对于理想的透明介质,只有在光线的折射方向才能见到透射光,其他方向均见不到。对非理想透明物体,视点在透射方向附近也能见到部分透射光,但强度随视线V与光线的折射方向T的夹角的增大而急剧减小。这种规则透射光的光强

比漫透射光强高出好多倍,在折射方向周围形成高光域,这个高光域的光强要比其周围区域要大的多。Hall用下面的式子模拟透射高光现象:法线N入射方向L折射方向T视线VntptVTKII其中,It为规则透射光在视线方向的强度

,Ip为入射光的强度;Kt为物体的透明系数,n为反映物体表面光泽度的常数。4)光透射模型综合简单光照明模型,Whitted光透射模型和Hall光透射模型,可得简单光反射透射模型(含有全局项):''''ssttjntjdtpjinsidspi

aaKIKIVTKLNKIVRKNLKIKIIts其中下标i表示直接照射表面的光源,下标j表示引起折射的光源;下标ds表示漫反射,下标s表示规则反射;下标dt表示漫折射,

下标t表示规则折射;上标’表示非光源项;L表示光源方向;N表示法线方向;R表示反射方向;V表示视线方向;T表示折射方向。6.5整体光照明模型简单光照明模型虽然可以产生物体的真实感图象,但它只考虑物体对

直接光照的反射作用,不能很好的模拟光的折射和阴影等,也不能用来表示物体间的相互光照明影响;而基于简单光照明模型的光透射模型,虽然可以模拟光的折射,但是这种折射的计算范围很小,不能很好的模拟多个透明体之间的复杂光照明现象。对于上述的这些问题,必须

要有一个更精确的光照明模型。整体光照明模型就是这样的一种模型。在现有的整体光照明模型中,主要有光线跟踪和辐射度两种方法,它们是当今真实感图形学中最重要的两个图形绘制技术,在CAD及图形学领域得到了广泛的应用。1)光线跟踪算法光线跟

踪算法是真实感图形学中的主要算法之一,该算法具有原理简单、实现方便和能够生成各种逼真的视觉效果等突出的优点,综合考虑了光的反射、折射、阴影等。光线跟踪的基本原理:模拟理想表面的光线传播,跟踪镜面反射和折射。由光源发出的光线,经反射与折射,只有很少部分可以进入人的

眼睛。因此光线跟踪算法的跟踪方向与光传播的方向是相反,是视线跟踪。由视点与象素(x,y)发出一根射线,与第一个物体相交后,在其反射与折射方向上进行跟踪。1)由光源产生的直接的光线照射光强,是交点处的局部光强,可以由

简单光照模型计算(但要考虑遮挡)。2)反射方向上由其它物体引起的间接光照光强,由IsKs'计算,Is通过对反射光线的递归跟踪得到。3)折射方向上由其它物体引起的间接光照光强,由ItKt'计算,It通过对折射光线的递归跟踪得到。光线跟踪算法的基本过程当视线与物

体表面交于点P时,点P的光分为三部分,把这三部分光强相加,就是P点处的总的光强:两个透明球和一个非透明物体组成场景的光线跟踪虽然在理想情况下,光线可以在物体之间进行无限次的反射和折射,但是在实际的算法进行过程中,我们不可能进行无穷的光线跟踪,因而需要给出一些跟踪的

终止条件。实际应用中,可以有以下几种终止条件:①该光线未碰到任何物体。②该光线碰到了背景(即边界)。③光线经过许多次反射和折射以后,就会产生衰减。当衰减系数小于某个给定的值时,光线对于视点的光强贡献很小,这时可以停止跟踪。④光线反射或折射的次数(即跟踪深度)大于给定的值。光线跟踪终止条件

光线跟踪算法伪码:函数名为RayTracing(),光线的起点为start,光线的方向为direction,光线的衰减权值为weight,初始值为1,算法最后返回光线方向上的颜色值color。对于每一个

象素点,第一次调用RayTracing()时,可以设起点start为视点,而direction为视点到该象素点的射线方向。RayTracing(start,direction,weight,color){if(wei

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+Ks·Ir+Kt·It;//Ks、Kt:该点的反射系数和透射系数}}}//此算法只设置了两个终止条件光线

跟踪算法举例2)辐射度方法辐射度方法是继光线跟踪算法后,真实感图形绘制技术的一个重要进展。尽管光线跟踪算法成功地模拟了景物表面间的镜面反射、规则透射及阴影等整体光照效果,但由于光线跟踪算法的采样特性,和局部光照模型的不完善性,该方法难于模拟景物表面之间的多重漫反

射效果,因而不能反映色彩渗透现象(相距较近的景物表面之间的颜色辉映现象)。1984年,美国Cornell大学和日本广岛大学的学者分别将热辐射工程中的辐射度方法引入到计算机图形学中,用辐射度方法成功地模拟了理想漫反射表面间的多重漫反射效果。经过十多年的发展,辐射度方法模拟的场景越

来越复杂,图形效果越来越真实。辐射度方法是基于热辐射工程的能量传递和守恒理论,即一封闭的环境中能量经多重反射之后,最终会达到一种平衡状态。由于这种能量平衡状态可以用一系统方程来定量表达,因而与以往光照明模型和绘制算法不同,辐射度方法是一种整体求解技术。事实上,一旦得到辐射度系统方程的解,我们

就知道了每一个景物表面的辐射度分布,进而可以选取任一视点和视线方向对整个场景作绘制。基本概念:(1)立体角:三维空间中的立体锥角称为立体角,记为dω。以立体角的顶点为球心,作一半径为r的球面,立体角的边界在球面上所截的面积ds除以半径平方表示立体角的大小:dω=ds

/r2(2)光亮度:发光面积微元在单位时间、单位投影面积(沿视线方向)和单位立体角向某方向(视线方向)辐射的光能称为光亮度,记为I。(3)辐射度:发光面积微元在单位时间、单位面积向其四周半空间辐射的总能量,记为B。视线方向d

ω立体角光亮度辐射度单位面积辐射度与光亮度的关系:设:dP为表面某点处单位面积上朝某辐射方向dω角度单位时间发出的光能,则dP与该点处的光亮度I的关系为:dP=Icosθdω其中θ为该点处的表面法线与辐射方向之间的交角。则:该点的辐射度IddIdIdPB

2020sincoscos因此,理想漫射表面每点处的辐射度值与光亮度值之比为一常数,表面各点处的光亮度计算可以通过求解整个场景的辐射度方程而得到。视线方向法线方向θ视线方向和法线方向假设周围环境为一封闭系统,则表面上每一点x处微面元dS(x)向周围环境

辐射的能量由它自身所具有的辐射光能和它接受来自环境中其它景物表面向该点辐射后反射的光能组成。假设周围环境入射到微面元dS(x)上的光能为H(x),而为该表面在x处的反射率,则微面元dS(x)对环境入射光的反射而产生的那部分辐射光能为:。由此,x点处的辐射度B(x)满足:)(x)()(x

Hx(1))()()()()()(xHxxdAxExdAxB其中dA(x)为微面元dS(x)的面积,E(x)为该表面在x点处的自身辐射度,若该表面为漫射光源,E(x)>0,否则,E(x)=0。现在我们来考虑如何计算H(x),由H(x)的定

义知,H(x)是周围环境表面各点辐射度B(x’)的函数,其中x’≠x。一般来说,x‘点处的微面元dS(x’)向四周发射的能量中只有一部分到达x点处。若我们用F(x’,x)来表示微面元dS(x’)辐射并达到面元dS(x)的光能占它向四周辐射的总能量的比例,则dS(x

’)对x的入射光能为:。其中dA(x’)为微面元dS(x’)的面积。由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处的法线Nx与向量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’)NxNx’x'x由辐射度的定义可知,微面元dS(x’)向四周发出的总能量为B(x’)dA(x’),故面元dS(x’)到面元dS(x)的形状因子为:(4))()'

,(coscoscos)'()'()'()'(),'(2''xdAxxrdxdAxBxdAxdPxxFxxx以上推导隐含了一个假设,即微面元dS(x)与dS(x’)之间是完全可见的。若dS(x)与dS(x’)之间存在遮挡物,则由几何光学原理知

,dS(x‘)入射到dS(x)上的能量为零。引进遮挡函数HID(dS(x),dS(x’)),若遮挡,其值为0,否则为1,则形状因子的一般形式为:(5))()',(coscos))'(),((),'(2'xdAxxrxdSxdSHIDxxFxx由(1)、(2)、(5)可得:(6))'())

'(),(()',(coscos)'()()()(2'xdAxdSxdSHIDxxrxBxxExBxxS此即为一般理想漫射环境的辐射度方程。该方程系统地描述了封闭环境中各景物表面在平衡状态时的光能分布。尽管上述方程给出了景物表面辐射度函数的一般表达式,但实际应用中,该方

程过于复杂,精确求解景物表面上各点的辐射度B(x)显然不切实际。为此应对(6)式作简化。我们假设景物表面被剖分成一系列互不重迭的小平面片,且各面片上的辐射度值和漫反射率均为常数。不妨假设分割后场景中景物面片数为N,第i个面片Si的辐射度为Bi,其自身拥

有的辐射度为Ei,漫反射系数为ρi,其面积为Ai,则方程(6)应用在面片Ai上,并在方程两边对Si求积分得:若记:则上式可写为:,i=1,2···N(7)NjSSxxjiiiiiijxdAxdAxdSxdSHIDxxrBAEAB12')()'())'(),(()',(cosc

osN1jijjiiiFBEBijSSxxiijxdAxdAxdSxdSHIDxxrAF)()'())'(),(()',(coscos12'此即为简化后漫射环境下的辐射度系统方程。可将(

7)式写成矩阵形式:(I+M)B=E(8)其中I为N×N的单位阵,TNTNNNNNNNNNNEEEEBBBBFFFFFFFFFM),,,(),,,(2121212222221211121111由(7

)式可知,Fij恰好表达了面片Sj发出并到达面片Si的辐射能占Sj向四周辐射的总能量的比例(Si、Sj作为整体看),被称为面片Sj到面片Si的形状因子。一旦计算好形状因子,就可以通过求解方程组(7)得到个面片的辐射度的值。由于辐射度解与视点无关

,一旦给定视点和视线方向,就可以用任一消隐算法来绘制场景。无论视点、视线、光源光照属性、面片漫反射系数发生改变,均无需重新计算形状因子。漫射环境下的辐射度方法可归结为如下流程图。输入场景将场景中的表面剖

分为小平面片计算面片间的形状因子Fij辐射度系统方程求解绘制并显示场景改变光源光照属性和表面漫反射系数改变视点或视线表面剖分处理原则:剖分所生成面片的数量和形状不仅严重影响辐射度方法的效率,而且也会影响面片间形状因子的计算精度。在算法实现时,应尽量避免将景物表面

分割成狭长的面片形状。在面片数一定的情况下,一个好的剖分算法应使这些面片均匀地分布在各景物表面上。在辐射度面片剖分算法中,一般采用正方率来衡量各面片形状的优劣。一面片的正方率定义为其内接圆半径与其外接圆半径之比。显然,面片的正方率越大(接近于1),该面片的形状

越方正;若其正方率接近于零,则面片呈狭长的形状。由于我们事先并不知道各景物表面上辐射度函数的变化规律,因而无法准确预测应在景物表面的哪些区域分得细一些,在哪些区域分得细一些。一个折中的方案是先对表面作均匀剖分来生成初始面片,并尽可能使各面片的正方率大一

些。当然,这可能与后面计算得到的表面辐射度分布不相吻合。但经对初始面片继续作递归细分,可生成所需的非均匀网格。正方率=0.3正方率=0.5形状因子Fij的计算:(1)Fij和Fji满足下列交换关系:AiFij=A

jFji证:(2)对封闭环境有:证:Fij为面片Sj发出并到达面片Si的辐射能占Sj向四周辐射的总能量的比例,100%=1。(3)若面片Si为一平面片或凸曲面片,则有Fii=0证:可见性(4)计算:除几种简单情形外,形状因子

Fij的计算公式没有精确的解析解,因而图形学中均采用数值求解技术来计算形状因子。ijSSxxiijxdAxdAxdSxdSHIDxxrAF)()'())'(),(()',(coscos12'NiijF11辐射度方程求解方程:(I+M)B=E其中I为N×N的单位阵TNTNN

NNNNNNNNEEEEBBBBFFFFFFFFFM),,,(),,,(2121212222221211121111方程组的系

数矩阵为:NNNNNNNNNFFFFFFFFFM111'212222221211121111M‘为按列绝对对角占优矩阵,方程有唯一解。绘制通过计

算形状因子和求解辐射度方程,可得到每一面片的辐射度Bi。它们可用于绘制场景中的面片。由于面片之间的形状因子与视点无关,因此辐射度方程的解也与视点无关。这一性质使得辐射度的解特别适合于对视点连续变化的场景的绘制,即所谓的漫游。一般地,漫反射率ρ对RGB三原色具有不同的数值,

这时需要分别求解三组联立方程组,然后合成RGB颜色。如果用Bi去直接绘制面片,每一面片按无变化的光亮度绘制,则整个景物表面的光亮度将不连续。解决的方法是:将所得的面片辐射度的值外推到周围的顶点,再用Gouraud方法显示多边形。封闭性:辐射度方法要求有一个封闭的环

境,在这个封闭环境中能量是守恒的。这个封闭环境被简化为由N个表面组成。它们可以是发光表面(如光源)、反射面或虚拟的表面(如窗户)。表面被假定为理想漫反射体、理想漫射发光体、理想漫反射体和漫射发光体的组合。将光源看作具有指

定照明强度的表面。对于有向光源,首先独立地计算它对场景中表面的有向辐射;然后将受到有向辐射的各表面视作发光表面进行辐射度求解。辐射度法举例纹理:物体的表面细节称为纹理(Texture),纹理分为两类:(1)颜色纹理:颜色或明暗度变化体现出来的表面细节,

如刨光木材表面上的木纹。(2)几何纹理:由不规则的细小凹凸体现出来的表面细节,如桔子皮表面的皱纹。在真实感图形学中,可以用下列两种方法来定义纹理:(1)图象纹理:将二维纹理图案映射到三维物体表面,绘制物体表面上一点时,采用相应的纹理图案中相

应点的颜色值。(2)函数纹理:用数学函数定义简单的二维纹理图案,如方格地毯;或用数学函数定义随机高度场,生成表面粗糙纹理即几何纹理。6.6纹理及纹理映射图像纹理函数纹理的最大整数表示小于其中:为偶数为奇数xx881880)

,(vuvuvug纹理映射:纹理一般定义在单位正方形域(0≤u≤1,0≤v≤1)上,称为纹理空间。为了表示物体的表面细节,需要进行物体坐标(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=a0x+a1y+a2z+a3v=b0x+b1y+b2z+b3几何纹理的生成

:颜色纹理可以使用图像纹理和函数纹理直接生成,而几何纹理则使用一个称为扰动函数的数学函数进行定义。扰动函数通过对景物表面各采样点的位置作微小扰动来改变表面的微观几何形状。设景物表面由下述参数方程定义:则表面任一点(u,v)处的法线为:又设扰动函数为:则

扰动后的表面为:且:由于扰动函数P(u,v)非常小,故上两式的最后一项可略去。这样扰动后的法向可以近似表示为:),(vuQQ),(vuP),(),(),(),(),(vuvuvuvuvuvuvuQQQQNNvvvvuuuuPPPPNNQQ'NNQQ'NQQ'

),(),(vuPvuDNNQQNQQQ'Q'N')()(uvvuvuvuPP其中:位于表面在(u,v)点的切平面上,扰动的意义明显。)()(NQQNDuvvuPP扰动函数的确定:扰动函数是一

标量函数,可以任意选择。可以是简单的网格图案、字符位图、Z缓冲图案,也可以是交互式绘图系统绘制的各种图案。当使用离散的扰动函数时,使用差分代替微分。对表面函数的处理:景物表面几何形状的微小扰动会引起表面法向的较大变化。由于表面光亮度是景物表面法向的函数,这种法向变化会引

起表面光亮度的突变,从而产生表面凹凸不平的真实感效果。通常情况下,我们并不需要将扰动函数加入最后显示的表面,而只是借助扰动函数扰动表面的法线,这时在景物的轮廓线上表现不出凸凹不平的效果;如果将扰动函数直接加入表面的法线方向,则可以产生真实的凸凹模型。两者在表现景物表面的几何纹理时效果相差不大,

但在轮廓区域则完全不同。纹理举例Mip-Map纹理反走样技术纹理映射经常涉及将一纹理图案映射到不同大小的景物表面上。当各屏幕象素中的可见曲面与纹理象素的大小相匹配时,它们之间形成一对一的映射。而当景物表面在屏幕上的投影区域较小时,位于一个屏幕象素内的曲面区域映射到纹理平面上后可能覆

盖多个纹理象素,这时,若仍基于屏幕象素中心在纹理平面上作采样,由于采样点在纹理空间的变化很大,则会产生严重的走样现象。实际上应当取这一区域上纹理象素颜色的平均值作为当前象素内可见区域的平均纹理属性,Mip-Map纹理反走样技术即基于这种思想。Mip

是拉丁文“multuminparvo”的缩写,意为“聚集在一块小区域内的许多东西”。Mip-Map技术保留了一幅图像的多个分辨率版本,最高版本是原始图像,低级版本的分辨率是其上级版本的1/2,其每个象素是上级图像四个象素的平均值

,所有版本构成了一个图像金字塔。高低Mip-Map方法在确定一个屏幕象素的纹理颜色时需要计算三个参数,即屏幕象素中心在纹理平面上映射点的坐标(u,v)和屏幕象素内可见平面区域在纹理平面上所映射区域的边长d。d决定了应在哪一级分辨率的纹理图像上进行纹理采样。通常情况

下,可以根据象素的四个角点在纹理平面上的对应坐标,对d进行估计:(x,y)(x+1,y)(x+1,y+1)(x,y+1)yxuvABCDd是一个实数,通常介于两个分辨率图像的象素边长之间,这时,首先通过插值(横向)确定象素中心在这两幅图像上的纹理颜色,再使用这两个纹理颜色在两幅图

像之间作线性插值(纵向),这个纹理颜色既是对应象素的纹理颜色。Mip-Map的纹理映射过程通过三角形三个顶点的对应坐标建立了屏幕坐标到纹理坐标的映射三维空间屏幕空间纹理空间110Mip-Map的纹理映射过程-d-11/81/41/2象素长度颜色d作业3使用OpenG

L绘制一个立方体,要求:(1)其中的两个面使用简单颜色绘制(颜色自己定,可以是渐变色也可以是单一颜色)、两个面使用光照绘制(材料自己定)、两个面使用纹理绘制(纹理图像要求至少有一张是自己的面部特写)。(2)可以用鼠标进行图像的旋转、放大和平移。

其中鼠标左键控制旋转;鼠标右键控制图像的平移、鼠标滚轮控制图像的放大。旋转、放大和平移有效果就行。计算机生成的图形是由离散点组成的数字化图像,因而生成的图形必然与真实景物之间存在误差。这种误差表现为图形上的直线或光滑的曲线呈锯齿状、彩色花纹失去原有的形态和色彩、细小物体在画面上得不到反映等等

。这种现象在计算机图形学中称为图形走样(aliasing)。从信号理论来看这是由于生成图像时对真实画面的采样频率过低造成的。解决这个问题的最根本方法是用面积采样代替点采样,或者在景物的细节部分增加采样点,并使用适当的滤波器对采样信号进行处理(例如加权平均)。6.7图形

反走样技术1)面积采样反走样glEnable(GL_POINT_SMOOTH);glEnable(GL_LINE_SMOOTH);glEnable(GL_POLYGON_SMOOTH);原始走样面积反走样2)增加采

样点反走样在使用光线跟踪方法绘制图形时,可采用象素细分技术增加采样点进行反走样。其基本思想是将发生图形走样的象素细分为四个象素,分别对子象素进行光线跟踪,若子象素仍有图形走样,则继续细分子象素直到每一子象素的光亮度都大致正确为止。最后取各子象

素光亮度的加权平均即可得到整个象素的光亮度。Procedureantialiasing(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);Antialiasing(I41,Im,I34,I4,Id);I=(Ia+Ib+Ic+Id)/4EndEndI3ImI1I2I4I12I41I23I346.8一些特殊效果1)雾化(fog)雾化是一种可以添

加到最终图像中的简单效果,可以用于很多目的:①可以提高户外场景的真实度。②可以帮助场景中的观察者确定物体所在位置的远近。③可以实现远平面的光滑剪裁。假设物体表面的颜色为Cs,雾的颜色为Cf,雾化因子为f,最终象素的颜色Cp,则:Cp=f·Cs+(1-f)·Cf雾化系数f∈[0,1],它随视点

距离的增加而减少,有各种计算方法,例如:startendpendZZZZfpfZdef2pfZdef线性雾化指数雾化平方指数雾化其中,Zp为象素点的Z深度,df为控制雾化浓度的参数。2)阴影(shadow)当观察方向与光

源重合时,观察者看不到任何阴影。但当两者不一致时,就会出现阴影。阴影可以表现出画面上景物的远近和相对方位,从而极大的增强画面的真实感。本影与半影:阴影分为两种,本影与半影。位于中间的全黑的轮廓分明的部分称为本影。本影周围半明半暗的区

域称为半影。点光源只产生本影,位于有限距离内的分布光源则同时形成本影和半影。本影是任何光线都照不到的区域,而半影区域则可接收到从分布光源来的部分光线。自身阴影和投射阴影:自身阴影是由于物体自身的遮挡而使光线照射不到它上面的某些面;投射阴影是由于物体遮挡光线,使场景中位于它后面的物体或区域受不到光照

射而形成的。由于阴影与观察者的位置无关,阴影信息可以反复利用。然而除了光线跟踪算法以外,基于物体空间的图形显示方法对阴影的绘制并非易事。下面介绍两种方法:①阴影体法;②阴影图法阴影体法由一个点光源和一个三角形可以生成一个无限大的阴影体。落在这个阴影体中的物体,

就处于阴影中。假设正在对场景进行观察,同时跟踪一条通过某个象素点的光线,直到这条光线碰到屏幕上显示的某个物体。在对光线进行跟踪的过程中,如果这条射线穿过了阴影体的一个正面(朝向视点的一个面),则计数器加1。如果这条射线穿过了阴影体的一个背面(背向视点的一个面),则计数器减1。如果最终计数器的数值

大于0,则说明这个象素处于阴影中,否则处于阴影之外。注:三角形本身不用考虑,因为这里它只能是不透明的,它后面的物体会被它遮住。AB续前页通过巧妙使用模板缓冲器,可以将阴影投射到任意形状的物体上:第一步,将模板缓冲器清

空。第二步,只使用环境光和自发光,对场景进行绘制,得到帧缓冲器中的图像和深度缓冲器中的深度。第三步,关闭帧缓冲器和深度缓冲器,但启动深度比较,打开模板缓冲器。在模板缓冲器中绘制出所有阴影体的正向多边形。每绘制一个多边形,就使模板缓冲器的数值增加1。第四

步,在模板缓冲器中绘制出所有阴影体的背向多边形。每绘制一个多边形,就使模板缓冲器的数值减少1。(模板不能用颜色绘图)第五步,关闭模板缓冲器,但启用模板,打开帧缓冲器。打开并清空深度缓冲,启用深度比较,在帧缓冲器中对整个场景再次进行绘制,但只绘制模板缓冲器中数值

为0的象素。演示阴影图法这种方法的主要思想是使用Z缓冲器算法,从投射阴影的光源位置对整个场景进行绘制。这时,对于Z缓冲器的每一个象素,它的z深度值包括了这个象素到距离光源最近点的物体的距离。一般将Z缓冲器中的整个内容

称为阴影图(ShadowMap),有时候也称为阴影深度图。为了使用阴影图,需要对场景进行二次绘制,不过这次是从视点的角度来进行的。在对每个图元进行绘制的时候,将它们的位置与阴影图进行比较,如果绘制点距离光源比阴影图中的数值还要远,那么这个点就在阴影中,否则就不在阴影中。这种做法与深

度测试的思想类似,只不过这里是光源计算深度而不是从视点。光源视点abVaVb续前页高版本的OpenGL对这种方法提供了支持。其实现过程可以简单描述为(参见:OpenGLProgrammingGuideSixthEdition):首先:以光源为视点对场景进行第

一次绘制。本次生成的图像并不重要,关键是取得其Z缓冲中生成的阴影图,并将其制作成纹理。其次:从视点对场景进行第二次绘制。在绘制过程中为所有像素点计算其三维纹理坐标,计算方法与生成纹理的方法相同。这时,如果某像素

的第三纹理坐标小于纹理中的灰度,则该像素不在阴影中,其颜色就是光照的颜色;反之则在阴影中,其颜色为零。这种方法的优点是可以使用一般用途的图形硬件(纹理贴图硬件)对任意的阴影进行绘制(但软件版本要高);缺点是阴

影质量与阴影图的象素分辨率有很大关系,同时也依赖于Z缓冲器的数值精度。3)粒子系统粒子系统是一组分散的微小物体集合,其中的这些微小物体按照某种算法运动,实际应用包括模拟火焰、烟、爆炸、流水、树木、旋转星系和其它一些自然现象。这种方法的思想

是在粒子的生命周期内控制它的产生、运动、变化和消失。每个粒子可以是屏幕上的一个单独点,也可以用一个布告版来表示。布告版(billboard)就是一个方向始终朝向视点的多边形,在绘制这个多边形时可以使用透明纹理技术。演示

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?