APP下载

水体视觉效果模拟与实现

2017-05-13王太伟1张天翔2张尚弘2

河南科技 2017年5期
关键词:法线水流纹理

王太伟1 张天翔2 张尚弘2

(1.交通运输部水运科学研究院,北京 100088;2.华北电力大学可再生能源学院,北京 102206)

水体视觉效果模拟与实现

王太伟1 张天翔2 张尚弘2

(1.交通运输部水运科学研究院,北京 100088;2.华北电力大学可再生能源学院,北京 102206)

本文简要描述基于波形函数变形、法线纹理贴图2种水体视觉模拟技术,并基于Tiled Directional Flow的算法实现河流水体视觉模拟,基于波形叠加的方法实现海洋水体视觉模拟,结合GPU渲染管线实现组合条件绘制,最后比较2种不同模拟技术所适用模拟的情景。本文所采用的水体视觉模拟技术及实现方法对于研究水体视觉模拟有一定助益,水体视觉模拟效果良好。

波形函数变形;法线纹理贴图;视觉效果模拟

1 水体视觉模拟技术概述

海洋、河流、湖泊等水体的真实状态模拟在可视化系统中是十分常见的,有别于上述的科学可视化方法,此类水流可视化偏重于水流的真实视觉效果,对其具体的水深、流速分布等科学数据不做深究。介于科学可视化所需的计算量庞大,而且普通模拟无法满足水流三维视觉的需要。因此,此类水流可视化通常采用简化的数学方法模拟水流形态,外加计算机特效实现视觉上的真实感。常用的水体视觉模拟技术有波形函数变换与法线纹理贴图[1]。

波形函数变换是直接实时改变水体表面的顶点,模拟水面的波动状态。常见的做法有波形叠加、波动方程、预渲染流场纹理等。波形叠加是叠加不同的随机周期函数构成水体表面,多用来表现波涛起伏海面。使用波动方程或者近似公式来表现局部的水波,多用于表现物体与水面互动产生的涟漪。预渲染流场纹理是将复杂运动的数据预先渲染到纹理上,多用于模拟涡流等难于实时计算的非线性运动。

法线纹理贴图是通过改变水体表面的法线,实现对水体波动的模拟。换个角度说,法线纹理贴图不对水体表面的顶点做任何改动,其实现的效果只是一个假象。如果剖开水体进行观察,不会看到任何的波动变化。在近距离观察时,常常会存在失真的情况。但是,相对地,法线纹理贴图仅仅会动态改变水体的光照状态,可以很大程度上节省系统的性能。特别是对于大尺度水体的表现,水体视觉模拟的性能(即水体波动动画的流畅程度)远远比其图像质量重要,使用法线纹理贴图会是一个更好的选择。

2 水体视觉模拟

2.1 河流水体视觉模拟

当前很多流域模拟系统都采用地形模型为用户提供大规模的虚拟环境,对水体流动的表现会极大地增强整个虚拟环境的真实感。由于缺少准确的河流流速数据,大部分的流域模拟系统对河流水体的模拟缺乏细节表现,很少能表现河流的水流流速分布特征(流速大小,横流、涡流等流态特征)和水流变化情况。本文将水动力模型的计算结果与水体视觉模拟方法相结合,增强河道水流流态状态的真实感。

对河流的水体视觉模拟,关键内容有2个方面:一是河流水波起伏,二是河流流向。相对于流域模拟的尺度,水波是一种微小尺度上的变化情况。水波无法使用水动力学模型进行计算,一般是采用一些纹理动画或周期函数进行表现。流向则由于其显示的尺度较大,精度要求不高,因而直接使用水动力计算的结果,用法线纹理贴图的方法绘制水体流动的特效。

本文采用了Tiled Directional Flow的算法[2-4],即通过着色器在河流表面划分正方形网格,按照流向调整贴图方向,进而实现河流有向流动的效果,过程如图1所示。

图1 Tiled Directional Flow处理过程

每个正方形网格瓦片都有4个顶点,在4个顶点上都可以求出其流速的大小和方向。之后,根据这些顶点数据,设置法线贴图的方向和各坐标轴方向的重复度,将法线纹理贴图贴合在水体表面。最后,结合光照与视点位置,应用Fresnel反射与折射模型,进行水体的反射与折射计算,实现效果如图2所示。

图2 河流水体视觉模拟效果

2.2 海洋水体视觉模拟

海水波动的起伏比较大,细节相对丰富,本文采用波形叠加的方法对海水的运动进行模拟。波形叠加是将很多个不同周期、不同振幅的周期函数叠加在一起。但在水体视觉模拟中使用的基础波形并不是正弦和余弦波,而是一种叫做Gerstner波的特殊波形。Gerstner波的诞生早于计算机图形学(Computer Graphic,CG),最初在物理中用于水波的模拟。由于其形状比较真实,而且计算量不大,所以被广泛用于计算机图形学中水波的模拟[5]。Gerstner波以参数方程的形式给出:

式(1)中,自变量为p,参数Q、D、A用来控制形状,Q控制波峰的尖锐度,D控制波长,A为振幅。

Gerstner波和余弦波的差别,如图3所示。与红色的余弦波相比Gerstner波在两侧有收紧的趋势,和真实海洋表面更加接近。

图3 Gerstner波和余弦波示意图

在绘制过程中,将很多个不同波长、不同振幅的Ger⁃stner波叠加在一起,加上一些随机值,建立海水的折射与反射的模型,就能得到这种看起来很复杂的海面效果[6]。平台应用Sundog公司的Triton插件,基于波形叠加的方法,实现了海水波动的模拟效果,如图4所示。

图4 海水水体视觉模拟效果

2.3 组合条件绘制

水流上的标量和矢量都可以通过颜色绘制在水流模型的表面。不同的可视化方案可以对不同的变量数值进行图形化。在不同的专业应用中,需要在一些可视化方案中提取特定的区域进一步强化显示其内部的信息。例如,在航运应用中,需要在水深等值面或流场纹理上提取水深、流速条件适合和禁止船舶航行的区域;在洪水淹没应用中,需要在模拟洪水的表面上提取水位高于一定阈值的区域,便于实现对洪水的警戒。

在具体的实现过程中,平台应用GPU渲染管线,绘制一个透明的面片覆盖在任意一个可视化方案上。面片上会有一些颜色标识用户指定的区域。这样将二者组合起来,就可以实现区域条件绘制的效果,其具体步骤如下:①初始化网格,将所有水流数据加载到网格节点上,并输入到GPU顶点着色器;②顶点着色器输出中间变量,进行光栅化操作,完成对各个变量的插值计算,输出变量至片元着色器;③用户通过图形用户界面,新建条件方案,输入要求的组合条件,如“流速”>2.5AND“水深”>10;④在片元着色器中,将输入的组合条件转化为条件语句,提取指定区域。组合条件绘制效果如图5所示,黄色区域即按照上述组合条件绘制的区域。

图5 组合条件绘制效果

3 结论

在平台的应用中,主要有2种场景会用到水体视觉模拟。一是河流模拟,即根据水动力计算的结果,尽可能模拟水面的真实流动状态;二是海水模拟,即模拟海水的波动状态,给予用户在虚拟环境的真实感。一般河流的波动比较小,但如模拟大流域尺度河流,源数据规模比较大,平台运行的性能相对重要,所以采用的是法线纹理贴图;与此相比,海水的波动更大,平台模拟海水更多的是为船舶航行模拟服务,尺度较小,为了显示的效果更加形象、逼真,所以采用的是波形函数变换。

[1]方贵盛,潘志庚.水体虚拟仿真与应用综述[J].计算机仿真,2012(10):30-33,361.

[2]Kipfer P,Westermann R.Realistic and interactive simula⁃tion of rivers[A]//Proceedings of Graphics Interface 2006,2006:41-48.

[3]蒋瑜,杜斌,卢军,等.基于Delaunay三角网的等值线绘制算法[J].计算机应用研究,2010(1):101-103.

[4]Varela JM,Soares CG.Interactive 3D desktop ship simula⁃tor for testing and training offloading manoeuvres[J].Applied Ocean Research,2015(51):367-380.

[5]Hinsinger D,Neyret F,Cani MP.Interactive animation of ocean waves[A]//Proceedings of the 2002 ACM SIGGRAPH/Euro⁃graphics symposium on Computer animation.ACM,2002:161-166.

[6]Bruneton E,Neyret F,Holzschuch N.Real-time Realis⁃tic Ocean Lighting using Seamless Transitions from Geometry to BRDF[J].Computer Graphics Forum.Blackwell Publishing Ltd,2010(2):487-496.

Simulation and Realization of Visual Effect of Water

Wang Taiwei1Zhang Tianxiang2Zhang Shanghong2
(1.Ministry of Transport,Water Transport Science Research Institute,Beijing 100088;2.School of Renewable Energy,North China Electric Power University,Beijing 102206)

This paper briefly described two visual modeling techniques based on waveform function deformation and normal texture mapping.Based on the Tiled Directional Flow algorithm,the visual simulation of river water body was realized.Based on the waveform superposition method,the visual simulation of marine water body was realized.Com⁃bined with GPU rendering pipeline,the combination of conditional rendering was achieved.Finally,the simulation scenarios of two different simulation techniques were compared.The visual simulation technology and the realization method of the water body used in this paper are helpful for the study of water visual simulation,and the simulation works well.

waveform function deformation;normal texture mapping;visual effect simulation

TP391

:A

:1003-5168(2017)03-0029-03

2017-02-19

王太伟(1987-),男,硕士,工程师,研究方向:交通运输信息化。

猜你喜欢

法线水流纹理
基于定位法线的工件自由度判定方法及应用
哪股水流喷得更远
能俘获光的水流
我只知身在水中,不觉水流
基于BM3D的复杂纹理区域图像去噪
使用纹理叠加添加艺术画特效
椭圆法线定理的逆定理
TEXTURE ON TEXTURE质地上的纹理
消除凹凸纹理有妙招!
双曲螺线的副法线曲面的相关性质研究*