亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        陳顯軍, 李心穎, 湛永松

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

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

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

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

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

        1 系統(tǒng)框架

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

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

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

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

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

        圖1 系統(tǒng)框架圖

        2 粒子系統(tǒng)編輯器和粒子系統(tǒng)生成器

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

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

        3 粒子系統(tǒng)仿真引擎

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

        3.1 粒子系統(tǒng)控制器

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

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

        3.2 基于GPU通用計算的數(shù)據(jù)輸入輸出

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

        3.3 GPU物理模擬仿真

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

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

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

        3.4 粒子系統(tǒng)狀態(tài)更新

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

        3.5 粒子系統(tǒng)在XBOX360上的優(yōu)化

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

        4 實驗結果及分析

        圖3所示為使用該系統(tǒng)進行粒子屬性編輯的操作界面??梢钥吹剑浣缑鏋橛脩籼峁┝艘子诶斫獾母邔诱Z義參數(shù),允許動畫師高效、直觀地設定粒子系統(tǒng)參數(shù),從而對粒子發(fā)射器的物理控制屬性和粒子系統(tǒng)的渲染屬性實時進行所見即所得的編輯效果。

        圖3 粒子系統(tǒng)編輯器工作界面

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

        表1 系統(tǒng)在不同幀率和分辨率下所需粒子數(shù)

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

        5 結 論

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

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

        [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.

        猜你喜歡
        系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機系統(tǒng)
        ZC系列無人機遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        基于PowerPC+FPGA顯示系統(tǒng)
        基于UG的發(fā)射箱自動化虛擬裝配系統(tǒng)開發(fā)
        半沸制皂系統(tǒng)(下)
        FAO系統(tǒng)特有功能分析及互聯(lián)互通探討
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        一德系統(tǒng) 德行天下
        PLC在多段調(diào)速系統(tǒng)中的應用
        91色婷婷成人精品亚洲| 少妇高潮尖叫黑人激情在线| 亚洲最大天堂无码精品区| 久久久99久久久国产自输拍| 国产精品女主播在线播放| 亚洲av日韩av女同同性| 蜜桃成人无码区免费视频网站| 成人永久福利在线观看不卡| 日本在线免费不卡一区二区三区| 国产freesexvideos中国麻豆 | 日本在线免费不卡一区二区三区| 中文字幕亚洲综合久久| 台湾佬娱乐中文22vvvv| 无码免费午夜福利片在线| 国产福利不卡视频在线| 97久久久久人妻精品区一| 开心婷婷五月激情综合社区| 成人综合久久精品色婷婷| 男女动态91白浆视频| 少女韩国电视剧在线观看完整| 久久天天躁夜夜躁狠狠躁2022| 日韩av一区在线播放| 日本高清乱码中文字幕| 97久久人人超碰超碰窝窝| 久久久久久国产精品免费网站| 亚洲女人天堂成人av在线| 国产高清在线观看av片| 人妻少妇精品视中文字幕国语| 国产精品亚洲综合色区丝瓜| 亚洲一区二区三区高清在线观看| 狼人香蕉香蕉在线28 - 百度| 国产高潮精品久久AV无码| 开心五月激动心情五月| 精品av熟女一区二区偷窥海滩 | 国产午夜精品综合久久久| 婷婷成人丁香五月综合激情| 日本亚洲国产一区二区三区| 一区二区三区在线视频免费观看| 人妻中文字幕在线中文字幕| 色噜噜狠狠一区二区三区果冻| 精品在免费线中文字幕久久|