999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

GPU支持下基于粒子系統編輯器的特效技術研究

2011-07-07 03:36:34陳顯軍李心穎湛永松
圖學學報 2011年6期
關鍵詞:系統

陳顯軍, 李心穎, 湛永松

(1. 海口經濟學院信息工程學院,海南 海口 570203;2. 桂林電子科技大學計算機科學與工程學院,廣西 桂林 541004)

在計算機游戲設計領域,各種特效的模擬一 直是其研究熱點之一。大多數特效現象都具有形狀不規則及隨機多變的特性,難以使用傳統的計算機圖形學方法建模。粒子系統具有能實時模擬不規則物體的優勢。隨著現代計算機硬件性能的提高,各種粒子系統和粒子特效的復雜度也隨之提高,并成為計算機游戲開發過程中特效繪制的一種必要機制。但傳統的粒子系統存在難以精確控制和運算量大的問題,導致動畫師難以實時獲得隨心所欲的特效設計效果。

粒子系統是 Reeves[1]在 1983年所提出,其基本思路是將景物看作由不規則的、隨機分布的粒子組成,每個粒子均具有大小、顏色、質量、位置、速度及生命周期等屬性,隨著時間推移,粒子不斷運動和改變形狀,而且此過程中不斷有新粒子加入和舊粒子消失,各粒子狀態的改變導致整個粒子群形態的改變。之后,Perry[2]建立了一個增強的粒子系統,即利用動態變化的幾何體代替靜態的基本圖元和像元來實現粒子的實時繪制,并且還在系統中加入了火焰蔓延效果模擬。Beaudoin[3]在上述系統的基礎上,通過加入形體方程來模擬火的造型,并提出了在多邊形上實現火焰蔓延的算法。Lee[4]在構建模型中則考慮了風場和坡度等影響因子,然后用傳統的粒子系統方法實現了火焰在地形上的蔓延效果。King[5]構建了一種基于粒子系統的實時模擬系統,通過textured splats的方法繪制粒子,有利于大大減少繪制所需的粒子數。湛永松[6]提出一種流體力學模型結合粒子系統的卡通煙霧實時模擬算法,通過為粒子屬性引入濃度函數和作用半徑,從而只需少量粒子就可快速獲得煙霧濃度場分布,并使用代表動畫師個人風格的卡通圖元進行紋理貼圖以實現卡通化效果。Wei[7]用textured splats原理實現了火焰的繪制,并利用 LBM(Lattice Boltzmann Model)模型的線性和邏輯性特征來增強火焰模擬的物理真實感和繪制實時性。

在另一方面,隨著計算技術和集成電路技術的發展,圖形硬件的更新速度迅猛。自從NVidia公司在 1999年提出 GPU(Graphics Processing Unit)的概念后,其發展速度極大超越了摩爾定律。GPU內部像素級的紋元能夠參與編程運算,在某種程度上模擬了類似于Pixel Plane處理單元的部分功能,而且向著通用計算[8]的方向發展。基于 GPU 的通用計算(General-Purpose Computation on Graphics Hardware, GPGPU)即是利用 GPU來實現矢量、矩陣的基本代數運算,然后在這個基礎上完成一些相對復雜的運算,如雅克比迭代、偏微分方程、線性方程組的求解,從而實現對復雜應用問題的處理[9-10]。

為了提高粒子系統的可控性并改善計算機游戲特效的生成速率,本文提出一種 GPU支持下通過粒子系統編輯器實現的特效生成技術。通過粒子系統編輯器有效提高粒子系統制作的可控性,并在圖形處理器 GPU上對大規模粒子進行仿真和繪制,以保持實時的渲染幀率,最終確保了特效設計的可控性和實時性要求。

1 系統框架

本文所使用的粒子系統編輯器是基于OGRE圖形引擎開發,具有兩個主要功能:首先是對粒子系統的生命周期、系統最多允許粒子數、是否進行渲染排序、粒子系統渲染屬性、粒子發射器的形狀和個數、粒子發射器的發射方向和發射方式、發射頻率等行為屬性進行實時編輯;其次是設定粒子系統中所有粒子的某些公共行為屬性,包括粒子的初始速度范圍、粒子加速度及其變化方式、粒子個體的生命周期、單粒子的紋理貼圖等。通過粒子系統編輯器能對粒子系統的各種屬性進行所見即所得的實時編輯,從而提高了特效開發過程的可控性。

該系統采取基于XBOX360的GPU程序設計進行主要仿真計算,粒子的渲染繪制及物理運動模擬都由 GPU運算完成。作為一種具有專用圖形管道的游戲控制臺,XBOX360所使用的圖形渲染API是DirectX9.0渲染庫的一個改進版,其頂點渲染器(Vertex Shader)和像素渲染器(Pixel Shader)分別采用vs3.0和ps3.0標準,所包含的指令集非常完備,GPU完成通用運算的效率也更高,有利于提高特效的生成速率。系統整體框架如圖1所示。針對GPU程序特定的數據流程和程序運行方式,可將該系統分成如下三個子系統。

(1)粒子系統編輯器。作為一個交互式的粒子系統開發環境,該子系統主要用于采集用戶為待編輯粒子系統設置的各種參數,是系統可編輯性和可控性的直接體現,并將采集到的粒子系統的各種設置參數保存到一個粒子系統描述文件中或者直接用于粒子系統的參數設置。

(2)粒子系統生成器。通過解析粒子系統描述模板文件,該子系統負責提取各種參數設置并構建粒子系統,然后進行系統初始化。

(3)粒子系統仿真引擎。該子系統負責驅動粒子系統的仿真循環,每一循環包括狀態更新、仿真模擬以及繪制渲染等3個部分。

圖1 系統框架圖

2 粒子系統編輯器和粒子系統生成器

粒子系統編輯器和粒子系統生成器是整個系統的前端,負責完成用戶交互及仿真系統的預處理工作。 粒子系統的行為屬性和渲染屬性是通過粒子系統模板進行規范。該模板是通過粒子系統編輯器生成,并作為可重用的游戲特效構件。粒子系統編輯可分為離線編輯和實時編輯,前者是在PC機上運行粒子編輯器,并將編輯的結果保存到一個粒子系統描述模板文件;后者是在XBOX360上運行粒子系統編輯器以實時編輯運行中的粒子仿真子系統,根據用戶指令實時調整粒子系統的各種屬性,并將仿真效果實時反饋出來,從而獲得所見即所得的編輯效果。

粒子系統模板是粒子系統編輯器和粒子系統生成器之間的接口,粒子系統生成器根據該模板描述構建出相應的粒子系統。粒子系統模板首先需要通過粒子模板解析器進行解析,然后解析器抽取出粒子系統的參數屬性以構建粒子系統的機器表示,包括:粒子系統的狀態跟蹤系統結構、粒子系統的渲染屬性數據結構、粒子群的狀態跟蹤數據結構等。由于粒子群中每個粒子的運動狀態和渲染狀態都是通過 GPU運算完成,因此粒子群的狀態跟蹤數據結構必須能被 GPU進行讀寫。在本系統中,通過將紋理貼圖作為數據集,并將粒子群狀態進行相應編碼再存儲到紋理貼圖上,以便于 GPU在仿真過程中進行數據采集和計算結果輸出。

3 粒子系統仿真引擎

粒子系統仿真引擎包括粒子系統控制器和GPU粒子模擬引擎。粒子系統控制器負責跟蹤粒子系統的生命周期及隨時間變化的系統渲染屬性更新,同時根據粒子發射器的屬性進行粒子生成和銷毀。GPU粒子模擬引擎主要進行粒子運動模擬和粒子狀態更新,并完成最終渲染。該仿真引擎的核心是粒子控制器對粒子系統各種狀態、行為的更新過程以及 GPU端的物理運動模擬和圖形渲染過程。GPU粒子模擬仿真是一個雙通道過程,第一個過程主要進行粒子物理運動的仿真模擬和粒子狀態的更新,并在視覺空間中對粒子進行排序;第二個過程是對排序后的粒子進行渲染。

3.1 粒子系統控制器

作為粒子系統仿真過程的控制中心,粒子系統控制器負責粒子系統各種行為的驅動和渲染屬性的更新。進行跟蹤的粒子系統行為主要包括粒子系統的生命周期、粒子發射器的運作等。在每一個渲染幀,粒子系統控制器都測試粒子系統的生命周期以判定仿真過程是否結束,并根據用戶設定的規則驅動所有粒子發射器進行新粒子的發射和舊粒子的銷毀。此外,粒子系統控制器必須為 GPU模擬仿真進行參數設置,包括作為粒子屬性存儲的紋理貼圖的設定、渲染參數設定等。粒子系統控制器的工作流程如圖2所示。

圖2 粒子控制器工作流程圖

3.2 基于GPU通用計算的數據輸入輸出

基于 GPU的通用計算所采取的數據輸入輸出方式是紋理貼圖。通過將粒子仿真計算所得的參數進行特定編碼,然后保存于紋理貼圖中,以供 GPU運算時進行輸入提取,而計算結果也以特定編碼的紋理貼圖形式輸出。由于 XBOX360中像素渲染器的輸出只能指派到四個渲染目標上,因此輸入和輸出過程所采用的紋理貼圖并不相同。進行仿真計算時將粒子的位置、速度和其它的一些相關屬性分別存放在不同的紋理貼圖上,粒子仿真模擬引擎從位置和速度紋理貼圖上讀取粒子的當前位置與速度,并根據物理仿真公式計算下一幀的位置與速度,最后輸出到新的位置和速度紋理貼圖上。

3.3 GPU物理模擬仿真

基于 GPU的粒子系統的重要功能是使用GPU進行粒子的物理運動模擬運算和各種行為和渲染狀態的更新。從圖3可知本系統將粒子位置、速度和渲染狀態分別編碼到不同的紋理貼圖中,并對計算結果中的粒子速度和空間位置進行編碼,然后輸出到新的紋理貼圖上。粒子速度和位置的更新在第一個渲染過程的像素渲染器中完成。速度和位置的計算公式如下

上式中,Vt是上一幀的速度,Vt+Δt是當前幀待計算的速度,a為粒子加速度,tP是上一幀的位移,Pt+Δt是當前幀待計算的位移。位移也可采取式(3)計算。

在系統實現過程中,使用式(2)計算位移時,紋理貼圖里存儲的是位移和速度;而使用式(3)計算位移時,紋理貼圖中儲存的是前兩幀的位移,因而不同的位移計算方法會給系統實現帶來細微差異。

3.4 粒子系統狀態更新

除了粒子的速度和空間位置,粒子系統中每個粒子都具有大小、朝向、材質、貼圖、顏色等多個屬性。這些屬性可以是靜態或動態,如果某些屬性會發生變化,則第一個渲染過程還需要對相應的屬性進行更新,例如根據粒子的年齡控制其大小、透明度、顏色等屬性。

3.5 粒子系統在XBOX360上的優化

XBOX360是一種能進行高效圖形處理和游戲開發的系統,其CPU和GPU具有一些有利于實時交互性計算和圖形圖像處理的特殊功能。XBOX360的CPU是一個三核的處理單元,每個計算內核同時包含兩個硬件線程,兩個內核能同時共享相同的一級緩存,使得這三個獨立的處理單元能并行運算,從而提高了計算效率。此外,獨立的功能模塊可被分配到不同的硬件線程上以進行并行計算,例如將多個粒子系統同時指派到不同的內核線程上,從而實現并行模擬。XBOX360提供了多種不同的內存預取指令,該系統使用dcbt預取指令對粒子系統在CPU端的排序進行優化。XBOX360的GPU也提供有許多優化處理指令。在使用頂點渲染器進行物理仿真時,該系統采用了UseTextureCache=true微指令來指示GPU從紋理顯存中讀取頂點數據,從而允許紋理提取單元和頂點數據提取單元并行工作。另外,由于第一個渲染過程將仿真結果輸出到AGP顯存中的渲染目標上,但AGP顯存中的紋理貼圖在CPU端的處理效率較低,因此XBOX360提供了一個更高效的渲染輸出指令memexport,可直接將像素渲染器輸出的數據寫入到一個指定的系統內存中,從而提高了系統效率。

4 實驗結果及分析

圖3所示為使用該系統進行粒子屬性編輯的操作界面。可以看到,其界面為用戶提供了易于理解的高層語義參數,允許動畫師高效、直觀地設定粒子系統參數,從而對粒子發射器的物理控制屬性和粒子系統的渲染屬性實時進行所見即所得的編輯效果。

圖3 粒子系統編輯器工作界面

由于系統引入了多種優化策略,能在XBOX360上達到很高的實時幀率。此外,該系統支持多個粒子系統同時編輯和載入,從而有效簡化了復雜粒子系統及粒子特效的制作過程。表1給出了本系統在不同幀率和分辨率下所需要的粒子數。可見在保持實時幀率和 720p分辨率的前提下,該系統可采用的最大仿真粒子數能達到10萬以上,有力提高了特效畫面的細節效果。圖4所示為該系統同時渲染三個粒子特效所產生的視覺效果。可以看到,在保持較精確控制性的同時,該系統能獲得實時的視覺效果,進而很好地滿足了動畫師對特效設計過程提出的特定需求。

表1 系統在不同幀率和分辨率下所需粒子數

圖4 三個同時渲染的粒子特效

5 結 論

本文提出了一種基于粒子系統編輯器進行精確編輯,并通過 GPU完成實時渲染的的粒子特效生成方法。采用粒子系統編輯器能夠提高粒子系統開發制作的可控性和精確度,基于 GPU的仿真和繪制則可保證對大規模粒子系統渲染的實時性。這兩種技術相結合能確保粒子特效開發制作的可控性和實時性要求。

在未來的工作中,該系統將考慮引入一個粒子系統編輯框架,以使得任何粒子系統都可以插件的形式載入到編輯器中,從而進行更為便捷的實時編輯。

[1]Reeves W T. Particle systems-A technique for modeling a class of fuzzy objects [J]. Computer Graphics, 1983,17 (3): 359-376.

[2]Perry C H, Picard R W. Synthesizing flames and their spreading [C]//Proceedings of 5th. Eurographics Workshop on Animation and Simulation, 1994: 56-66.

[3]Beaudoin P, Paquet S, Poulin P. Realistic and controllable fire simulation [C]//Proceedings of Graphics Interface, 2001: 159-166.

[4]Lee H, Kim L, Meyer M, et al. Meshes on fire [C]//EuroGraphics Workshop on Animation, 2001: 75-84.

[5]King S A, Crawfis R A, Reid W. Fast animation of amorphous and gaseous phenomena [C]//Proceedings of Volume Graphics’99, 1999: 333-346.

[6]湛永松, 石民勇, 費廣正. 基于物理模型的實時卡通煙霧模擬算法[J]. 中國圖象圖形學報, 2007, 14(2):261-265.

[7]Wei X, Li W, Mueller K, et al. Simulating fire with texture splats [C]//Proceedings of 13th IEEE Visualization 2002 Conference, 2002: 227-234.

[9]Harris M. Simulation of cloud dynamics on graphics hardware [C]//Proceedings of Graphics Hardware,2003: 92-101.

[10]湛永松, 楊明浩, 石民勇, 等. 基于可編程圖形處理器的實時煙霧控制模擬[J]. 工程圖學學報, 2008,29(4): 60-64.

猜你喜歡
系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
基于UG的發射箱自動化虛擬裝配系統開發
半沸制皂系統(下)
FAO系統特有功能分析及互聯互通探討
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統 德行天下
PLC在多段調速系統中的應用
主站蜘蛛池模板: 国产正在播放| 99视频在线观看免费| 国产sm重味一区二区三区| 国产成人福利在线| 欧美伊人色综合久久天天| 亚洲天堂精品在线| 欧美伊人色综合久久天天| 国产成人亚洲综合A∨在线播放| 青青操视频在线| 亚洲日本一本dvd高清| 茄子视频毛片免费观看| 亚洲国产综合第一精品小说| 国产精品页| 71pao成人国产永久免费视频 | 国产精品网址你懂的| 色综合激情网| 国产亚洲精品无码专| 国产乱人伦偷精品视频AAA| 国产91成人| 狠狠综合久久久久综| 久久女人网| 国产成人免费视频精品一区二区| 一本大道香蕉久中文在线播放 | 成人在线观看一区| 综合人妻久久一区二区精品 | 成人福利在线免费观看| 欧美高清三区| 国产午夜无码片在线观看网站| lhav亚洲精品| 四虎亚洲国产成人久久精品| 国产在线一区二区视频| 国产成人免费高清AⅤ| 无码专区国产精品第一页| 波多野结衣一区二区三区四区视频| 日韩AV无码免费一二三区| 91精品日韩人妻无码久久| 日韩午夜伦| 亚洲69视频| www亚洲天堂| 国内精品91| 亚洲swag精品自拍一区| 欧美精品xx| 亚洲人成色77777在线观看| 精品少妇人妻av无码久久| 中文字幕日韩久久综合影院| 亚洲黄色成人| 国产福利在线观看精品| 一本无码在线观看| 美女高潮全身流白浆福利区| 国产福利影院在线观看| 网友自拍视频精品区| 国产情侣一区| 99久久精品视香蕉蕉| 婷婷开心中文字幕| 免费在线色| 九色91在线视频| 久久久久亚洲Av片无码观看| 久久精品人人做人人综合试看| 国产激情在线视频| 国产正在播放| 久久精品亚洲专区| 成人国内精品久久久久影院| 91香蕉国产亚洲一二三区 | a免费毛片在线播放| 国产欧美一区二区三区视频在线观看| 欧美日韩国产在线观看一区二区三区 | 久久精品午夜视频| 在线色国产| 日韩福利在线视频| 精品一区二区三区视频免费观看| 亚洲av无码成人专区| 欧美成人精品高清在线下载| 国产精品网址在线观看你懂的| 在线国产三级| 精久久久久无码区中文字幕| 草草线在成年免费视频2| 精品国产成人av免费| 一本大道视频精品人妻| 国产精品国产主播在线观看| 视频二区国产精品职场同事| 91欧美亚洲国产五月天| a国产精品|