APP下载

不同属性烟雾融合过程可视化建模与实时绘制

2015-12-12毛菊珍吕梦雅张利卫

燕山大学学报 2015年5期
关键词:实时性烟雾流体

唐 勇,毛菊珍,吕梦雅,张利卫

(1.燕山大学信息科学与工程学院,河北秦皇岛066004;2.河北省计算机虚拟技术与系统集成重点实验室,河北秦皇岛066004)

不同属性烟雾融合过程可视化建模与实时绘制

唐 勇1,2,∗,毛菊珍1,2,吕梦雅1,2,张利卫1,2

(1.燕山大学信息科学与工程学院,河北秦皇岛066004;2.河北省计算机虚拟技术与系统集成重点实验室,河北秦皇岛066004)

为了快速精准绘制真实世界中各种各样的多烟雾融合现象,提出一种基于欧拉法的实时有效的烟雾融合模型。首先,提出域划分算法,从结构层解决了多烟雾自由随机运动的描述问题;其次,利用GPU的并行能力大幅提高了N⁃S方程求解速度,获得多达7种不同属性烟雾融合过程的实时绘制;再次,实现Ray⁃casting(光线投射)算法,清晰地表现出烟雾融合的扩散细节;最后,调节温度、速度、扩散系数和浓度等烟雾运动影响因子,灵活控制烟雾融合过程。实验表明,所做工作能够快速真实地模拟不同属性烟雾的融合。

欧拉法;烟雾融合;域划分算法;GPU;光线投射

0 引言

对烟雾、水面、海洋等自然现象进行模拟是计算机图形学(CG)研究中非常具有挑战性的课题。模拟没有规则外观形状且运动极其复杂的烟雾非常困难。从Stam J等人开始人们对单股烟雾和烟雾与固体障碍物交互问题上做了大量研究[1⁃2]。2008年,浙江大学周昆提出用光线补偿算法实时渲染烟雾[3],获得高品质细节。2013年,斯坦福大学Zhu B等人实现用动态自适应网格突出表现烟雾局部有趣的细节[4]。2014年,美国威斯康星大学Setaluri R等人提出一种新的稀疏均匀网格结构,通过优化数据存储方式来加快烟雾模拟速度[5]。以上只是对单股烟雾进行模拟,而并未对多种烟雾融合进行研究。

近年来,研究者对多种流体混合模拟的研究越来越感兴趣,2006年,高丽大学Roh B和Kim C用拉格朗日粒子方法实现两股交互式运动的烟雾[6],但交互过程基于固定路径不能进行实时控制。同年,Zhu H等提出了双流体格子玻尔兹曼方法(TFLBM)来模拟两种流体之间的混溶相互作用[7],然而,TFLBM在处理流体自由表面时无法保持稳定。2010年,Kim B使用粒子水平集方法模拟获得流体光滑界面[8],但容易损失细节表现。2014年,清华大学Ren B等提出一种基于SPH模拟方法的混合模型处理多个流体的交互运动[9],在多流体模拟研究中有显著成效与巨大贡献,但针对大量粒子模拟将会降低实时性,最大帧率为4.049 fps。唐勇等人[10⁃11]对烟雾模拟进行了大量研究,并取得了一定成果。

当前对流体模拟的研究多集中于表现单股烟雾的真实性与实时性,以及可混合或不可混合水体之间的交互,而鲜有对多股烟雾间交互式运动的模拟。为此,本文提出一种基于欧拉法的实时有效的烟雾融合模型,针对空气中烟雾交互融合模拟的难点,快速精准模拟真实世界中各种各样的多烟雾融合现象。

1 构建烟雾融合模型

烟雾融合运动是研究的重点,实时性与真实感是最高目标。最核心的任务是建立合理的烟雾融合模型。

1.1 建立烟雾融合控制方程组

流体模拟时依赖微分方程来描述流体的运动规律。N⁃S(Navier⁃Stokes)方程是用来计算流体力学的经典模型。为模拟空气中的烟雾融合,对基本N⁃S方程进行改进。同时,采用易于在可编程GPU上求解的流体模拟方法—欧拉法来模拟。由于烟雾粘性很小,粘性项可以忽略,因而,可将简化的N⁃S方程即欧拉方程表示如下:

式中,p表示压力,ρ表示密度,f表示外力,u表示速度矢量,u=(ux,uy,uz)。

方程(1)是由牛顿第二定律推得的流体动量方程,保证动量守恒。方程(2)是在流体密度为常数时,根据质量守恒定律得到的流体质量守恒方程。

为了形象生动地将烟雾融合的动态效果绘制出来,加入随速度场流动的密度场方程:

式(1)中外力f的影响使烟雾运动更加有趣,本文将外力描述为浮力fbuoy、漩涡力fconf以及融合力ffusi的合成,所以外力表示为

完成流体动力学基本N⁃S方程的以上改进,为科学准确描述烟雾融合过程建立了数学基础。

1.2 域划分算法的数学描述

烟雾融合控制方程组建立之后,如何划分求解域、子求解域间融合力的实现便成为下一步需要解决的问题。在现有笛卡尔网格上自定义划分区域网格的方法实现在整个求解域中复合不同的力场,实现多种烟雾间的相互作用,真实自然表现烟雾融合现象。

求解域划分为三维网格空间,为保证多种烟雾受力融合,对三维网格空间进行自定义划分,划分方式如图1所示,其中虚箭头线代表每个区域的速度矢量,实箭头线代表一个时间步后更新的速度矢量。

图1(a)中为完成两种烟、一定角度相遇交互,笛卡尔网格被划分为3个子求解域,速度变化为

图1(b)中为完成3种烟雾环流融合状态,笛卡尔网格被划分为4个子求解域,每个域的速度受相邻域速度影响变化为

式中,uim为分力场作用后的速度,ai为速度衰减因子,其中i=1,2,3。将更新的速度代入烟雾融合基本方程组求解。

图1 烟雾融合速度分布图Fig.1 Multiple⁃smoke fusion velocity distribution

域分解算法实现整个求解域上多个力场相互作用,形成不同的速度流,很好地表现了多种烟雾的自由随机运动。

1.3 数值化烟雾融合控制方程

完成区域划分,实现子求解域间的融合力,接下来须对控制方程进行数值求解,即计算每一时刻整个流场的变化,完成烟雾融合模拟。具体过程如下:

1)初始化速度场u0和密度场ρ0。

2)烟雾的上升速度受到温度的影响,温度越高,气体上升越快;另外,烟雾微粒受到重力的影响会向下运动。计算热浮力影响后的速度场

其中,α、β为非负系数,Tamb是当前环境温度,方向为z=(0,1,0)。

3)自定义划分笛卡尔网格空间,施加融合力,运用1.2节方法更新速度场u2=um。

4)网格中的物理量需要相互传递,在每个时间步平流所有网格中的速度到新的位置

此时这个新位置的速度更新为u3=u2。

5)平流过程导致烟雾融合运动的一些细节消失,引入漩涡力进行补偿,重新添加因平流而去除的漩涡,保证烟雾运动更加真实自然。

式中,ε是漩涡系数,控制漩涡强度;h是网格大小,限制网格精细程度。

6)同样因平流过程会造成速度场的发散,所以要满足不可压缩流体散度自由将速度场更新为

其中,u(i,j,k)代表网格点(i,j,k)处的速度。

7)因压力梯度作用使速度场更新,用雅克比迭代法求解泊松方程得到

8)最后,结合压力和速度场得到散度自由的速度u7,并代入式(4)完成密度随速度的平移。

利用可编程GPU同时处理多个网格,并行求解N⁃S方程,相较于CPU模拟速度有了显著提高,同时引入MacCormack方法来求解N⁃S方程对流项,简化求解过程,减少计算时间,进一步提高烟雾融合模拟的实时性。并且,在整个计算过程中灵活调整温度、密度、扩散系数等烟雾融合运动影响因子,实时创造各种烟雾融合效果。

2 光线投射法渲染烟雾

在GPU上实现Cg语言编程,采用体绘制技术中传统的 Ray⁃casting(光线投射)算法进行渲染。为实现烟雾融合效果,利用公式

对不同种类的烟雾渲染不同的颜色,并使颜色属性随浓度平流。式中,Ci为渲染后的烟雾颜色,C0i为光线穿越物体获取的颜色数据,αi为透明度,且Ai是光线吸收因子,i代表不同种类的烟。

将n种烟雾进行融合,用公式

对Ci求和,实现融合烟雾颜色属性的累加。

算法基于射线扫描过程,符合人类认知规律,易于理解,计算简单,并且可以实时绘制出灵动有趣的烟雾融合效果。

3 实验结果与分析

实验在Windows操作系统下进行,使用Unity3d开发平台结合GPU建立了实时有效的不同属性烟雾融合模型。

图2为不同场景不同状态烟雾的融合效果。图2(a)是一团烟雾渗入一股烟雾之中并随之腾升的现象,这个过程中这一小团烟雾将逐渐地被稀释与扩散,图2(b)是两个横向容器中冒出的不同属性烟雾等比例的融合为一种属性烟雾的过程,图2(c)是在室外高空环境中,在风场的作用下烟雾的融合效果,改变风速与风向将改变其交融运动态势,产生灵活多变的效果,图2(d)是七色彩虹烟雾由下到上低速流动于一个密闭空间中,在这一过程中每股烟相遇相融在一起,图中可看出每股烟雾的边界有明显的融合效果。

图3中为两股烟雾受45°角的力的作用碰撞在一起产生的效果,图3(a)中由于力的大小相同,所以碰撞融合过程中形成两个相同大小,互为反向的漩涡,图3(b)中为施加不同大小力的烟雾碰撞融合效果。

图4(a)是文献[9]中不同液体混合实验效果,图4(b)是本文中不同烟雾融合效果。文献[9]中液体混合实验非常真实自然,本文对其方法进行改进并应用到烟雾融合实验中,得到了更加灵动有趣的效果。

图2 不同场景不同状态烟雾融合效果Fig.2 Different attribute smoke fusion in different scene

图3 烟雾碰撞融合Fig.3 Smoke collision and fusion

图4 实验效果图对比Fig.4 Comparison of the experimental effects

多烟雾融合可视化绘制在分辨率为64×128× 64的网格上模拟,帧率如表1所示。

文献[9]采用基于SPH的粒子方法模拟,其方案可容易地集成到现有的最先进的SPH模拟器中,表2为不同粒子数的多种液体交互的帧率。通过图4、表1与表2的对比可看出,本文已经获得逼真的多烟雾融合效果,而且帧率远高于文献[9]的最大帧率。

表1 不同精度网格上多种烟雾融合的帧率Tab.1 Frame rate of multiple⁃smoke fusion on different resolution grids

表2 文献[9]中不同粒子数的多种液体交互帧率Tab.2 Frame rate under different particle numbers and phase numbers in reference[9]

4 结束语

针对不同属性烟雾融合过程可视化尚难满足实时性、且真实感有待提升的问题,优化流体力学模型并结合欧拉法提出求解域划分算法,快速稳定地捕捉到烟雾相遇后的运动态势,大大提高了烟雾融合过程模拟的真实性与实时性;将 Ray⁃casting算法求解移植到可编程渲染管线GPU中,快速逼真且清晰明朗地展现了烟雾融合过程的可视化效果;最后,通过多种数值实验验证,实时性大大提高,融合细节表现充分。在模拟多达7种不同浓度、不同质量的烟雾在真实环境中受力融合现象时,也能满足实时性要求。

[1]Stam J.Stable fluids[C]//Proceedings of Computer Graphics,Annual Conference Series,ACM Siggraph,Los Angeles,1999:121⁃128.

[2]Fedkiw R,Stam J,Jensen H.Visual simulation of smoke[C]//Proceedings of Computer Graphics,Annual Conference Series,ACM Siggraph,Los Angeles,2001:15⁃22.

[3]Zhou Kun,Ren Zhong.Real⁃time smoke rendering using compensa⁃ted ray marching[J].ACM Transactions on Graphics,2008,27(3):1⁃12.

[4]Zhu B,Lu W,Cong M,et al.A new grid structure for domain ex⁃tension[J].ACM Transactions on Graphics,2013,32(4):1⁃12.[5]Setaluri R,Aanjaneya M,Bauer S,et al.SP Grid:A sparse paged grid structure applied to adaptive smoke simulation[J]. ACM Transactions on Graphics,2014,33(6):1⁃12.

[6]Roh B,Kim C.Controllable multi⁃phase smoke with lagrangian particles[C]//24th Computer Graphics International Conference,Hangzhou,China,2006:115⁃123.

[7]Zhu H,Liu X,Liu Y,et al.Simulation of miscible binary mixtures based on lattice Boltzmann method[J].CAVW Computer Animation and Virtual Worlds,2006,17(3/4):403⁃410.

[8]Kim B.Multi⁃phase fluid simulations using regional level sets[J]. ACM Transactions on Graphics,2010,29(6):1⁃8.

[9]Ren B,Li C,Yan X,et al.Multiple⁃fluid SPH simulation using a mixture model[J].ACM Transactions on Graphics,2014,33(5):1⁃11.

[10]唐勇,吴娱,吕梦雅,等.一种改进的自适应漩涡限制实时烟雾模拟[J].小型微型计算机系统,2012,33(12):2676⁃2679.

[11]唐勇,李萍,吕梦雅,等.一种实时模拟烟雾的新方法[J].燕山大学学报,2011,35(1):65⁃68.

Visualization modeling and real⁃time rendering for fusion process of different property multi⁃smoke

TANG Yong1,2,MAO Ju⁃zhen1,2,LÜ Meng⁃ya1,2,ZHANG Li⁃wei1,2
(1.School of Information Science and Engineering,Yanshan University,Qinhuangdao 066004,China;2.The Key Laboratory for Computer Virtual Technology and System Integration of Hebei Province,Qinhuangdao,Hebei 066004,China)

In this paper,a real⁃time and effective Euler approach is introduced for multiple⁃smoke fusion.First of all,the domain de⁃composition algorithm is presented to solve the free random movement problem of multiple⁃smoke fusion in structural layer.Second⁃ly,the speed of solving N⁃S equations is improved by the GPU,and as many as seven different attributes of smoke fusion process is got.Thirdly,the spread of smoke fusion details is shown clearly through realization Ray⁃casting algorithm.Finally,more smoke's in⁃teresting fusion details is got by controlling the smoke flow impact factors,such as temperature,speed,diffusion coefficient,concen⁃tration,etc.So the method can simply and effectively simulate real⁃time multiple⁃smoke fusion.

Euler approach;smoke fusion;domain decomposition algorithm;GPU;Ray⁃casting

TP391.9

A

10.3969/j.issn.1007⁃791X.2015.05.011

1007⁃791X(2015)05⁃0448⁃05

2015⁃06⁃22 基金项目:国防重大专项资助项目(2014AT09)

∗唐勇(1964⁃),男,四川遂宁人,博士,教授,博士生导师,主要研究方向为计算机动画、计算机图形学、虚拟现实技术及其应用,Email:tangyong@ysu.edu.cn。

猜你喜欢

实时性烟雾流体
纳米流体研究进展
薄如蝉翼轻若烟雾
山雨欲来风满楼之流体压强与流速
影视剧“烟雾缭绕”就该取消评优
猿与咖啡
咸阳锁紧烟雾与尘土
计算机控制系统实时性的提高策略
可编程控制器的实时处理器的研究
基于B/S的实时用户行为检测管理系统设计与实现
会下沉的烟雾