基于双层反射的路面湿润效果建模与仿真_第1页
基于双层反射的路面湿润效果建模与仿真_第2页
基于双层反射的路面湿润效果建模与仿真_第3页
基于双层反射的路面湿润效果建模与仿真_第4页
基于双层反射的路面湿润效果建模与仿真_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于双层反射的路面湿润效果建模与仿真

自然场景的建模和构建一直是计算机图形学研究的热点和难点之一。在不同的虚拟自然景观中,地表潮湿的影响是雨季条件下虚拟场景的真实重建不可或缺的。它在3d游戏、虚拟现实、驾驶模拟和电影技术等方面发挥着重要作用。虚拟雨场景中湿润路面的模拟涉及到比较复杂的物理机理,包括:1)当地面上有不同高度的水时,湿润地面将呈现出不同的反射效果;2)由于路面水坑的镜面反射,路边景物会在湿润地面上产生模糊的倒影;3)夜晚,有路灯和车灯时,湿润的路面上会映有憧憧的灯影,灯影往往会被拉得很长;4)凹凸不平的路面,往往会有水坑形成,此时雨滴的溅落会产生涟漪效果,而采用传统的图形学方法无法逼真地模拟地面湿润.同时,实时漫游的需求要求湿润场景的绘制必须能达到实时的速度.这些都为湿润地面的建模和绘制提出了新的要求.目前流行的3D游戏中要么没有专门绘制湿润效果,要么采用纹理映射来生成简单的湿润.国内外研究湿润模拟的工作还较少.1990年,Nakama等提出了绘制雨后湿润的路面的算法.他们根据湿润程度将路面分成不同类型,计算其不同反射,绘制出比较逼真的地面湿润效果.但是,他们的算法在绘制时采用的是经验数据,这导致参数的确定相当烦琐,同时采用光线跟踪的方法渲染整个场景,绘制速度很慢,只能用于雨后场景静态图像的生成,且无法绘制雨中的涟漪等效果.1996年,Dorsey等建立了水粒子吸收模型、沉积模型来模拟水流对材质外貌的影响,通过分析水粒子的吸收、沉积等因素,对水流过材质表面形成的效果进行了理论分析和数值模拟.1999年,Jensen等提出一种基于物理的绘制湿润材质的方法,通过菲涅耳公式计算不同情况下的反射值;但由于其绘制是基于光线跟踪技术的,仍无法满足实时的需求.前人虽然对地面湿润的物理模型和模拟进行了研究,但绘制速度都较慢,且未考虑湿润地面与环境的交互,即无法模拟湿润地面的景物倒影、灯影、涟漪等逼真效果,一些虚拟仿真系统也很少涉及湿润效果的模拟.本文从湿润效果的物理模型出发,对湿润效果及倒影、灯影、涟漪等效果进行了建模和绘制,并采用GPU加速绘制的方法,最后实时绘制不同情况下的逼真湿润效果.1湿地效果建模要逼真地模拟湿润场景,首先应进行湿润效果的物理建模.1.1反射模型的建立地面湿润时,不同地方会呈现不同的外貌,有的比较明亮,有的比较灰暗,这可以用双层反射理论来解释.由于湿润地面有一层或多或少的水层,从而在这里形成了一个由空气、水面和路面3层相邻的介质.光线在这3种介质之间将会产生双层反射,图1所示的双层反射模型不仅考虑了光线在水层表面和材质表面发生的反射,而且考虑了在水层中的折射;由于路面的材质不同、路面水层的厚度也不同,从而呈现不同的反射效果.为了简便计算,我们假定:1)水层比较浅;2)水面是平静的;3)忽略水层对光能的吸收,光线在水面无损耗地分成反射光和折射光;4)光线在材质表面被完全反射.由菲涅尔公式可计算反射率R=12(sin2(i1-i2)sin2(i1+i2)+tan2(i1-i2)tan2(i1+i2))(1)R=12(sin2(i1−i2)sin2(i1+i2)+tan2(i1−i2)tan2(i1+i2))(1)其中,i1为入射角,i2为折射角.记Rd为双层反射模型的反射率,R1为光线在水面发生第一次折射(光线由空气射入水中)时的反射率,R2为光线在水面发生第二次折射(光线由水中射入空气)时的反射率;则有Rd=R1+(1-R1)(1-R2),R1和R2的值均可由式(1)计算得出.1.2织物实际采用反射定律湿润效果之所以难以模拟,还在于湿润时常有时隐时现的景物倒影出现.倒影的模拟包括2个方面:倒影形状和位置的计算和模糊倒影的颜色绘制.对于前者,可通过反射定律,景物在湿润地面上的倒影就是被反射景物相对于反射体平面的镜像.倒影之所以时隐时现,是因为湿润的地面散射和吸收了更多的光线强度,这可以采用子面反射理论来解释.当路面材质有水湿润时,水通常会填充起材质表面上的那些空穴,从而使路面材质的平均散射角减小.由于光线在湿润路面材质中发生了更多次散射,在材质中经过了更长的路径,因此更多的光线强度被吸收,景物的倒影就变得模糊不清了.1.3光反射法制备个人信息在夜晚,灯光在湿润的路面上会有灯影出现,但由于湿润地面比较粗糙,既有漫反射又有镜面反射,一般的Phone光照模型不太适用.本文采用Torrance-Sparrow光照模型.在这种光照模型中,假设物体表面由许多细小的、朝向随机分布的微平镜面组成,当光照射到物体表面时,其反射性质由微平面的朝向分布情况、反射率以及微平面之间的相互遮蔽关系所决定.反射光强Ι=ΚaΙpa+ΚdΙpd(L⋅Ν)+ΚsΙpsDxFG(Ν⋅V)(2)其中,Ipa,Ipd和Ips分别为环境光、漫反射和镜面反射光强;Ka,Kd和Ks分别为环境光反射、漫反射和镜面反射系数;Dk为微平面斜率分布函数;V为视线方向;L为光线方向;N为物体表面的法向;G称为几何衰减因子.在湿润的路面上,由于水的影响,各微小平面的法向量均趋向于竖直向上,但路面依旧是凹凸不平的,各微小平面并不是处于一个高度上,所以灯影被拉得很长.2雨场景中路面的湿湿度根据第1.1节的模型,我们可以进行湿润效果的绘制.众所周知,路面往往是凹凸不平的,因此雨场景中路面各处的湿润状况是不同的.为了快速绘制湿润效果,我们将路面的湿润程度归为4类:干燥、湿润、浸透和水坑.对应不同类型的路面,采用不同的绘制方法.2.1路面反射率的提高对于水坑,首先采用双层反射模型来对其进行建模,对于路面上的每个采样点,采用式(1)来计算水坑表面各处的反射率.但若每帧都对水坑表面各处的反射率进行重新计算将非常耗时,为了加快计算速度,我们根据路面的特点,先预计算路面的反射率,然后将之保存在一张与路面采样率相同大小的二维表中,以在实时绘制时调用.对于能反射进入人眼的入射光,距视点水平距离D处的入射角为i1=arctan(D/H).其中,H为视点的高度,这里的入射光主要是天空光Isky.当光线在水面发生反射时,反射光接近天空光颜色;而光线在路面发生反射时,反射光接近路面颜色.对于任一点,将天空光与路面纹理以一个合适的因子相混合.对于不是水坑的湿润地面,重新计算其反射率,此时路面的反射起主体作用;然后采用与上面类似的方法来模拟.同时在湿润与水坑的交界处进行模糊处理,最后绘制出逼真的湿润效果.2.2路面灯影的生成要绘制湿润场景,还需要绘制路面上的倒影和灯影,以及下雨时湿润地面上的涟漪.对于倒影,根据反射定律计算出位置后,在上面湿润的效果上再叠加一层倒影层,即可实现倒影效果.对于倒影的颜色,可以通过子面反射理论计算倒影的光线颜色.如果经过反射后光线的衰减率为kzm,则倒影的颜色为I′w=Iw·Kzm,其中Iw为物体原始的颜色强度.对应于路面不同湿润程度的区域kzm不同,从而水坑处的倒影要比湿润处的清晰一些.夜晚的环境光是非常弱的,如果水坑表面没有灯的镜像,水坑会比周围的湿润区域都暗.对于夜晚路面灯影,按照Torrance-Sparrow光照模型来计算该路面的强度变化,将该强度叠加到路面上.对应于不同的灯光,路面将产生不同颜色的灯影效果.由于湿润常常发生在下雨天,因此下雨时地面上的涟漪也可增加湿润效果的真实感.由于采用物理的方法生成涟漪非常费时,本文采用动态纹理来生成,即通过程序生成涟漪的几张动态纹理,从左到右,半径分别为10,15,20,25和30像素.在绘制每帧时,我们都会随机地选择水坑区域的某些点,贴上涟漪的动态纹理,从而用非常小的代价表现出湿润地面上的涟漪效果.3实时图纸的实现3.1基于逆向跟踪的关系原理在进行湿润效果绘制时,由于涉及到光线的多次折射和反射,若要精确地跟踪光线的路径,可采用光线跟踪的算法.但传统的光线跟踪算法需要反复递归地跟踪通过屏幕的每一条光线,因此绘制速度较慢.为了能够实时地绘制出湿润效果,本文采用一种改进的路径跟踪算法.该算法的基本思想是:从视点出发,通过地面上每个采样点发出一条光线,按照第2.1节的原理,逆向跟踪这条光线经过湿润地面的空气、水层、路面等介质时发生多次反射和折射的传播路径;然后根据菲涅尔公式,考虑在此过程的反射、衰减和吸收,计算出经过该路径最后进入人眼的光线强度;将此光线强度转化为颜色,即得最后的湿润成像颜色.该算法只需要对路面离散采样一次绘制即可,避免了复杂的光线与景物的求交运算,同时我们可以采用自适应采样,即距离较远的路面采用较稀疏的采样,较近的采用比较密的采样,从而提高绘制速度.3.2信号和边界条件本文算法步骤如下:Step1.根据要模拟的湿润效果,初步建立一个阴雨天气场景,包括路面、树木、房屋、采用粒子系统生成空中的雨点以及采用天空盒生成的天空背景等.Step2.对待凸凹湿润地面上的每一个采样点,连接视点和该采样点形成一条光线,利用第1.1节的方法,逆向跟踪该条光线的入射光线(即天空光),从而得到经该点反射进人眼的光线路径.Step3.利用菲涅尔公式和子面反射理论等,计算经过该路径最后到达人眼的光线强度;在该光线强度上叠加倒影和灯影等光强,最后绘制湿润效果.Step4.改变不同的参数条件,如路面类型、灯光颜色等,可以实时地绘制出不同场景下的湿润效果.3.3线的路径和强度我们还进一步采用最新的GPU加速技术来进行湿润场景的加速绘制,即利用最新的显卡加速技术来加速绘制.GPU加速主要通过顶点着色器和像素着色器来进行加速.具体地,在计算光线的路径时,可以采用顶点着色器来快速计算光线的路径,即先将光线的初始坐标传入显卡,然后将跟踪光线的变化过程均放在GPU上计算.现在GPU运算已经具有了较强的可编程能力,由于避免了CPU和GPU之间的反复数据传递,同时很好地利用了GPU的并行性,可以大大地提高绘制速度.同样地,对应于路面上的每个点,可以利用像素着色器来计算光线强度;在叠加倒影和灯影等光强时,也可利用像素着色器来加速绘制.最后可以通过GPU技术来绘制灯光周围的光晕等,以增强整个场景的真实感.采用GPU技术后,场景绘制速度提高了8倍左右.4湿能图像模拟依据本文方法,我们在PⅣ2.8GHzCPU,2.0GB内存的高档微机上实现了不同湿润效果的真实感模拟,绘制场景为任一野外场景,图像大小为800×600(像素),绘制速度达到了平均28帧/s.图2~4所示为我们绘制出的湿润效果结果.其中,图2所示为一个近距离湿润效果的模拟结果与实拍照片的比较,可以看到,仿真效果还是十分逼真的.图3所示为白天湿润效果的模拟结果,可以看到,不同的地面区域呈现不同的湿润反射和折射效果,包括模糊的倒影.由于离视点越近路面反射光所占的比例越大,因此远处的水坑会显得较亮,而近处的水坑往往可以透过水面看清路面的细节.图4所示为夜晚湿润效果的模拟结果,可以看到不同情况下的班驳光影.我们可以在场景中实时交互漫游,任意观察不同的湿润效果.5模拟湿湿环境的绘制本文基于双层反射模型和子面散射模型提出一种实时渲染湿润路面的算法.该算法没有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论