• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于OSG的粒子系統(tǒng)仿真實(shí)現(xiàn)

      2017-05-30 23:39:35張慧
      科技風(fēng) 2017年17期
      關(guān)鍵詞:粒子系統(tǒng)

      摘 要:OSG就是一款高效實(shí)時(shí)的三維圖形開(kāi)發(fā)包,它構(gòu)建于OpenGL圖形函數(shù)庫(kù)之上,全部采用標(biāo)準(zhǔn)C++語(yǔ)言開(kāi)發(fā), OSG圖形系統(tǒng)[1]主要應(yīng)用于游戲、虛擬現(xiàn)實(shí)和科學(xué)計(jì)算可視化與仿真領(lǐng)域中的高性能圖形程序的開(kāi)發(fā)。在構(gòu)建虛擬場(chǎng)景后,為了增加虛擬場(chǎng)景的真實(shí)度,加入自然現(xiàn)象能使場(chǎng)景更加的逼真,而在OSG中給我們提供了粒子系統(tǒng)能很好的完成這部分設(shè)計(jì),本文著重討論基于粒子系統(tǒng)仿真的雪效和雨效,實(shí)踐證明OSG的粒子系統(tǒng)能滿(mǎn)足仿真的要求。

      關(guān)鍵詞:OSG;粒子系統(tǒng);雪效

      1 粒子系統(tǒng)簡(jiǎn)介

      1.1 粒子系統(tǒng)概念

      粒子系統(tǒng)(particlesystem)是迄今為止被認(rèn)為模擬不規(guī)則模糊物體最為成功的一種圖形生成算法[2]。它構(gòu)建場(chǎng)景的方法與以往不同,傳統(tǒng)的方法是通過(guò)繪制和造型系統(tǒng)的算法來(lái)實(shí)現(xiàn),而粒子系統(tǒng)采用的是計(jì)算模型,動(dòng)態(tài)的表示物體的運(yùn)動(dòng)。因此,粒子系統(tǒng)采用微小粒子圖元作為基本單位,這些粒子圖元具有顏色、透明度、大小形狀及生命周期等屬性,粒子的生命周期分為產(chǎn)生到活動(dòng)到消亡幾個(gè)階段,因此,在粒子系統(tǒng)創(chuàng)建過(guò)程中,考慮的因素要包括真實(shí)的物理模型,還要考慮粒子的各項(xiàng)屬性規(guī)定[34],在建立好的場(chǎng)景當(dāng)中也要考慮動(dòng)力學(xué)規(guī)律對(duì)粒子的影響。

      1.2 OSG粒子系統(tǒng)數(shù)學(xué)模型

      在OSG環(huán)境中,粒子系統(tǒng)產(chǎn)生的新生粒子位于屏幕上方的圓形區(qū)域內(nèi)。對(duì)于每個(gè)粒子而言,在粒子出生時(shí)就會(huì)有不用的隨機(jī)參數(shù),但實(shí)際上每個(gè)粒子的真實(shí)意義在于其每幀的位置和速度。

      在粒子運(yùn)動(dòng)過(guò)程中要受到很多外界因素的影響,比如重力、風(fēng)力和空氣阻力等,按照物體的運(yùn)動(dòng)規(guī)律,設(shè)V0為粒子初始速度,S0為粒子的初始位置,粒子的速度V、位置S和加速度a有一下關(guān)系:

      1.3 OSG粒子系統(tǒng)的工作過(guò)程

      在OSG中,osgParticle類(lèi)是專(zhuān)門(mén)定義用來(lái)模擬粒子系統(tǒng)的,它不但能高效地模擬粒子系統(tǒng),而且效果生成得非常逼真。

      在OSG中使用粒子系統(tǒng),首先要確定意圖。

      其次,建立粒子模板,這一步要確定粒子的形狀,如點(diǎn)(POINT)、線(xiàn)(LINE)、四邊形(QUAD)、六角形(HEXAGON)等,確定粒子的生命周期,以及粒子的角度等因素。

      然后要建立粒子系統(tǒng),設(shè)置粒子的相關(guān)屬性。包括粒子的大?。⊿IZE)、顏色(COLOR)和Alpha值。每組屬性都可以設(shè)置它的最大值和最小值,我們通過(guò)改變這些最大和最小值,對(duì)單個(gè)粒子的渲染進(jìn)行控制,也可以在這兩者之間進(jìn)行線(xiàn)性插值,這樣就有利于管理粒子的生命周期。

      接下來(lái)設(shè)置發(fā)射器,主要用來(lái)設(shè)置粒子的初速度、發(fā)射器形狀及發(fā)射粒子的數(shù)目變化等。

      另外要設(shè)置操作,用戶(hù)可以通過(guò)對(duì)其中的各種Operator類(lèi)進(jìn)行參數(shù)設(shè)定,如AngularAccelOperator(角加速度)等,改變它們的實(shí)例參數(shù)。

      最后在場(chǎng)景中加載粒子系統(tǒng),更新粒子狀態(tài)。

      2 基于OSG粒子系統(tǒng)的雨雪模擬實(shí)現(xiàn)

      2.1 粒子系統(tǒng)場(chǎng)景加載渲染技術(shù)

      osgViewer庫(kù)可以很好的進(jìn)行渲染操作,此在庫(kù)中定義了一些視口類(lèi),因而可以將OSG 集成到許多視窗設(shè)計(jì)工具中,包括AGL/CGL,F(xiàn)LTK,F(xiàn)ox,F(xiàn)C,Qt,SDL,Win32,WxWindows,以及X11。這些視口類(lèi)支持單窗口/單視口的程序,也支持使用多個(gè)視口和渲染器面的多線(xiàn)程程序。每個(gè)視口類(lèi)都可以提供對(duì)攝像機(jī)運(yùn)動(dòng),事件處理,以及osgDB::DatabasePager 的支持。osgViewer 庫(kù)包含了以下三個(gè)可能用到的視口類(lèi)。

      (1) SimpleViewer:SimpleViewer 類(lèi)負(fù)責(zé)管理單一場(chǎng)景圖形中的單一視口。使用SimpleViewer 時(shí),應(yīng)用程序必須創(chuàng)建一個(gè)窗口并設(shè)置當(dāng)前的圖形上下文(graphics context)。

      (2)Viewer:Viewer 類(lèi)用于管理多個(gè)同步攝像機(jī),他們將從多個(gè)方向渲染單一的視口。根據(jù)底層圖形系統(tǒng)的能力,Viewer 可以創(chuàng)建一個(gè)或多個(gè)自己的窗口以及圖形上下文,因此使用單一視口的程序也可以在單顯示或者多顯示的系統(tǒng)上運(yùn)行。

      (3)CompositeViewer:CompositeViewer 類(lèi)支持同一場(chǎng)景的多個(gè)視口,也支持不同場(chǎng)景的多個(gè)攝像機(jī)。如果指定各個(gè)視口的渲染順序,用戶(hù)就可以將某一次渲染的結(jié)果傳遞給別的視口。CompositeViewer 可以用來(lái)創(chuàng)建抬頭數(shù)字顯示(HUD),預(yù)渲染紋理(prerender textures),也可以用于在單一視口中顯示多個(gè)視圖。

      通過(guò)在控制臺(tái)窗口中設(shè)置osgViewer的命令行參數(shù)、鍵盤(pán)和鼠標(biāo)指令信息、環(huán)境變量參數(shù)等,即可實(shí)現(xiàn)本系統(tǒng)的實(shí)時(shí)交互功能.

      在osg編程中,實(shí)現(xiàn)文件讀取的模塊主要是osgDB工具庫(kù)[6]。可讀寫(xiě)的文件包括模型、視頻、圖像以及文檔等。模型數(shù)據(jù)可以用節(jié)點(diǎn)類(lèi)(Node)來(lái)表達(dá),在本場(chǎng)景中已經(jīng)建立好了一個(gè)ziran.ive模型,為了將此模型文件讀入場(chǎng)景圖供OSG進(jìn)行渲染,可以使用如下語(yǔ)句:

      osg::Node*node=osgDB::readNodeFile(“ziran.ive”):

      2.2 雪效仿真實(shí)現(xiàn)過(guò)程

      采用預(yù)定義粒子系統(tǒng),可以試用osgParticle類(lèi),直接加載到場(chǎng)景中使用,在這個(gè)場(chǎng)景中采用osgParticle::Precipitation這個(gè)新類(lèi)來(lái)實(shí)現(xiàn)雨雪的效果。

      通過(guò)osgParticle確立粒子模板,設(shè)置粒子的基本屬性,包括粒子的大小,生命周期和變化范圍等,雪從天而降,一直到后期的消失要經(jīng)歷一個(gè)生命周期,尺寸決定了粒子大小,透明度變化范圍(AlphaRange)和顏色變化范圍(ColorRange)———透明度指光線(xiàn)穿透介質(zhì)的程度.粒子的透明度和顏色隨著時(shí)間變化在設(shè)定范圍內(nèi)發(fā)生變化。通過(guò)osgParticle:: ParticleSystem生成粒子系統(tǒng)實(shí)例,利用函數(shù)setDefaultAttibutes生成粒子的材質(zhì)(Texturefile),本場(chǎng)景采用貼圖進(jìn)行渲染,質(zhì)量和粒子半徑?jīng)Q定了粒子的物理屬性,粒子參數(shù)設(shè)置表如下 :

      同時(shí)定義一個(gè)發(fā)射器,模擬發(fā)射器由osgParticle::ModularEmitter創(chuàng)建。在本場(chǎng)景中由于雪是從天空向下飄,所以放置器的角度是在場(chǎng)景的一定高度,扇面放置器(SectorPlacer)所有粒子由設(shè)定中心(Center)、角度范圍(PhiRange)、半徑范圍(RadiusRange)的扇面產(chǎn)生發(fā)射一個(gè)的范圍,發(fā)射器發(fā)射速度不易太快在添加雪效是設(shè)置為(50,200),在添加雨效時(shí),速度要適當(dāng)改變,每秒鐘粒子添加粒子個(gè)數(shù)范圍為線(xiàn)性插值介于最大值maxvalue和最小值minvalue之間,在本場(chǎng)景中設(shè)置為(100,300)。粒子在下落過(guò)程中會(huì)收到重力加速度影響,重力加速度對(duì)粒子的生命周期影響意義重大,可增加粒子效果的真實(shí)感,在本例中使用重力加速度默認(rèn)為0.80665f。定義發(fā)射器參數(shù)設(shè)置如下表2:以上是設(shè)置好的粒子系統(tǒng)的各項(xiàng)參數(shù),把設(shè)置好的粒子系統(tǒng)添加到粒子更新器中,并且要添加到建立好的模型場(chǎng)景中,通過(guò)2.1粒子系統(tǒng)場(chǎng)景加載渲染技術(shù),把場(chǎng)景加入根節(jié)點(diǎn)進(jìn)行渲染,得到真實(shí)的雪效,雖然自定義的粒子系統(tǒng)編程較復(fù)雜,但是效果也很逼真。同樣的方法可以實(shí)現(xiàn)雨效,只需要改變相關(guān)參數(shù),發(fā)射器的發(fā)射速度值和雨的濃度同樣可以仿真現(xiàn)實(shí)中的雨效。

      3 實(shí)驗(yàn)結(jié)果

      本文是在CPU為Inter(R)Pentium(R) Dual Core E5500 1.80 GHz、內(nèi)存為DDR2G、顯卡為英特爾 GMA 4500(M)(HD)集成顯卡配置的PC機(jī)上進(jìn)行運(yùn)行模擬的。顯示器的垂直刷新率為60Hz,可以保證渲染圖像顯示跟屏幕更新保持同步。仿真效果圖1雪效,圖2雨效。

      4 小結(jié)

      利用軟件開(kāi)發(fā)環(huán)境完成基于粒子系統(tǒng)搭建與仿真,OSG粒子系統(tǒng)可以很好的模仿現(xiàn)實(shí)自然想象,OSG中自定義粒子系統(tǒng)各項(xiàng)參數(shù)的不同設(shè)定能得到不同狀態(tài)下的雨雪效果,實(shí)驗(yàn)結(jié)果表明利用粒子系統(tǒng)可以很好地實(shí)現(xiàn)場(chǎng)景粒子特效,增強(qiáng)了虛擬現(xiàn)實(shí)逼真度,并具有很高的實(shí)時(shí)性。

      參考文獻(xiàn):

      [1]Martz P.Open scene graph quick start guide [M/OL].NewYork:Skew Matrix Software LLC,2007.

      [2]王乘,李利軍,周均清.Vega實(shí)時(shí)三維視景仿真技術(shù)[M].武漢:華中科技大學(xué)出版社,2005:83218.

      [3]楊述華,廖守億,王仕成,等.基于粒子系統(tǒng)和 Vega的實(shí)時(shí)雨雪模擬[J].計(jì)算機(jī)應(yīng)用,2008,28(6):238 240.

      [4]劉巧紅,單貴.粒子系統(tǒng)在虛擬校園中的應(yīng)用研究.計(jì)算機(jī)技術(shù)與發(fā)展,21(2).

      [5]施潤(rùn)尼徐波編程指南北京:機(jī)械工業(yè)出版社,2008,08.

      [6]張小輝.虛擬交通場(chǎng)景中的雨雪仿真[D].西南交通大學(xué)碩士論文,2010:3537.

      作者簡(jiǎn)介:張慧(1980),女,河南登封人,中山大學(xué)工程碩士,現(xiàn)在在廣東財(cái)經(jīng)大學(xué)三水校區(qū)技術(shù)中心分中心工作。

      猜你喜歡
      粒子系統(tǒng)
      利用GPU加速的粒子系統(tǒng)全球流場(chǎng)可視化系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
      基于OpenGL 的視頻特效粒子系統(tǒng)在MAYA 中的實(shí)現(xiàn)
      UE 4粒子系統(tǒng)與外部數(shù)據(jù)通信研究
      基于Unity3D的水波漣漪仿真模擬
      基于Unity3D粒子系統(tǒng)的消防水槍流體噴射仿真研究
      基于OpenGL噴泉粒子系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
      科技視界(2016年11期)2016-05-23 10:00:55
      基于粒子系統(tǒng)的交互式葉脈生成
      軟件工程(2014年4期)2014-09-24 20:03:13
      粒子系統(tǒng)在航海應(yīng)用上的展望*
      基于Unity3D和粒子系統(tǒng)的冶金仿真特效模擬
      基于粒子系統(tǒng)的建模與仿真綜述
      景洪市| 鸡泽县| 长武县| 秦皇岛市| 屏东县| 揭西县| 云龙县| 西吉县| 平和县| 富裕县| 西和县| 突泉县| 漳州市| 当涂县| 河池市| 金塔县| 锡林郭勒盟| 泸州市| 牡丹江市| 赤壁市| 方城县| 公安县| 类乌齐县| 无为县| 新郑市| 枣阳市| 章丘市| 福建省| 洛浦县| 仁寿县| 桑日县| 沁源县| 那曲县| 瑞昌市| 聂拉木县| 湄潭县| 萍乡市| 长阳| 本溪市| 合川市| 石门县|