白云菲
(中南民族大學計算機科學學院 湖北 武漢 430074)
在高質量圖形的實時生成要求下,如何從軟件方面著手減少圖形畫面的復雜度,已成為VR圖形生成的主要目標。研究人員提出多種圖形生成加速方法,細節層次(Levers of Detail,LOD)模型就是其中一種主要方法。傳統幾何建模中,一般的LOD技術的原理是根據物體距離視點的遠近來決定所建模型的頂點數目[2]。對于粒子系統,我們可以結合LOD技術,進行物體模擬,即當視點較近時,每次產生較多的粒子,視點較遠時,則可以產生較少的粒子,從而對粒子模擬進行簡化,減少系統計算量,提高繪制效率。丁強等人提出的基于LOD技術的火焰模擬[3],能夠在減少計算量的基礎上,對火焰進行較好地模擬,但是,簡化后的圖像并沒有根據視覺特征效果對粒子系統進行精簡,據此,本文基于火焰幾何模型中粒子的視覺重要度,對該技術進行了改進,在模擬火焰燃燒方面,能夠達到更好的效果。
對粒子屬性的初始化設置一般可以通過簡化的隨機過程來控制[4],對于每一個屬性首先確定其變化范圍,然后在該范圍內隨機地確定它的值,隨機性效果可以通過具有一定的概率分布隨機函數來產生,進而影響粒子系統的整體外觀輪廓,屬性的變化范圍則由給定的平均期望值和最大方差來確定,其基本表達式為:

(1)式中Value為任意一個需要隨機確定的粒子屬性值;MeanVlaue為該屬性的平均值;Rand()為[-1,1]中的隨機數函數;VarValue為方差,即屬性在平均值附近的變化范圍。在火焰粒子系統中初始的位置、初始的運動速度、受力都可以由式(1)式來直接生成。
粒子的屬性變化構成了粒子的運動變化,對于透明度和顏色、生命值、粒子大小等屬性,通過式(2)[5]進行控制:

式中,ValueStart為粒子系統該屬性的初始值,ValueEnd為此粒子終止時的屬性值,LifeTime為粒子的壽命值,TimeDelta則為此幀與上一幀的時間跨度值。某一幀粒子的位置可以由其速度和上一幀的位置得到。
(3)(4)式中P為位置,V為速度,A為加速度。計算粒子系統的總體受力算法[6]如下:
I:計算當前粒子各個方向受力情況;
II:根據受力求出加速度;
III:利用(3)(4)式求出速度與位置的改變。
在粒子生成步驟中,結合LOD(層次細節)模型,對粒子系統產生新粒子的數目值設置為:

上式中,N0表示沒有進行簡化的原始幾何模型的頂點數,Nm表示第m級簡化模型的頂點數。粒子系統中,在距離Lm產生的粒子數均值作為Nm。即當視點較近時,每次產生較多的粒子,視點較遠時,則產生數量線性較少的粒子,這樣就降低了很多計算機處理的時間,提高了系統的繪制效率。
上述方法實現了計算量的降低,但是,并沒有對粒子的視覺重要程度進行判斷,只是線性地根據距離減少粒子的生成數量。頂點視覺重要度決定了頂點的凹凸幾何特性,在三維場景渲染中,凹凸性高的點更多能夠決定場景的真實度[7]。
頂點的視覺重要度的確定由頂點視覺特征因子和頂點曲度特征因子共同決定[8],根據法曲率可以計算頂點曲度特征因子,法曲率反映了曲面在一點處沿指定方向的彎曲程度和彎曲方向,可以對曲面在一點處沿任意方向的彎曲性量化。高斯曲率和平均曲率共同確定法曲率,進而確定了頂點曲度特征因子。
通過對頂點視覺重要度的計算,在粒子系統更新時可根據視覺重要度為零的點進行剔除,可以使頂點的重要視覺特征得以最大保持,并最大程度地降低系統的渲染時間。即在粒子系統中首次渲染場景時,對粒子進行掃描并記錄每個粒子的視覺重要程度,在后續的更新粒子過程中,對記錄中平坦點位置的粒子不進行渲染,以減少渲染量。
利用OpenGL圖形開發庫,在VC++6.0環境下,對火焰粒子系統進行模擬,并將粒子的LOD簡化策略及平坦點剔除加入了火焰粒子系統的實現。系統中采用的幀率為32,即每幀所用渲染時間為0.03125s,設置初始L0=50,N0=10;采用線性LOD簡化模型。
由實驗數據可知,引入平坦點剔除后,為達到相同的視覺效果,系統產生新粒子數量減少約20%-25%左右,即在引用LOD技術進行線性降低粒子發射量的基礎上,結合考慮粒子系統中每個粒子的視覺重要程度,對視覺凹凸性低的點予以剔除,能夠在保持視覺效果的基礎上,給系統減少計算負擔,提高渲染效率。
[1]Revees W T.Particle Systems:A Technique for Modeling a Class of Fuzzy Objects[C]∥Proc of ACM SIGGRAPH’83,1983,17(3):359-376.
[2]郭陽明,翟正軍,陸艷紅.虛擬場景生成中的LOD技術綜述[J].計算機仿真,2005,12(22):180-185.
[3]丁強,陳青林,左福強.基于 LOD的火焰粒子生成技術[J].計算機應用,2005(25):257-258.
[4]彭群生,鮑虎軍,金小剛.計算機真實感圖形的算法基礎[M].北京:科學出版社,2003.
[5]陳志偉,馬小虎.基于粒子系統和紋理繪制的火焰模擬[J].計算機工程與科學.2010,1(32):71-73.
[6]DANIEL SANCHEZ2CRESPO DALMAU.游戲核心算法編程內幕[M].邱仲潘,譯.北京:中國環境科學出版社,2004.
[7]Frutuoso G M.Silva NSA simplification algorithm.Geometrical vs.visual quality[C].5th International Conference on Computational Science and Applications,2007.