夏辉丽 王继州
摘要:计算机图形学的烟雾模拟,主要采用三大类方法:粒子系统方法、数学物理方法和纹理技术方法;其中粒子系统方法属于比较早期的简单方法,数学物理方法大部分是基于或围绕N-S方程的。介绍了烟雾模拟的主要方法与应用等,对烟雾模拟的方法进行了细致的分类;有早期的烟雾模型,也讨论了近年来出现的一些最新发展。讨论了各种模拟方法的优缺点;指出了目前烟雾方法中存在的一些问题;关注了未来的研究工作需要重点加以关切的几个方面;介绍了今后需要进一步努力和完善的一些工作思路。
关键词:烟雾模拟;粒子系统;纹理方法;数学物理方法
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2014)21-5083-04
真实的自然界和人类社会当中有一类特殊的物体越来越多得受到了人们的关注——无规则形状的物体:火焰、烟雾、云彩、水流、瀑布等等。烟雾模拟由于其结构的复杂性和外部形态的多变性,这类模拟当中占据着举足轻重的地位。用计算机模拟烟雾的真实形态,有着十分重要的现实价值。介绍了烟雾模拟的主要方法;并进行了细致的分类。
1 烟雾模拟方法简介
计算机上烟雾进行准确的模拟和再现,是计算机图形技术中的热点和难点问题、备受人们的高度关注。研究和运用具有真实效果、速度和效率、比较理想、应用范围广、可扩展性强的模拟方法,是计算机科学工作者所面临的重要问题。
1.1 烟雾模拟方法的分类
几十年来人们已经逐步构造出了很多烟雾模拟的方法,主要有三大类:以粒子系统思想为主的烟雾模拟、进行数学建模和分析、运用流体力学等物理规律的烟雾模拟、基于视觉效果的纹理技术的烟雾模拟等。近年来,新的方法和思路不断涌现,出现了很多“新奇”和“另类”的解决途径有基于视觉效果的、有基于数理原理的、有基于硬件加速的,有基于交互互动的、有基于多方法混合使用的等等
1.2 粒子系统方法的烟雾模拟
粒子系统的核心是大量粒子集合在一起表现模糊物体,把模糊物体看作是众多粒子组成的粒子团,各粒子均有自己的属性:如颜色、形状、大小、生命力、速度等。至今其生命力却依旧旺盛[1-6],呈现出生机勃勃的发展态势,涌现出了很多新的应用和进展:如文献[7]的低速、快速物理模型、文献[8]的粒子数生成函数模型、文献[9]的粒子链模型等等。
1.3 传统的数学物理模型
基于物理的流体模拟主要是基于经典的Navier-Stokes方程组来描述所有流体(烟雾也是流体的一种)的运动,但由于该方程是非线性偏微分方程,想要获得它的解析解非常困难。用基于物理模型的方法模拟烟雾,一般分为三个步骤:一,确定烟雾的物理模型。二,求解烟雾的物理模型。三,烟雾的绘制。基于物理模型方法可以参考文献[10]。
1.4 基于纹理技术的模拟
2002年文献[11]将纹理片应用于火焰模拟;2007年文献将旋转的纹理片用于火焰的模拟[12];2008年文献[13]通过旋转的纹理片来模拟烟雾,实现比较快速、较为真实的模拟效果;但是在场景变换方面存在一些细节上的问题。文献[14]提出了基于纹理球方法的烟雾模拟方法,是对纹理片方法的一个很好的改进。文献[15]对三类方法有较为详细的论述和比较。
1.5 基于形状控制的烟雾模拟
形状控制的烟雾模拟,用户指定一个形状,通过烟雾变形生成另外一个形状如2003年的文献[16]和2004年的文献[17]。要达到的形状用几何模型来表示,控制烟雾形状运动的时候,算法设计两个力:包括外吸引力和内驱动力。外吸引力使烟雾向几何模型变换,同时也阻止烟雾流出。内驱动力使流体在模型内从高烟雾密度区向低密度区域流动。文献[18-20]提出了加快烟雾形成指定目标形状的速度的方法。
1.6 LBM方法的烟雾模拟
LBM(格子Boltzmann方法)是一种介观的方法,介观方法的好处在于能够描述传统宏观变量、得到具有均匀和稳定的连续解外,也拥有微观分子方法的灵活性。LBM方法不直接求解NS方程,分布函数存储在格子中从而进行迁移和碰撞,最终可以完成计算和模拟,从微观上的迁移和碰撞可以恢复成宏观上的对于流体方程的求解,最终模拟流体的运动。这种方法是近几年流体模拟的一个热点,收到了较多的关注。2004年文献[21]运用LBM模拟烟雾等气体现象。
1.7 基于GPU加速的烟雾模拟
GPU被作为一个流处理器来处理一些通用计算方面的应用,近几年慢慢发展起来,应用于流体和烟雾的模拟。高效的计算应该是寻求在CPU、AGP通道、顶点级以及像素级这几者之间达到一个很好的均衡;目前的思路是利用GPU 与CPU 之间的消息机制来维持整个计算的负载均衡[22-24]。
1.9 卡通烟雾模拟方法简介
该领域的研究重点是,生成诸如动画片、风格化等的、有很强的艺术吸引力和广阔的使用价值(如文献[25]将卡通烟雾和火焰应用于手机游戏)的烟雾效果、还可以自动生成动漫卡通中的情景,如文献[26-27],因而卡通烟雾的模拟和制作一度成为CG行业研究的热门问题[28-29]。
1.10 近年来的一些其他烟雾模拟方法
近年来的烟雾模拟呈现出了精彩纷呈、激动人心的缤纷盛况;各种新方法、新思想、新尝试称出不穷,令人眼花缭乱。基于“细丝”的烟雾模拟,如2006年的文献[30]。核心思想是把烟雾设想成在空间中不断生成、变化、运动、扭曲、缠绕的“细丝”;然后通过CG的方法构造烟雾的薄面,通过光照、渲染生成具有一定特色和用途的烟雾效果。随后,又有很多学者就此方法展开深入细致的研究,并取得了很好的模拟效果,如文献[31-33]等。
2003年文献[34],通过二维数理方法计算出火焰爆炸效果,从而构造出三维立体的视觉效果,成功模拟出了核爆炸的惊人逼真效果。2011年文献[35],同时采用质量守恒和动量守恒来求解和简化NS流体方程,也取得较好的模拟效果。2011年文献[36-37],采用自适应的动态网格划分的方法求解和简化NS流体方程,基于视觉场景对网格进行远近的区分和衔接。
2 研究方法的比较与动向
以上方法在烟雾模拟的应用上都有各自的优势,如果以模拟的视觉效果为主要目标,避免进行复杂的物理分析和运算;可以引入纹理技术的模拟方法。根据实际模拟中遇到的各种问题对三大类模拟方法做一些定性的比较;指出当前烟雾模拟中存在的一些问题和将来可以解决的思路。
2.1 各种方法的分析
粒子系统的模拟方法,优点是计算简单、运算速度相对较快,运动变化及其控制模式单一;模拟的人工痕迹比较明显,在表现细节方面比较欠缺;该方法容易编程,很受广大CG工作者的好评和喜爱。
数理方法要建立一定的精确模型并进行数值方面的求解,在大部分情况下,不能直接求解而必须进行必要的简化处理。在近些年的模拟成果中,精确度也不断得到提升,应用的范围有所扩展,程序和算法的设计难度有所降低,得到了越来越多的研究人员的广泛认可和接收。
纹理方法通过一定体积的实体来代替比较小的粒子,因而需要处理的数据结构比较少,计算量在某种程度上有所下降,系统资源的消耗有很大的降低。在表现细节方面,纹理方法也存在很大的缺陷,毕竟实体占据一定的空间体积,多少会影响细节的精细程度。
2.2 烟雾模拟方法中存在的问题
仔细分析和对比会发现,的各种方法中也普遍存在很多不尽如人意的地方;在处理具体问题的时候都还有很多关键的问题没有搞清楚,也没有进行合理的对待;大致可以从以下几个方面加以说明:
烟雾模拟的数理方法过于依赖N-S方程,把烟雾看成纯粹的流体来对待。烟雾的发生大多数情况下与燃烧相关,目前的很多模拟算法没有把燃烧现象加入和合成到烟雾模拟的过程中来;凸显出烟雾模拟的单调性和生成不真实性;当今烟雾模拟的绝大多数方法都没处理与之相关的燃烧效应。
当前烟雾模拟算法大多数是在“封闭”区域内进行计算,且为了能够正确“求解”而设定了诸多特定的“边界条件”。然而日常经验告诉我们,烟雾的发生、扩展、运动变化、消逝等自然过程,大多是在比较大的场景中进行的,并没有固定的体积和边界;如篝火、战场硝烟、导弹发射尾焰等。
目前很多二维烟雾效果和形态控制的烟雾(如前面提到过的那些方法),也以烟雾模拟的名义大行其道,给人们的感觉好像与真正的烟雾模拟不太相符;其实这些效果可以换一些别的称谓以使人们能够辨清是非。
在影视、特效、广告制作方面,商业烟雾制作软件或插件,目前停留在粒子系统的解决机制上,没有把当前数理方法所取得的成就加以合理消化和运用;虽然模拟的效果能够满足人们的正常需求,但是理论研究与实际应用的脱节。
2.3 烟雾模拟方法的发展动向
以上诸多方法皆有各自的优缺点和使用效果;但是在多方法的相互配合上和各自优点的发挥上还存在很大的问题,也有很大的潜力可以进行挖掘。
模拟细节的表现和优化。一方面烟雾的构成微粒要能够加以合理的表现,另一方面与实体交互时要体现出微粒的存在并表现出其应有的运动属性;还有,烟雾微粒的涡流运动也是必不可缺的。
烟雾的整体形态和外力因素。烟雾的形态也是千差万别,其发生机制也不尽相同。外力作用对于烟雾也是非常正常的;但目前很多方法在这方面的成果却都不尽人意。外力和障碍都属于CG中的动力系统,牵涉到的技术比较复杂。
算法的模拟速度。现今,图形技术所涉及的算法越来越复杂,对硬件条件的要求也越来越高。数理方法更是如此,求解流体方程的代价也是极高的;即使是一些简化和类似算法,也都需要进行大量复杂的数学手段。
烟雾的光照与阴影。目前的很多方法,处理光照非常吃力、困难重重。如果把烟雾看成是由无数微小的颗粒所组成的,那么处理每个颗粒的光照和阴影几乎是完全不可能的事情。把烟雾看成相对较大的微团结构,将会损失烟雾模拟的细节,无法再现其真实的物理情节;也无法保障烟雾扩散时的形态变化所带来的结果。最近的研究效果如文献[38-40]。
烟雾模拟技术的发展方向。该文认为应该针对具体的研究对象采用更加灵活的思路,不拘一格,面向不同的对象采用不同的模型和处理办法,并逐步拓展其应用领域[41]。近些年盛行的卡通动漫、手机游戏、影视特技中出现的水墨效果,物体飞散、聚集效果等;都是人们发挥人类的聪明才智和艺术想象力创造力而构造出来的。可以把数理模型在视觉效果和场景结构方面加以适当的简化和优化,需要数学、物理学、化学、燃烧学[42]、流体力学学、影视技术、广告技术、艺术学等多学科之间的紧密配合;涉及的学科越来越多。
今后的工作包括:进一步挖掘粒子系统的潜能,不断增加其实用性、改善其通用性;提高模拟的精确度、优化模拟的效果(如文献[43]等)。进一步研究数学物理方法在无规则物体建模上的应用。随着计算机硬件水平和软件思想的不断进步,特别是近年来GPU的广泛应用,相信该方法也将会有较大的突破,纹理应用技术的也会进一步深化。
3 结束语
烟雾的真是再现和模拟一直是计算机图形技术重点考虑的问题,也是一个长时间等候没有很好地加以解决的难点问题。目前有许多烟雾模拟的各种解决办法和思路模型,但还是远远不够,还远远没有达到人们的期望,也没有实现人们的急切需求。今后还需进行更加深入、广泛的思考和研究,需要加倍的努力和尝试。
参考文献:
[1] 初晓.基于粒子系统的实时烟雾模拟与实现[D].北京:北京师范大学,2008.
[2] 罗忠奎,李西猴,胡贵菊.基于物理动力学的烟雾建模与渲染[J].计算机工程与设计,2010,31(22) :4855-4857,4928.
[3] 唐勇,李萍,吕梦雅,等.一种实时模拟烟雾的新方法[J].燕山大学学报,2011,35(1)-:65-68,73.
[4] 刘斓,徐健锋,刘群.基于微粒群优化的烟雾扩散的实时研究[J].计算机工程与应用,2012,48(2):179-181,234.
[5] 郭皎,鄢沛.基于光滑粒子的流体仿真研究[J].西南大学学报:自然科学版,2012,34(1):44-48.
[6] 沈敬伟,温永宁,周廷刚,等.基于元胞自动机的林火蔓延时空演变研究[J].西南大学学报:自然科学版,2013,35(8):116-121.
[7] Yue G,Chen F L,Shi M H,et al.Simulating gaseous fluids with low and high speeds[J].Computer Graphics Forum,2009,28(7):1845-1852.
[8] 唐勇,李晓艳,吕梦雅,等.基于粒子数生成函数的烟雾模拟[J].计算机应用研究,2010,27(2):754-756.
[9] 顾耀林,王继州.基于改进的粒子系统的火焰模拟[J].计算机工程与设计,2007,28(8):1867-1869.
[10] 隋连升,葛靖青,程荣刚.三维烟雾的实时模拟[J].计算机工程与应用,2011,47(14):174-176,179.
[11] Wei X,Li W,Mueller K,et al.Simulating fire with texture splats[C].IEEE Visualization,Boston,Massachusetts,USA,2002:227-234.
[12] 王继州,顾耀林.火焰的快速模拟[J].计算机辅助设计与图形学学报,2007,19(1):102-107.
[13] 袁雪霞,尹新富.烟雾的快速模拟.计算机工程与设计,2008,29(9) :2392-2393,2396.
[14] 王继州,袁雪霞.纹理球方法的烟雾模拟[J].小型微型计算机系统,2013,34(7) :1680-1685.
[15] 王继州,顾耀林.火焰模拟方法的研究综述[J].中国图象图形学报,2007,12(11) :1961-1970.
[16] Adrien T,Antoine M,Zoran P,et al.Keyframe control of smoke simulations[J].ACM Transactions on Graphics,2003,22(3) :716-723.
[17] Raanan Fl,Dani L.Target-driven smoke animation[J].ACM Transactions on Graphics,2004,23(3):441-448.
[18] Yoojin J,Insung I.Chemical kinetics-assisted,path-based smoke simulation[J].Journal of Visualization and Computer Animation,2009,20(2-3) :247-256.
[19] 孟强龙.烟雾的物理模型及其模拟[D].合肥,安徽大学,2010.
[20] Jake L,Taku K.Real-time controllable fire using textured forces[J].The Visual Computer,2012,28(6-8) :691-700.
[21] X Wei,W li,K Mueller,etc.The lattice-boltzmann method for simulating gaseous phenomena[J].IEEE Transactions on Visualization and Computer Graphics,2004,10(2):164-176.
[22] Meng Y,Jingwan L,Alla S,etc.GPU methods for real-time haptic interaction with 3d fluids[C].Haptic Audio visual Environments and Games.IEEE International Workshop on,Microsoft Corp,Redmond,WA,USA,2009(7-8):24-29.
[23] 湛永松,杨明浩,石民勇,等.基于可编程图形处理器的实时烟雾控制模拟[J].工程图学学报,2008,29(4):60-64.
[24] 周益.基于物理的三维烟雾模拟及其加速技术的研究[D].济南,山东大学,2010.
[25] DongGyu P,Mirina J,SangHyuk W,et al.A fire and smoke simulation for mobile game[J].International Journal of Software Engineering and Its Applications,2008,2(4):1-8.
[26] 陈天洲,黄颖,于金辉.计算机生成3维卡通烟尘动画[J].中国图象图形学报,2006,11(5):679-683.
[27] 湛永松,石民勇,费广正.基于物理模型的实时卡通烟雾模拟算法[J].中国图象图形学报,2007,12(2):261-265.
[28] Eduardo J,?lvarez,Celso C,etc.Interactive cartoon rendering and sketching of clouds and smoke[J].Computational Science,2007,Part II,LNCS 4488:138-145.
[29] Alfred Barnat,Zeyang Li,James McCann,et al.Mid-level smoke control for 2D animation[C].Graphics Interface 2011,Ontario,Canada,2011:25-32.
[30] Alexis A,Fabrice N,Karan S,et al.A Controllable,Fast and Stable Basis for Vortex Based Smoke Simulation[C] .ACM SIGGRAPH/Eurographics Symposium on Computer Animation,Vienna,Austria,2006:25-32.
[31] Steffen W,Ulrich P.Filament-based smoke with vortex shedding and variational reconnection[J].ACM Transactions on Graphics,2010,29(4):1-12.
[32] Jinho P,Yeongho S,Frederic C,et al.A smoke visualization model for capturing surface-like features[J].Computer Graphics Forum,2010,29(8):2340-2351.
[33] Alfred B,Nancy S P.Smoke sheets for graph-structured vortex filaments[C].ACM SIGGRAPH/Eurographics Symposium on Computer Animation,Lausanne,Switzerland,2012(113):11-19.
[34] Rasmussen N,Nguyen D,Geiger W,et al.Smoke simulation for large scale phenomena[J].ACM Transactions on Graphics,2003,22 (3):703-707.
[35] Lentine M,Aanjaneya M,Fedkiw R.Mass and momentum conservation for fluid simulation[C].2011 ACM SIGGRAPH/Eurographics Symposium on Computer Animation,Vancouver,Canada,2011:91-100.
[36] Rinchai B,Pizzanu K.Adaptive grid refinement using view-dependent octree for grid-based smoke simulation[C].Computer Science.Springer-Verlag Berlin Heidelberg,2011:204-215.
[37] 王继州,袁雪霞.基于动态网格细分的烟雾模拟[J].微型机与应用,2011,30(8):33-35,38.
[38] Kun Z,Zhong R,Stephen L,et al.Real-time smoke rendering using compensated ray marching[J].ACM Transactions on Graphics,2008,27(3):36:1-12.
[39] 湛永松,杨明浩,石民勇,等.基于直接投射扩散的烟雾阴影实时模拟[J].中国图象图形学报,2008,13(11):2231-2237.
[40] 李伟伟,郭晓新,陈轶.GPU上具有复杂光照烟雾动画的绘制[J].吉林大学学报,2011,49(4):716-722.
[41] 赵林静,陈文文.基于物联网和Zigbee技术的图书馆火情监控系统设计[J].西南师范大学学报:自然科学版,2013,38(12):158-163.
[42] 黄成,彭敬东.燃烧热测定实验技术的改进[J].西南师范大学学报:自然科学版,2013,38(5):169-172.
[43] 王继州.基于改进的粒子系统的火焰模拟[D].无锡:江南大学,2007.