張沛露
(吉林建筑大學電氣與計算機學院,長春 130011)
伴隨著計算機硬件設備的發(fā)展和人們消費水平的提高,人們開始注重更多的視覺享受,提高視覺享受的前提就是給用戶最真實最完美的享受,此次設計研究的就是基于OpenGL 的雨雪場景仿真,這一研究可以利用到生活的很多部分。
目前雨雪場景仿真普遍的辦法是利用粒子系統(tǒng)在模擬雨雪粒子的前提下,引入天空盒技術,將視角移入類似盒子的空間。Skybox 是整個場景的一個包容,變現(xiàn)了幾何之外的世界。使用Skybox 模擬真實的場景,如廣闊的天空,高大雄偉的山脈。在空間的中央當做攝像頭的位置,通過鼠標的移動來完成視角的轉換。而針對雨雪的降落,采用渲染和材質等技術將雨雪做的更為逼真,應用了shader 技術,將雨粒子和雪粒子和天空盒著色。通過粒子系統(tǒng)對粒子隨機降落,大小更變達到雨雪遠近的效果,為了提高真實性,還將加入風的元素,通過改變風向來調節(jié)雨雪的方向,改變風的大小來達到雨雪被被風吹的效果,讓視覺體驗更完整。
通過全面分析基于OpenGL 的雨雪仿真場景系統(tǒng)的各項需求,本系統(tǒng)利用OpenGL 這個圖形API 為基礎,實現(xiàn)雨雪場景的建模和基本圖形變換。
天空盒是一種常用的增加模擬性能的手段,它通常是利用相機包圍內附著一個紋理來完成的,紋理一般是一些云朵、山脈或湖泊等。天空盒的根本原則其實并不復雜,它相當于在視野范圍邊緣安裝了個盒子。盒子里有六個面,分別使用6 可以拼接在一起的圖片。從實現(xiàn)的角度理解,天空是第一個盒子拿著相機在同一位置,然后畫出盒子。
為了實現(xiàn)模擬要求,存儲器操作模塊和數(shù)組基本模塊組成完整的3D 效果模擬仿真的基本模塊。內存管理模塊負責監(jiān)視,它模擬系統(tǒng)啟動時內存的處理情況和利用比率;數(shù)學基礎模塊內涵2D 和3D 的運算操作。
核心模塊雨系統(tǒng)的各個模塊皆有聯(lián)系,他是系統(tǒng)的總負責模塊,控制并操作系統(tǒng)。具有絕對的掌控權。它還有用戶與系統(tǒng)交互的責任,并提供用戶對其他功能的模塊的響應和傳輸。場景控制模塊主要控制場景的管理和操作。粒子系統(tǒng)模塊主要控制粒子的操作,包括粒子的初始化,粒子更新和粒子消亡。
系統(tǒng)處理流程包括以下幾個步驟:
①系統(tǒng)控制模塊將系統(tǒng)初始化;
②場景管理模塊搭建視點與視口,場景初級搭建;
③粒子系統(tǒng)管理模塊進行粒子生成以及粒子應有屬性;
④場景管理模塊將雨雪粒子運行在場景中,制造場景結點;
⑤圖形渲染模板通過OpenGL 對場景數(shù)據進行渲染操作。
粒子系統(tǒng)的理論和通識,每一個粒子的生命周期都包括生產,運動過程和消亡等幾個過程。粒子系統(tǒng)會有如下過程:
①產生新粒子并賦予屬性;
②除去已過生命周期的粒子;
③將仍存活的粒子進行更新和更新屬性操作;
④渲染系統(tǒng)中還在生命周期內的粒子。
Skybox 是將一個正方體內部進行貼圖操作,一般由六個貼圖組成,達到場景在方塊盒中搭建,這樣會大大增加場景的真實性。由于天空盒實際上是立方體貼圖,因此加載天空盒和加載立方體貼圖的方式沒有什么不同。
粒子系統(tǒng)會隨機的生成雨雪粒子,并且初始化粒子的屬性,包括大小方向形狀和透明度等等,這些因素也都會因為粒子系統(tǒng)的隨機性而不斷改變,因此粒子系統(tǒng)在模擬無規(guī)則形狀的實體有很大優(yōu)勢??偨Y而知,粒子系統(tǒng)最重要的是粒子的運行軌道,選擇合適的運動函數(shù)將會使渲染效果更真實完美。其次,坐標系的選擇(即視角)也有一定的關系。
本文以OpenGL 為基礎,采用了粒子系統(tǒng)的開發(fā)模式,完成了雨雪仿真系統(tǒng)的設計與實現(xiàn)。根據標準的開發(fā)工具需求,開發(fā)過程中必須使用OpenGL 圖形庫操作來完成,主要應用粒子系統(tǒng)來完成雨雪的模擬,應用天空盒技術來實現(xiàn)場景模型的搭建,還用到了渲染著色器貼圖等技術綜合完成,使得功能基本完善,畫面仿真度高。