基于虚拟现实技术的动态水面仿真方法研究

2012-02-15 20:34冯玉芬
唐山师范学院学报 2012年2期
关键词:纹理水面虚拟现实

冯玉芬

(唐山师范学院 数学与信息科学系,河北 唐山 063000)

计算机科学与技术研究

基于虚拟现实技术的动态水面仿真方法研究

冯玉芬

(唐山师范学院 数学与信息科学系,河北 唐山 063000)

在虚拟现实系统设计中,真实自然的动态水面效果可增强场景的逼真感,使虚拟环境更加绚丽。而水面动态模拟的关键技术是在水面的真实感、实时渲染速度、计算机软硬件资源需求及实现虚拟现实系统难易度等几个方面寻求平衡。提出利用层次细节技术,采用动态纹理映射、波动水面的物理模型并结合材质贴图方法,实现具有反射、折射等效果的流动水面。该方法应用于室外景观等环境表现中,使水面效果更逼真、计算复杂度减小、设计和实现更简洁方便。

动态水面;动态纹理;水面模型;层次细节

1 引言

室外虚拟现实系统中,离不开对自然环境的模拟,为了增加自然环境的真实感,虚拟场景中需要添加自然现象,其中水面模拟是虚拟现实技术研究的热点和难点。自然的水面模型,实时的动态波纹能较大程度地增进场景的逼真感和沉浸感[1,2]。目前一些三维图形软件产品中有些包含了流体模拟功能模块,如Maya里的Fluid Effects,3d Max提供的插件glu3D等,这些软件适合非实时水面模拟,对大面积水域实时动态水面的实现无能为力。虚拟现实领域对动态水面的研究并不太多,虚拟河道、数字化城市中水面多是静态的,需要创建一些有特殊效果的材质,利用GPU的处理能力,在虚拟现实系统中编写大量的shader程序,shader程序不仅要求设计人员有强大的程序开发基础和丰富的编程经验,而且还非常耗费系统资源,因此需要对虚拟场景做大量的优化工作。

虚拟现实系统中图形生成的速度主要取决于图形处理的软硬件体系结构。层次细节(Levels of Detail,简称LOD)技术是一种有效的图形生成加速方法。层次细节模型的概念认为当物体覆盖屏幕较小区域时,可以使用该物体描述比较粗糙的模型,并给出了一个用于可见面判定算法的几何层次模型,以便对复杂场景进行快速绘制。本文根据层次细节模型的概念提出一种新的方法模拟实时动态水面,以3d Max软件为建模环境,以实时3D环境虚拟实境编辑软件Virtools作为交互场景开发平台,对这种模拟方法进行测试,该方法已经应用于滦河河道改造工程中。

2 相关研究

已有一些关于水面生成与绘制方面的算法和技术,虽然能模拟出真实感很强的水面效果,如目前主流的基于计算流体力学模型的流体模拟算法,如Next Limit推出的RealFlow和RealWave等软件包,可以比较真实地模拟出流体表面自由流动的效果和流体表面的剧烈变形,如浪花飞溅等。Claes Johanson在《Real-time water renderingintroducing the projected grid concept》一文中给出了投影网格算法,结合现代图形硬件加速技术,用可编程顶点着色器来完成海面网格高度场网格顶点的坐标变换,用可编程像素着色器完成光照模拟及纹理的渲染[3]。张龙等[4]对湖泊水面的反射、折射等光学现象进行了高效近似模拟,模拟岸边植物在水中的倒影效果,水面因风力作用泛起微波的动态效果,以及水滴落入水面引起的涟漪效果。Cem Yukel等[5]提出了波粒子的概念,在GPU上实时实现了水面与水面物体的交互,可以看到船划过水面时留下的痕迹,效果逼真。谭晓辉等[6]采用一种基于网格的方法,通过高度采样和外加扰动的方法产生动态水面,并将顶点法向量计算、水面反射、折射等计算交给GPU完成,结合了凹凸纹理、动态纹理和投影纹理技术对水面绘制。对动态水面建模的方法有基于几何模型的方法、基于物理模型的方法、基于粒子系统的方法等等[6,8]。基于几何模型的方法,多使用纹理贴图,适合面积较大的水面,并且没有重复计算,缺点是近距离观察时,水面波纹的真实感差,并且也不适合多角度观察;基于物理模型的方法,水面波纹接近真实的物理现象,但如果范围太大,计算量就会大增,很难满足实时要求;粒子系统适合于波浪破碎或是雨雪等自然现象,粒子太少真实感差,粒子太多计算量大不适合大规模动态水面模拟。

3 动态水面模拟方法

层次细节技术是在不影响画面视觉效果的条件下,通过逐次简化景物的表面细节来减少场景的几何复杂性,从而提高绘制算法的效率。该技术通常对每一原始多面体模型建立几个不同逼近精度的几何模型。与原模型相比,每个模型均保留了一定层次的细节。基于这种技术,本文所采用的以下模拟方法,远距离观察时,模型采用简单的几何模型结合动态纹理技术模拟水面流动,观察点逼近时,采用物理模型的方法,强化真实水面的动态波纹、反射、折射等水面光照效果,最终实现真实感的流动水面。

3.1 动态纹理

动态纹理是指纹理图像自身是变化的或者在不同时刻赋予模型的纹理坐标,当这种变化为连续时,就形成了动画的效果。其一,采用改变纹理图像来实现动态纹理,这种方法的原理很简单,利用人眼的视觉驻留性质,当一幅投射到人眼视网膜形成的图像消失时,图像会在视觉上驻留1/24秒,因此当图像切换时间小于这个1/24秒,就会形成动画。这种动态纹理可以用二维动画软件(如flash),或三维动画软件(如3d Max)预先渲染出动画文件,也可以去自然界拍摄真实水面的视频,展示水面波光粼粼的效果,此方法适用于大面积水域的动态模拟。在VirTools软件里,创建一个video在parameter设置中,使用我们准备好的视频文件,用整个河流水面作为取得画面图像的目标。图1为Level script。

其二,采用不同时刻赋予不同坐标的方法,创建水面材质(material),此材质使用水波纹理贴图,并使纹理坐标产生变化。

图2为river dynamic water surface script。在滦河河段改造中应用了这种方法。图3为滦河河道平面图,且水面有高差。图4是滦河河道模型图,水面是用简单的几何模型,经过编辑的多面体,这样保证了模型的面数最少。赋予动态纹理前,可以看出,没有水面流动的波纹出现。

图5为使用Texture Scroller后产生流动波纹的水面效果,是使水面更加真实、自然。

3.2 水面模型和水面波动

一列规则波纹可以由函数y=Asin(ωx+φ)表示,波纹的形状由振幅、波长、相位决定,因此控制这3个参数就可以控制整列波纹效果,改变A的大小就是控制振幅,ω的值可以控制频率,改变φ的大小就是改变了相位,这是将横向波和纵向波叠加。实际水面很复杂,它还受风力、地形的等外界因素影响产生流动,因此还要有其它函数的扰动,来模拟真实水面的运动状态。

创建波浪平面时设置适当的大小和段数,然后借助与空间扭曲物体相结合来完成动态水波。创建涟漪物体,调整面板上设置参数,如振幅、波长、相位值等参数。创建空间扭曲体涟漪,把涟漪物体结合到波浪平面上,使之产生波浪涟漪。制造动态波浪,移动涟漪物体,可产生水面流动,也可在面板上调节它的相位值,产生水面波动效果,如图6。

3.3 反射和折射

水是一种基本透明的液体,但河流湖泊的水面颜色是受到很多因素的影响,如外界光线的强弱及颜色、水的深度及水中含杂质的情况等等,这些外界因素直接影响了水面的反射和折射效果,而水面的反射和折射性质是表达真实感水面的关键。如树木、人物等实体对象在水面这种具有反射性质的介质上具有高度清晰的倒影效果;太阳光经过河流湖泊的水面反射后会在河岸投射出不均匀的、有闪烁的光线图案效果的焦散现象等,这些光照效果直接影响了水面的逼真程度。在三维软件中,设置水面材质要通过调整反射通道,添加falloff贴图、设置光泽度、设置细分值、设置折射率,调整烟雾颜色来调整水颜色以及改变烟雾倍增值等参数,仔细反复调整,以达到理想的效果如图7。这些参数的增加又会加大计算量,从而降低图像的生成速度。

4 优化渲染速度技术

如果虚拟场景中大规模动态水面使用物理模型,由于高细节模型面数较多,对计算机的性能要求很高,通常我们在设计上需要对场景优化。

4.1 法线贴图及烘焙贴图

法线贴图技术是目前三维虚拟场景中非常流行的贴图技法。它的作用是把曲面上的法线方向利用贴图提供的信息来改变其方向,可以把贴图里的每个像素都当成模型上的一个平面,用RGB三原色记录像素(pixel)的法线方向的(x,y,z)值,自运算时先读了模型的法线方向之后,再用法线贴图上的RGB也就是(x,y,z)值再算一次。因此它不是直观的彩色贴图,可以说它是储存数据的数组[9]。

法线贴图是把有水波纹的高细节水面模型的特征映射到低细节平面水面模型上,使平面具有高细节水面波纹效果,从而达到节省面数的目的。其生成方法是通过3dMax 的Render to texture功能,把同一个物体具有高低细节的模型对在一起后,把高细节模型生成法向贴图记录下来,其原理如图8所示。

烘焙贴图技术是一种把3dMax光照信息渲染成贴图的方式,而后把这个烘焙后的贴图再贴回到场景中去的技术。这样光照信息变成了贴图,不需要CPU再去费时地计算,只要按普通的贴图处理,所以速度极快[9]。烘焙贴图用来表现水面模型反射、折射效果,在水面上形成微妙的光影变化,让水面在天空光(skylight)的作用下表现得很真实。

具体做法,将具有高细节的模型赋予材质后,置入设置好灯光的环境中,打开烘焙对话框,将渲染出的图平铺成一张纹理。如果图像不是很完美,还需要在photoshop这样的图像处理软件中进行修饰,使之更加符合要求。这个纹理图像只适合烘焙的模型。将处理好的纹理再赋予烘焙的模型后,在没有灯光的情况下仍然有光影效果。

4.2 细节层次的切换

应用细节层次时一个重要的问题是如何在两个接续的细节表示之间过渡。最简单的办法当然是强行切换,在某个时候,用较简单的模型取代较复杂的模型。这种方法会引起不能连连续的视觉跳变,真实感降低。好的办法是从一级模型到下一级模型的几何变形,但它要求多细节层次模型中物体几何模型有对应关系。较好的办法是不去简单切换模型,而是在过渡期内产生两级模型的图形混叠起来。这种做法能大大减少跳变效果,但在两级模型都要绘制时,会暂时增加绘制负担。文中通过降低了部分真实性来换取了场景的简化。

5 结论

在动态水面的模拟中,我们采用了许多新技术,将不同的技术合理地结合在一起,通过简化和运用层次细节技术,保证了图像实时的绘制频率。目前可编程图形硬件技术有了迅猛的发展,GPU可以完成以前在CPU上难以实时进行的复杂图形计算任务,随着网络技术的发展,在复杂地形大面积水域虚拟场景中,分布式场景模拟也将是一个新的研究方向。

[1] 王胜正.一种实时的3d动态海洋模拟新方法[J].计算机应用,2007,27(5):1147-1124.

[2] 杨春,等.基于3D和Virtools技术的虚拟实验的实验[J].计算机工程与技术,2007,28(11),2589-2591.

[3] Enright D, Marschner 95, Fedkiw R, Amination and Rendering of Complex Water Surface[J]. ACM Transactions on Graphics, 2002, 21(3): 736-744.

[4] 张龙,等.湿地场景的动态模拟[J].计算机辅助设计与图形学学报,2008,20(8),1007-1010.

[5] Cem Yukel, Donald H House, John C Keyser. Wave Particle[J]. ACM Transactions on Graphics, 2007, 26(3).

[6] 谭晓辉,等.一种基于GPU的大规模水面实时模拟方法[J].计算机仿真,2009,26(9):211-214.

[7] 程勇新.3D引擎中大规模海面实时渲染及场景管理研究与实现[D].合肥:中国科技大学,2009.

[8] 朱旭阳,李思昆.动态纹理合成技术研究综述[J].系统仿真学报,2001(增):23-25.

[9] 程罡,吴江涛.三维游戏场景设计与制作[M].北京:电子工业出版社,2010(1):62-74.

(责任编辑、校对:田敬军)

Research on the Method of Dynamic Water Simulation Based on VR Technology

FENG Yu-fen

(Department of Mathematics and Information Science, Tangshan Teachers College, Tangshan 063000, China)

In virtual reality (VR) system design, the natural surface effect can make the scene more real. The key technology of water surface dynamic simulation is keeping the balance among the sense of reality of the water surface, real-time rendering speed, the resources requirements of computer software and hardware and difficulty of realizing the virtual reality system. In the paper the writer propose using level of detail technology, using dynamic texture reflection and the way of model of fluctuation surface combining with material mapping method to realize the flowing surface with the effects of reflection and refraction. When it is used in environment representation such as the outdoor scene, it will make the surface more real, less computational complexity and designing and implementation more simple and convenient.

dynamic water surface; dynamic texture; model of water surface; levels of detail

TP391.9.

A

1009-9115(2012)02-0052-04

唐山师范学院科学研究发展基金项目(10D03)

2012-01-13

冯玉芬(1970-),女,河北玉田人,硕士,高级工程师,研究方向为计算机应用。

猜你喜欢
纹理水面虚拟现实
虚拟现实技术在中学校园中的应用
基于BM3D的复杂纹理区域图像去噪
水黾是怎样浮在水面的
使用纹理叠加添加艺术画特效
TEXTURE ON TEXTURE质地上的纹理
风口上的虚拟现实
争夺水面光伏
虚拟现实技术向科幻小说借灵感
消除凹凸纹理有妙招!
一块水面