王繼州,夏輝麗
自然現(xiàn)象在計算機(jī)中的模擬,一直是計算機(jī)圖形學(xué)界的學(xué)者們所極大關(guān)注的興趣焦點(diǎn)所在。在現(xiàn)實(shí)的自然世界中,燃燒必須依托于一定的物質(zhì)或過程才會發(fā)生,比如可燃?xì)怏w的燃燒、可燃液體的燃燒、可燃固體的燃燒、化學(xué)反應(yīng)、爆炸等。對于固體如木材、紙張等的燃燒過程,當(dāng)火焰發(fā)生和進(jìn)行以及在熄滅以后,燃物的幾何結(jié)構(gòu)和外觀都有巨大的差異。在這些過程中,固體燃燒會伴隨一系列的物理化學(xué)變化,如燃料分解、燃?xì)忉尫拧⑽镔|(zhì)碳化變黑、體積變化、破碎分離、形態(tài)變化、物質(zhì)轉(zhuǎn)換等。
自然界中固體的燃燒現(xiàn)象極其普遍,燃燒的種類也很豐富,燃燒的過程大不相同。基本上都包括了化學(xué)反應(yīng)的過程、物體形態(tài)的分解和變化、物質(zhì)性質(zhì)的改變、物質(zhì)顏色的變化、火焰的生成和變化,所伴隨的燃燒煙霧的生成與變化等很多物理化學(xué)過程。蚊香和香煙的燃燒過程比較接近,都會有一定長度的灰燼在燃點(diǎn)的附近,到了一定的程度由于受到重力作用而散落下來,散落的過程類似于沙子的墜落。其中,灰燼的體積是守恒的,但會牽涉到復(fù)雜的動力學(xué)運(yùn)算,相關(guān)的模擬方法可以參看文獻(xiàn)[1-2]。還有一些物體燃燒的過程,如塑料物體,在燃燒的過程中,塑料高溫融化并發(fā)生墜落;墜落時處于粘稠的液體也在燃燒;可以類似的用粘稠液體的墜落算法加上燃燒效果的模擬來實(shí)現(xiàn)。
本文著眼于木材、紙張、火柴等物體(以下簡稱的固體專指此類物體)的燃燒過程,從以下幾個方面加以考慮:燃燒時的火焰和煙霧的問題、燃燒時物體形態(tài)的變化(主要是幾何形態(tài)上的變化過程的分析和解決的途徑)、物體性質(zhì)的變化、顏色、材質(zhì)變化等、物體的破碎、卷曲、燃燒灰燼的分離、墜落等。
由固體真實(shí)的燃燒情況來看,需要重點(diǎn)處理幾個過程和幾類物體:火焰的燃燒和蔓延、煙霧的生成變化、物態(tài)變化、形態(tài)變化;燃燒灰燼的處理和表現(xiàn)等。
用計算機(jī)模擬物體燃燒的時候,要考慮火焰在燃燒物體上的分布、變化、蔓延、變化等很多情況和諸多因素。近年來的一些文獻(xiàn)對此作了有益的嘗試,取得了一定的模擬效果。Tomokazu Ishikawa等人2005年在文獻(xiàn)[3]中提出火焰在燃燒時蔓延的情景,其核心思想是利用4個方程來描述和控制燃燒的發(fā)生、傳播和熄滅的過程。包括:燃料的熱傳導(dǎo)方程、著火的判別條件、燃料濃度減少的方程和化學(xué)反應(yīng)的產(chǎn)熱方程等。對于火焰燃燒傳播的渲染:場景中燃燒點(diǎn)的發(fā)光強(qiáng)度由其對應(yīng)的溫度分布值來計算;點(diǎn)光源的顏色由普朗克公式?jīng)Q定。在觀察和渲染燃燒發(fā)光和吸收的時候,還考慮到了火焰的大小、形狀和溫度等因素,該算法通過控制燃料的類型和燃料的分布來實(shí)現(xiàn)對于燃燒時“火苗走向”的控制。其缺點(diǎn)主要是燃燒細(xì)節(jié)的缺失,模擬的結(jié)果只是整體上的一個“形”,沒有考慮燃燒時豐富的自然形態(tài)和煙霧等現(xiàn)象。
洪義等在2010年在文獻(xiàn)[4]中提出了采用Level-Set方法為主要核心的火焰燃燒及蔓延的有效算法,取得了較好的模擬效果?;舅悸肥牵阂訪evel-Set曲面變形為基礎(chǔ),將目標(biāo)形態(tài)、路徑約束和燃燒傳播相結(jié)合的火焰藍(lán)芯曲面演化模型,用以模擬沿路徑的火焰蔓延、移動燃燒物等現(xiàn)象。在火焰細(xì)節(jié)方面引入修正的MacCormack高階對流求解器,采用煙密度演化曲線模擬燃燒過程中的煙霧生成,進(jìn)一步提高火焰真實(shí)感。算法把火焰內(nèi)部物理特性與外在視覺效果結(jié)合起來進(jìn)行建模。具體來說就是:火焰內(nèi)部物理特性可以理解為,燃燒不僅是一種化學(xué)現(xiàn)象、氣體動力學(xué)現(xiàn)象,而且是可以根據(jù)具體的模擬需要進(jìn)行適當(dāng)簡化的過程。對于火焰的化學(xué)屬性、如影視和動漫制作,一般適合采用簡單曲線來逼近燃燒過程中火焰溫度的變化過程,從而避開求解復(fù)雜的化學(xué)反應(yīng)方程式以簡化計算。火焰外在視覺效果主要是藍(lán)芯曲面的運(yùn)動和熱氣體產(chǎn)物的膨脹,火焰藍(lán)芯曲面是燃料氣體和產(chǎn)物的交界面,運(yùn)用Level—Set隱式曲面跟蹤方法,能較好地處理藍(lán)芯的分離、融合及自交等問題。
2011年洪義等人在文獻(xiàn)[5]中提出了火焰模擬的框架,分為前處理、火焰模擬和后處理三個階段,較好地模擬了基本火焰現(xiàn)象和在復(fù)雜曲線、曲面和蔓延規(guī)則約束下的火焰燃燒的場景。采用一個通用的火焰模擬框架,可以自動化地生成真實(shí)可控的火焰動畫,該框架的使用,在不改變火焰宏觀運(yùn)動的基礎(chǔ)上,豐富火焰細(xì)節(jié)、提高火焰真實(shí)感。前處理階段將用戶的各類顯式輸入信息轉(zhuǎn)化為隱式約束條件,用以控制火焰的宏觀運(yùn)動。火焰模擬階段結(jié)合隱式約束下的宏觀運(yùn)動與火焰模擬方法生成的微觀細(xì)節(jié),得到火焰在粗網(wǎng)格下的運(yùn)動。后處理階段利用火焰模擬階段生成的各種數(shù)據(jù),保障火焰模擬時的高精度細(xì)節(jié)的處理和再現(xiàn)。
煙霧模擬的方法主要有幾大類:以粒子系統(tǒng)思想為主的煙霧模擬、進(jìn)行數(shù)學(xué)建模和分析、運(yùn)用流體力學(xué)等物理規(guī)律的煙霧模擬、基于視覺效果的紋理技術(shù)的煙霧模擬等。具體的方法和模型主要包括:粒子系統(tǒng)方法的煙霧模擬、傳統(tǒng)的數(shù)學(xué)物理模型、基于紋理技術(shù)的模擬(如文獻(xiàn)[6]等)、無量綱處理的煙霧模型、基于形狀控制的煙霧模擬、Lattice-Boltzmann方法的煙霧模擬、基于GPU(圖形處理器)加速的煙霧模擬、外力作用下的煙霧模擬、還有基于“細(xì)絲”或“薄片”的煙霧模擬方法、自適應(yīng)的動態(tài)網(wǎng)格劃分的方法求解和簡化 Navier-Stokes流體方程等;關(guān)于煙霧的模擬,本文作者在文獻(xiàn)[7、8]中有詳細(xì)的論述和分析比較,不作為本文的研究重點(diǎn),此處不再列舉。比較分析?
物體在燃燒過程中,由于劇烈、快速的化學(xué)變化使其形態(tài)發(fā)生了本質(zhì)的改變:體積的變化、顏色和材質(zhì)的變化、物體結(jié)構(gòu)的內(nèi)在變化、溫度分布的不均勻變化、質(zhì)量的變化等等。固體在燃燒過程中,自身物質(zhì)會發(fā)生分解或整個物體會解體為幾個部分,但這個現(xiàn)象并不同于單純的剛體破碎。因?yàn)閯傮w破碎以后,不考慮其各部分的燃燒效應(yīng),體積不會再發(fā)生變化。而燃燒的物體分解成多個子物體以后,各部分都會成為獨(dú)立的燃燒主體,物質(zhì)和形態(tài)會發(fā)生相應(yīng)的變化,因而不能用剛體破碎的相關(guān)模型來實(shí)現(xiàn)。同樣的,對于紙張的燃燒而言也不同于單純的曲面的彎曲的問題,如文獻(xiàn)[8]等。由此可以看到,物體燃燒的模擬其實(shí)是極其復(fù)雜的過程,牽涉到很多的技術(shù)前沿、需要綜合考慮的處理手段。
Zeki Melek從2003年到2007年連續(xù)發(fā)表系列文章,對固體燃燒進(jìn)行了深入的研究。他在2007年的博士論文[9]中,對其模擬方法進(jìn)行了詳細(xì)的闡述和總結(jié),以下進(jìn)行簡要的分析。
其算法核心主要包括幾個部分:火焰燃燒的處理、固體分解時邊界的變化、固體燃燒的體態(tài)分解、彎曲和褶皺的處理等。算法在模擬燃燒火焰的時候運(yùn)用粗網(wǎng)格的流體動力學(xué)方程,在一個統(tǒng)一的系統(tǒng)中求解和模擬燃料的運(yùn)動。在燃燒區(qū),燃燒產(chǎn)生的熱量影響空氣的運(yùn)動,從而影響火焰的形態(tài)和運(yùn)動,同時,這些熱量的傳輸不受火苗傳播蔓延的影響。在燃燒過程中,通過控制網(wǎng)格中的氧氣、廢氣和燃料等來控制燃燒的過程和火焰的熄滅。熱量的傳播分為3個階段:熱量傳播到空氣中(用半拉格朗日平流法的隱式積分來計算)、熱量傳播到空氣和固體之間、固體內(nèi)部的熱傳導(dǎo)。
邊界的移動定義為固體燃料消耗基礎(chǔ)上的燃料消耗的速度梯度方向。固體的距離場隱式表示法能處理復(fù)雜的邊界和拓?fù)涞淖兓材軐⒔换サ目梢暬M(jìn)行多邊形化。固體距離場運(yùn)用Level-Set方法來追蹤移動的邊界,采用半拉格朗日時間步的方案很有效。通過對Level-Set方法進(jìn)行簡化,從而跳過更新初始化的過程而無需任何人為的效果。
燃燒化學(xué)反應(yīng)中的小變化就會引起給定物體形態(tài)上的較大的變形,F(xiàn)FD(自由形式的變形)是一個較好的處理方法。算法用一個替代物(作為彈簧模型)的邊緣來映射物體的相應(yīng)變化,該替代物充當(dāng)了一個空間控制結(jié)構(gòu),從而對其所代替的物體發(fā)生作用,如圖1所示:
圖1 Zeki Melek算法中物體燃燒變形的FFD過程
另外,物體一個屬性的變化也會引起其他屬性的變化,包括幾何和拓?fù)浞矫娴淖兓?。算法定義了一個多屬性模型,包括物體的各種屬性(物體拓?fù)浣Y(jié)構(gòu)的變化、燃燒灰燼、熱量的傳播和熱燃料的消耗等)及其相互作用。定義性能操縱函數(shù)(PMFS),把作用在物體的量分為兩組(內(nèi)部和外部),外部作用量如碰撞、風(fēng)力、磁場和物體間的相互作用等;內(nèi)部的作用量如物體內(nèi)部的熱量傳播、力的傳播、由于化學(xué)反應(yīng)引起的物體成分的變化等。
物體的分解過程包括物體屬性及其表示(主要處理3個方面:物體邊界和體積的變化、物體內(nèi)部熱量的傳播和物體的熱分解過程)、模擬的具體過程。模擬的具體過程主要有7個方面:外部熱量的交換、內(nèi)部人類的交換、熱分解的引發(fā)、固體釋放燃料引發(fā)邊界屬性表示的變化與更新、產(chǎn)生溫度多邊形的表示、物體的碰撞、引發(fā)物體拓?fù)浣Y(jié)構(gòu)的變化、分裂等。其中最后一個方面主要功能是檢測到燃燒中所形成的碎塊,從隱式表示中產(chǎn)生的多邊形用于檢測這種分離物。與快速的多邊形-湯算法相比,這里需要一個完整的固體目標(biāo)表示(包括拓?fù)潢P(guān)系),如果檢測到固體有碎片被分離出來,就相應(yīng)地為各個碎片部分產(chǎn)生對應(yīng)的體積和距離場,從而實(shí)現(xiàn)2個或多個分離的碎片物體能夠單獨(dú)進(jìn)行再處理。
對于燃燒物體的形變和燃燒破洞,采用 FFD(類似于3D Max中的FFD物體變形功能)來實(shí)現(xiàn)。如圖1所示,把物體將要發(fā)生的形態(tài)變化參數(shù)先運(yùn)用到該替代物上,在模擬結(jié)果的基礎(chǔ)上修改替代物,由修改后的替代物生成物體的形變。為了保證物體形態(tài)變化的有效性,要求替代物具有良好的形變結(jié)構(gòu),而且操作簡單、變形的相似程度較高。對于火柴的模擬,應(yīng)用簡單的邊界盒,沿著彎曲軸分成若干段(1*1*N,稱為一維網(wǎng)格包裹)。對于紙張的模擬,采用兩個軸向上的二維網(wǎng)格包裹(N*M*1),具體過程可以參看文獻(xiàn)[9]。
在2009年的Yi Hong等人在文獻(xiàn)[10]中提出了基于幾何約束控制的火焰燃燒蔓延的模擬算法,能夠?qū)崿F(xiàn)燃燒在靜態(tài)和動態(tài)物體上的傳播:如燃燒的花朵和稻草人、破碎的燃燒球、燃燒的奔馬、燃燒變形的繩索等,可以較好地處理和模擬燃燒在三維運(yùn)動物體上生成和蔓延的過程。算法解決了燃燒蔓延過程中的3個關(guān)鍵問題:用通用的幾何約束方法來描述和捕捉火焰燃燒的蔓延、將幾何約束和火焰的蔓延轉(zhuǎn)化為隱式控制條件、改進(jìn)在隱式控制條件下的基于物理的火焰生成模型。
算法實(shí)現(xiàn)火焰燃燒蔓延的過程如下:在預(yù)處理階段,將用戶所指定的火焰的幾何約束(如曲線路徑、由最近點(diǎn)方程所描述的運(yùn)動網(wǎng)格模型等)轉(zhuǎn)化為統(tǒng)一化的表示。在完成初始化和設(shè)定了時間步長以后,在設(shè)定的燃燒蔓延的規(guī)則下,由其所產(chǎn)生的靜態(tài)的或動態(tài)的幾何約束來捕捉對應(yīng)的火焰投射,從而自動地生成CBC(虛擬的控制藍(lán)芯的技術(shù))。CBC的形變信息由L-Speed方程來處理,由此實(shí)現(xiàn)火焰在燃燒物體上的移動;在此過程中,基于物理的模型負(fù)責(zé)表現(xiàn)火焰燃燒的細(xì)節(jié)部分。更新完CBC的形變信息后,氣體燃料的移動速度、火焰溫度的變化等相關(guān)信息會進(jìn)入到下一個時間步長進(jìn)行后續(xù)處理?;鹧嫒紵臏囟刃畔⒂糜谧罱K的渲染,生成物體的顏色和亮度。算法的具體實(shí)現(xiàn)只要用到4個核心處理算法:火焰自身的模擬、路徑或曲面的統(tǒng)一化處理、CBC的生成算法和火焰最終的生成算法。該算法沒有模擬燃燒過程中物態(tài)的變化以及物體燃燒時的物質(zhì)的分解及變化過程,比較適合于模擬影視、廣告特技中動態(tài)物體的燃燒場景。
在模擬靜態(tài)物體燃燒方面,有一些較為典型的算法,如朱鑒等人2011年在文獻(xiàn)[11]中提出一種新的燃燒模型,用以模擬固體燃燒過程中產(chǎn)生的火焰及其伴隨的物質(zhì)分解過程,并采用一系列的加速技術(shù)取得了實(shí)時模擬效果。模型包含一套混合的網(wǎng)格系統(tǒng):一個是覆蓋整個模擬區(qū)域的全局網(wǎng)格,用于存儲溫度場、模擬動態(tài)的火焰;一個局部網(wǎng)格存儲燃料、氧化劑、符號距離等信息模擬物質(zhì)的燃燒分解;一個動態(tài)的移動網(wǎng)格用以求解流體運(yùn)動的控制方程,實(shí)現(xiàn)火焰?zhèn)鞑サ母?。熱量在空氣和物質(zhì)內(nèi)部的傳導(dǎo)過程用一個統(tǒng)一的公式表達(dá)出來,能夠很好地將火焰與燃燒的固體耦合在一起。燃面的推進(jìn)和更新采用基于 Level-Set的方法,可視化燃面采用的是新的紋理映射算法,從而模擬出物質(zhì)的分解過程。
2012年Shiguang Liu等人在文獻(xiàn)[12]中,實(shí)現(xiàn)了火焰在靜物上的燃燒和蔓延。靜物在燃燒的過程中,物體體積會減小、固有的幾何拓?fù)浣Y(jié)構(gòu)會發(fā)生相應(yīng)的變化。其具體做法是,在燃燒理論的基礎(chǔ)上建立一個溫度場的動力交互模型(TFMI)來模擬燃燒的火焰和物體的相互作用。在該模型中,物體的分解用改進(jìn)的Level-Set方法和每個時間步長所更新的溫度場所導(dǎo)致的火焰蔓延進(jìn)行模擬;火焰采用穩(wěn)流方法來計算和模擬并融合到整個燃燒的場景中。利用溫度場的信息,將物體的頂點(diǎn)劃分為外部(包括邊界)頂點(diǎn)和內(nèi)部頂點(diǎn)(即該點(diǎn)不在物體的表面,而是在物體內(nèi)部)。由于物體到達(dá)自熱解溫度時會分解、釋放熱量而影響溫度場,同時物質(zhì)轉(zhuǎn)化為熱氣產(chǎn)物也為燃燒增加燃料了來源。算法的關(guān)鍵是判斷動態(tài)的界面,進(jìn)而將物體上的燃點(diǎn)劃分為3類:燃點(diǎn)、未燃點(diǎn)和已燃點(diǎn)。該模型可以用相對較為簡單的幾何模型來控制物體在燃燒過程中的形變和火焰的推進(jìn)蔓延效果;局限性在于它不能很好的模擬動態(tài)的燃燒物體,物體的分解效果并不是很明顯和很自然。
Dhanyu在2011[13]和2012年[14]提出了新的模擬方法,該模型主要實(shí)現(xiàn)的是在燃燒的固體上“挖掉”火焰燃燒的部分,同時還要處理好物體表面紋理的相應(yīng)變化,并且能夠在GPU上加以實(shí)現(xiàn)(通過通用的自適應(yīng)網(wǎng)格重構(gòu)—GAMeR技術(shù),在CUDA硬件上實(shí)現(xiàn)),不涉及物體整體的燃燒變化。該算法能夠較好地模擬燃燒在物體的局部所發(fā)生的完全燃燒的情況,即不留下燃燒的痕跡和灰燼,可以有效地挖除燃燒物質(zhì),并使物體的體積發(fā)生較快的變化,算法比較適合于對模擬精度要求不高的場景環(huán)境。
以上固體燃燒的模擬方法,大多是針對木棒或木材、火柴燃燒。一些文獻(xiàn)對于紙張等比較薄的物體的燃燒進(jìn)行了相關(guān)的研究,如Frank Losasso于2006年[15]提出的算法實(shí)現(xiàn)紙張的燃燒效果。
算法采用四面體和三角網(wǎng)格,用四叉樹的數(shù)據(jù)結(jié)構(gòu)存放格點(diǎn)物質(zhì)的相關(guān)信息(對應(yīng)于模擬結(jié)果的格點(diǎn)網(wǎng)格信息,簡稱四叉樹網(wǎng)格),使用標(biāo)準(zhǔn)的基于元素的力來進(jìn)行計算和碰撞算法正確地進(jìn)行調(diào)整。由于在燃燒過程中,固體會不斷地消失,要采用動態(tài)侵蝕網(wǎng)格作為物質(zhì)的消失,還要為碰撞和渲染而保持光滑的表面。因此,在模擬的過程中,自適應(yīng)地提取模擬網(wǎng)格的邊界元素來提高精確度,有效地保存較大的元素。對于紙張、布料等薄殼物體,每個元素都在表面。而對于體物質(zhì),其內(nèi)部結(jié)構(gòu)不可見,因而變得極其復(fù)雜,需要二維的的薄殼物質(zhì)結(jié)構(gòu)進(jìn)行模擬。類似于三維的模擬算法,為了支持動態(tài)網(wǎng)格自適應(yīng)性,采用統(tǒng)一的體心正方形(BCS)三角格,每個正方形劃分為4個三角形,如圖2所示:
圖2 文獻(xiàn)[15]的BCS三角片的紅綠劃分方式及其演化過程
該算法不同于Level-Set的地方在于:用紅-綠重構(gòu)法,并拋棄那些完全處于物體以外的三角面。模擬在紅-綠的父網(wǎng)格上進(jìn)行,Level-Set的操作是運(yùn)用覆蓋一個紅-綠結(jié)構(gòu)頂點(diǎn)上的四叉樹網(wǎng)格,每一個網(wǎng)格結(jié)點(diǎn)對應(yīng)四叉樹網(wǎng)格的一個結(jié)點(diǎn)。這種方法的只要優(yōu)點(diǎn)是前面的演化過程在一個四叉樹的網(wǎng)格上,能再二維物質(zhì)空間中實(shí)現(xiàn),其效果和和物質(zhì)在三維中的變形一樣。
2009年 Shiguang等人在文獻(xiàn)[16]中提出了基于梯度的傳播模型,可以模擬薄殼物體上的火焰燃燒和所伴隨的彎曲與變形的過程。對于燃燒時物體的變形,采用的也是基于FFD的變形方法,不同的是,其考慮了真實(shí)的燃燒現(xiàn)象的相關(guān)理論。其算法思路大致是采用一個統(tǒng)一的框架來模擬薄殼物體的燃燒現(xiàn)象,主要包括:3個模塊:基于梯度的火焰?zhèn)鞑サ哪M、基于 FFD的物體燃燒過程的形變、處理燃燒和變形的燃燒框架的設(shè)計。該系統(tǒng)易于實(shí)現(xiàn),在輸入不同的參數(shù)的時候,能自動生成不同的燃燒場景。
各種方法中也普遍存在很多不盡人意的地方,在處理具體問題的時候都還有很多關(guān)鍵的問題沒有搞清楚,也沒有進(jìn)行合理的對待,大致有以下幾個方面:
人們在用計算機(jī)圖形技術(shù)模擬固體燃燒的時候,所考慮的情況還不夠全面、細(xì)致,對于物體在燃燒過程中所發(fā)生的一系列巨大的變化考慮不全面,如變形和分離、動力學(xué)系統(tǒng)等都存在一定的缺失,特別是對燃燒后物質(zhì)的遺留物也沒有加以認(rèn)真、合理的考慮和對待。
火焰和煙霧模擬的數(shù)理方法過于依賴NS方程的求解和簡化。實(shí)際生活中我們發(fā)現(xiàn),火焰和煙霧現(xiàn)象并非是流體現(xiàn)象,而是燃燒所導(dǎo)致的氣體和固體微粒運(yùn)動。特別是油料等的不完全燃燒、木材、紙張等點(diǎn)燃時的情況等,都是內(nèi)在的化學(xué)反應(yīng)機(jī)制在起作用?;鹧媸俏镔|(zhì)化學(xué)反應(yīng)所引起的發(fā)光,主要是氣體成分;煙霧是從高溫燃燒的氣體中脫離出來的固體顆粒,由于其自身不發(fā)光、不透明而為人們所能看見。燃燒時的煙霧大多數(shù)情況下與燃燒物質(zhì)和燃燒的環(huán)境息息相關(guān)。
當(dāng)前通用的流體模擬算法大多數(shù)是在“封閉”區(qū)域內(nèi)進(jìn)行計算,為了能夠正確“求解”而設(shè)定了諸多特定的“邊界條件”。然而日常經(jīng)驗(yàn)告訴我們:火焰和煙霧的發(fā)生、擴(kuò)展、運(yùn)動變化、消逝等自然過程,大多是在開放的場景中進(jìn)行的,并沒有固定的“體積”和“邊界”。
人們往往希望表現(xiàn)出完美而細(xì)致的細(xì)節(jié),并且該細(xì)節(jié)往往還要進(jìn)行諸如與實(shí)體碰撞、分解、光照、散落等其他特殊處理和效果。物體燃燒的細(xì)節(jié),一方面表現(xiàn)在物體燃燒的所有的物理化學(xué)過程要分析清楚和表現(xiàn)得更加全面一些;另外,燃燒時其他物體的參與或與實(shí)體交互要有其應(yīng)有的動力學(xué)屬性。
好的火焰煙霧模擬方法,要體現(xiàn)在好的表現(xiàn)形態(tài)上。如火焰煙霧的發(fā)生、擴(kuò)散、合理消散、顏色變換、體積變化等效果。比較而言,油料物品的燃燒會產(chǎn)生旺盛的火焰和滾滾濃煙,渦流十分豐富,燃燒運(yùn)動極其劇烈。木材等固體燃燒的煙霧,相對而言就比較稀疏,濃度很小、似隱似現(xiàn)、隨風(fēng)飄散。點(diǎn)燃的香煙幾乎沒有明顯的火苗,煙霧呈現(xiàn)出絲狀和細(xì)縷狀,很快消失在空間中。還有近年來的一些影視效果、廣告效果、藝術(shù)效果等都有很豐富多樣的火焰和煙霧的表現(xiàn)形態(tài)。
算法的運(yùn)行速度一般取決于機(jī)器硬件和算法本身的復(fù)雜度?,F(xiàn)今,圖形技術(shù)所涉及的算法越來越復(fù)雜,對硬件條件的要求也越來越高。算法設(shè)計方面,諸如網(wǎng)格的劃分、物體的破碎、灰燼的跌落等的處理,都會帶來“大數(shù)據(jù)”的生產(chǎn)、處理和繪制等眾多問題。真實(shí)的物理、化學(xué)過程的分析和計算更是如此,求解流體方程的代價也是極高的,即使是一些簡化算法,也需要進(jìn)行一些復(fù)雜的數(shù)學(xué)處理。
目前的一些紋理方法,在處理光照方面比較吃力,困難重重,例如固體表面的細(xì)微結(jié)構(gòu)。如果把物體的表面用單純的平面紋理來表現(xiàn),則無法體現(xiàn)出物體自身的表面性質(zhì)。比如說墻體的表面:正常的墻面會對光線進(jìn)行漫反射,即入射光是被發(fā)散到四處的;如果用平面來代替墻面,就會發(fā)生鏡面反射;這并不符合現(xiàn)實(shí)情況。另一個方面,如果把物體表面看成是由數(shù)以百萬計的微小顆粒所組成,就要處理每個顆粒的光照和陰影,這需要消耗極其巨量的計算機(jī)系統(tǒng)資源,目前還無法實(shí)現(xiàn)。如果把物體表面結(jié)構(gòu)劃分為相對較大的網(wǎng)格結(jié)構(gòu),就會損失計算和模擬上的細(xì)節(jié),從而無法準(zhǔn)確地再現(xiàn)其燃燒過程中真實(shí)的物理化學(xué)和細(xì)節(jié)。光照的問題也不是孤立存在的,很多類似自然現(xiàn)象的模擬(如融化、剛體破碎、沙子飛散等),都要面對這樣的困難。研究者可以借鑒這諸多方面的經(jīng)驗(yàn)來加以研究,這也是一種很好解決途徑。
物體真實(shí)的燃燒模擬由于燃料的復(fù)雜性和外部形態(tài)的多變性,從而在計算機(jī)圖形學(xué)的真實(shí)化模擬當(dāng)中占據(jù)著舉足輕重的地位。一直是計算機(jī)圖形技術(shù)重點(diǎn)考慮的問題,也是一個長時間沒有很好地加以重視和解決的難點(diǎn)問題。而現(xiàn)實(shí)生活和社會的各個方面,如燃燒分析、藝術(shù)表現(xiàn)、影視特效、虛擬技術(shù)、廣告行業(yè)、軍事領(lǐng)域等行業(yè)對此卻提出了越來越高的要求和越來越豐富的效果的需求。因此,此類研究有著十分重要的現(xiàn)實(shí)價值和學(xué)術(shù)價值。
本文對幾類常見固體的燃燒過程進(jìn)行實(shí)際分析,介紹了模擬算法及其實(shí)現(xiàn)的主要方法,并進(jìn)行了分析和對比。研究了近年來出現(xiàn)的一些最新發(fā)展和未來需要去進(jìn)一步面對和解決的問題和困境,提出了一定的解決思路。對于自然物體真實(shí)燃燒的逼真再現(xiàn)和快速、有效模擬,目前已經(jīng)有一些解決的辦法和比較成功的算法模型,也有學(xué)者進(jìn)一步深入探討和研究;但還是遠(yuǎn)遠(yuǎn)沒有達(dá)到人們的期望,也沒有實(shí)現(xiàn)人們的急切需求。今后還需進(jìn)行更加深入、廣泛的思考和研究,需要加倍的努力和嘗試。
[1]Rahul Narain,Abhinav Golas,Ming C.Lin.Flowing Granular Materials with Two-Way Solid Coupling[J].ACM Transactions on Graphics,2010,29(6):No.173,1-9.
[2]Nadir Akinci,Markus Ihmsen.Versatile Rigid-Fluid Coupling for Incompressible SPH[J].ACM Transactions on Graphics,2012,31(4):No.62,1-8.
[3]Tomokazu Ishikawa,Ryo Miyazaki.Visual Simulation of Spreading Fire[DB/OL](2014-01-23).http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.77.5540&rep=rep1&type=pdf.
[4]洪義,王兆其,朱登明,邱顯杰.基于 Level-Set的火焰動畫生成方法研究[J].計算機(jī)研究與發(fā)展,2010,47(11):1849~1856.
[5]洪義,朱登明,邱顯杰,王兆其.逼真可控的火焰動畫框架研究與實(shí)現(xiàn)[J].計算機(jī)應(yīng)用,2011,31(1):45~49.
[6]王繼州,袁雪霞.紋理球方法的煙霧模擬[J].小型微型計算機(jī)系統(tǒng),2013,34(7):1685~1688.
[7]夏輝麗,王繼州.煙霧模擬的研究綜述[J].電腦知識與技術(shù),2014,10(21):5083~5086.
[8]Pengbo Bo,Wenping Wang.Geodesic-Controlled Developable Surfaces for Modeling Paper Bending[J].Computer Graphics Forum,2007,26(3):365~374.
[9]Zeki Melek.Interactive Simulation of Fire Burn and Decomposition[D].Ph.D,Texas A&M University,2007.
[10]Yi Hong,Dengming Zhu,etc.Geometry-based control of fire simulation[J].The Visual Computer,2010,26(9):1217~1228.
[11]朱鑒,鮑凱,常元章,柳有權(quán),吳恩華.實(shí)時模擬固體燃燒現(xiàn)象[J].計算機(jī)輔助設(shè)計與圖形學(xué)學(xué)報,2011,23(1):11~20.
[12]Shiguang Liu,Tai An,Zheng Gong,Ichiro Hagiwara.Physically Based Simulation of Solid Objects'Burning[J].Transactions on Edutainment VII Lecture Notes in Computer Science Volume 7145,2012:110~120.
[13]Dhanyu Amarasinghe,Ian Parberry.Believable real-time Rendering of Burning low-polygon Objects in Video Games[DB/OL].Technical Report,LARC,2011,University of North Texas Denton,Texas,USA.http://larc.unt.edu/techreports/LARC-2011-04.pdf.
[14]Dhanyu Amarasinghe,Ian Parberry.Real-time Rendering of Burning Solid Objects in Video Games[DB/OL].Technical Report,LARC,2012,University of North Texas Denton,Texas,USA.http://larc.unt.edu/techreports/LARC-2012-01.pdf
[15]Frank Losasso,Geoffrey Irving, Eran Guendelman,Ron Fedkiw.Melting and Burning Solids into Liquids and Gases[J].IEEE Transactions on Visualization and Computer Graphics,2006,12(3):343~352.
[16]Shiguang Liu,Qiguang Liu,Tai An,Jizhou Sun,Qunsheng Peng.Physically based simulation of thin-shell objects’burning[J].The Visual Computer,2009,25(5-7):687~696.