摘要:通過基礎理論的介紹,簡單地談了火焰模擬的幾種方法,并著重介紹了基于粒子系統和紋理技術的火焰模擬方法。
關鍵詞:火焰模擬;粒子系統
中圖分類號:TP391文獻標識碼:A文章編號:1009-3044(2010)11-2736-02
Overview of Flame Simulation Methods
LIU Chang-ming,ZHAO Zhi, SUN Yan
(Aviation University of Air Force, Changchun 130022, China)
Abstract: This paper present a survery on the methods of flame simulation,with a detail introduction of basic theory. It summarized the particle system and the textture based method.
Key words: flame simulation; particle system
對于山、水、云、火焰等自然界中豐富多彩的景物來說,其具有實時的多邊性和無規則性。它們的外觀形狀極不規則、沒有光滑的表明,這使得經典的歐幾里得幾何學對其描述就顯得無能為力。
火焰、云、水等流體狀態的模擬是計算機圖形圖像的一個重要問題,以更少的運算和內存空間,更加逼真的模擬它們的狀態,一直是人們努力的目標。本文中,我們將對火焰的模擬做簡單的介紹,從不同的角度比較現今常用的火焰模擬方法。
1 火焰模擬方法的分類
隨著計算機圖形學技術的發展,火焰燃燒在計算機動畫、影視制作和媒體廣告等場景中得到廣泛應用。人們很早就開始了計算機火焰燃燒的模擬。
總體來說,計算機火焰模擬的方法大體分為3種類型:基于粒子系統的火焰模擬、基于數學物理模型的火焰模擬和基于紋理的火焰模擬。
1.1 基于數學物理模型的火焰模擬方法
基于數學物理模型的火焰模擬方法起源較早。其傳統的思想是把火焰看成一種特殊的流體或特殊的物理過程,通過求解Navier-Stokes方程實現對火焰發展變化的控制。該方法中一個基本核心是流體動力學方程,然而其連續性求解對于計算機動畫來說難以承受。因此采用離散的方法來求解復雜的NS微分方程。其中比較具有代表性的方法就是Lattice-Boltzmann方法。
和其他方法相比較,基于數學物理模型的火焰模擬方法計算的依據比較科學合理;火焰運動變化的控制理論比較完備,計算結果基本符合真實燃燒的物理本性和其運動變化的特征。
1.2 基于紋理的火焰模擬方法
基于紋理技術的火焰模擬是人們從視覺角度出發所采用的簡化快速算法,是在整體和局部傷采用紋理貼圖的方法進行火焰的模擬。該方法可節省大量的計算機資源,加快了計算機模擬的速度。
紋理技術模擬的核心是如何合成構建該方法應用的場合與方式、如何挑選具有代表性的紋理圖片、以及如何管理和調配眾多紋理圖片的模擬屬性。
1.3 基于粒子系統的火焰模擬方法
基于粒子系統的火焰模擬方法幾乎已經成為最為成熟、最能經得起時間考驗的重要模擬思想之一。主要思想是:把火焰等不規則外形的物體看作是由無數的微小顆粒所組成的。每一個粒子都有其固有的屬性。隨著模擬的進行,其屬性值不斷發生變化,粒子經歷從產生、發展變化到消亡的全過程。
除了上面描述的模擬方法,還有一些火焰模擬的模型是幾種方法相互配合的共同結果。下面將介紹基于粒子系統和基于紋理技術結合的火焰模擬方法。
2 基于粒子系統和紋理的模擬
基于粒子系統的火焰模擬方法思想比較簡單,而且能表現一定的燃燒場景和燃燒細節,特別是火焰的隨機變化表現比較容易。但隨著場景中粒子數量的增加,粒子的控制和處理就會變得比較繁瑣,系統開銷急劇增加。一個簡單的紋理圖片能夠取代眾多的模擬粒子,因而可以節省大量的計算資源,加快計算機模擬的速度。
林等[1]是通過用少量的粒子建立火焰的輪廓線,然后在輪廓線內填充真實火焰連續紋理的方法實現火焰的動態模擬。其中,用少量的點勾勒中心骨架,通過B樣條函數對其插值得到一條連續曲線,根據中心骨架點生成兩側輪廓線。然后把輪廓線分割成網狀,相應地將火焰也進行分割,進行相應格子的紋理拷貝。
尹等[4]從仿真系統的要求(仿真系統要求系統具有相當高的逼真度和較高的畫面更新速率)為出發點,用粒子系統對自然現象進行模擬的。每個粒子表示多個雪花,用一個四邊形表示,將雪花圖像作為紋理貼到四邊形上,通過圖像合成,生成逼真的雪景。
張等[2]提出了一種新的基于粒子系統的火焰模型,研究了模型參數變化對顯示效果的影響,該模型引入了結構化粒子及表現風力的隨機過程。
3 相關理論技術
3.1 粒子系統
Reeves于1983年提出的一種很有影響的模擬不規則物體的方法。它是一個隨機模型,用大量的粒子圖元來描述景物,粒子會隨時間推移發生位置和形態變化。每個粒子的位置、取向及動力學性質都是由一組預先定義的隨機過程來說明的。
粒子系統的基本思想:采用許多形狀簡單的微小粒子作為基本元素來表示不規則模糊物體。
通常粒子系統在三維空間中的位置與運動是由發射器控制的。發射器主要由一組粒子行為參數以及在三維空間中的位置所表示。粒子行為參數可以包括粒子生成速度、粒子初始速度向量、粒子壽命、粒子顏色、在粒子生命中的變化以及其它參數等等。
3.2 N-S方程
N-S方程是一組描述像液體和空氣這樣的流體物質的方程式。這些方程式建立了流體的粒子動量的改變率和作用在液體內部的壓力的變化和耗散粘滯力以及重力之間的關系。它描述作用于液體任意給定區域的力的動態
3.3 噪聲函數
自然界中很多事物都是分形的。它們有很多層次細節,表現出同一種的大小的變化形式。柏林噪聲函數通過直接累加一定范圍內、不同比例的噪聲函數來重現這種現象。使用很多平滑函數,分別擁有各種各樣的頻率和振幅,可以把它們疊加在一起來創建一個漂亮的噪聲函數,這個就是柏林噪聲函數。
4 總結
在學習傳統粒子系統的基礎上,參閱了一定數量的關于火焰模擬的論文,對基于粒子系統和紋理技術的火焰模擬有了一定的了解。希望在熟悉了OpenGL的基礎上,利用粒子系統和紋理技術實現并改進火焰的模擬,以應用到虛擬實驗中。
參考文獻:
[1] 林夕偉,于金輝.基于粒子和紋理繪制的火焰合成[J].計算機應用,2004,24(4).
[2] 張芹,吳慧中,謝雋毅,等.基于粒子系統的火焰模型及其生成方法研究[J].計算機輔助設計與圖形學學報,2001,13(1).
[3] 李建微,陳崇成,唐麗玉,等.基于粒子系統的林火實時繪制研究及實現[J].中國圖像圖形學報,2005,10(9).
[4] 尹勇,金一丞,任鴻翔,等.自然現象的實時仿真[J].系統仿真學報,2002,14(9).