国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于粒子系統(tǒng)的煤礦透水子系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2011-03-26 07:32陳姝慧
關(guān)鍵詞:粒子系統(tǒng)物體粒子

陳姝慧

(長春工業(yè)大學(xué)電氣與電子工程學(xué)院,吉林長春 130012)

0 引 言

由于地下煤礦的環(huán)境和地質(zhì)條件復(fù)雜多變,各種災(zāi)情時(shí)有發(fā)生,直接影響著煤礦工人的人身安全,而傳統(tǒng)的二維地理信息系統(tǒng)(GIS)已經(jīng)無法對(duì)地下煤礦的地質(zhì)環(huán)境和災(zāi)情現(xiàn)象進(jìn)行詳細(xì)的表達(dá)和描述,為了使煤礦業(yè)的專業(yè)人員和煤礦工人都可以很容易地獲得地下煤礦的實(shí)際數(shù)據(jù),因此,需要采用虛擬現(xiàn)實(shí)技術(shù)進(jìn)行模擬實(shí)現(xiàn)[1]。透水現(xiàn)象是煤礦的災(zāi)情之一,由于水流在隨著時(shí)間不斷地變化,是一個(gè)模糊物體,所以需要采用跨平臺(tái)、可兼容的OpenGL作為主要的開發(fā)工具,而水流則采用粒子系統(tǒng)來實(shí)現(xiàn)。

OpenGL(Open Graphics Library)是用于三維圖像(二維的亦可)的一個(gè)跨編程語言、跨平臺(tái)的專業(yè)圖形程序接口。它具有建模、變換、顏色模式設(shè)置、光照和材質(zhì)設(shè)置、紋理映射、位圖顯示和圖像增強(qiáng)、雙緩存動(dòng)畫等功能,OpenGL具有使用簡便、功能強(qiáng)大、調(diào)用方便等特點(diǎn)。

粒子系統(tǒng)是計(jì)算機(jī)圖形學(xué)中模擬模糊物體和現(xiàn)象的最成功的圖形生成技術(shù)。粒子系統(tǒng)在繪制不規(guī)則的對(duì)象,如火焰、水流、云彩、爆炸等方面具有獨(dú)特的優(yōu)點(diǎn),因此,若要使模擬物體的效果更加豐富和真實(shí),就必須使用粒子系統(tǒng)。粒子系統(tǒng)的優(yōu)點(diǎn)是[2]:

1)單體素和復(fù)雜物體行為的有機(jī)結(jié)合。例如,可以利用粒子系統(tǒng)生成火焰、噴泉等。

2)易于實(shí)現(xiàn)。只要提供用于粒子屬性的隨機(jī)過程的一些參數(shù)即可定義一個(gè)粒子系統(tǒng)。

3)粒子簡單,易于實(shí)現(xiàn),而且顯示效率較高。

1 開發(fā)工具

由于OpenGL符合光學(xué)和計(jì)算機(jī)圖形學(xué)原理,非常適合可視化的模糊物體仿真系統(tǒng),并且能實(shí)現(xiàn)高性能的三維圖形功能,所以,此系統(tǒng)采用性能優(yōu)越的底層3D圖形函數(shù)庫OpenGL作為煤礦透水子系統(tǒng)的主要開發(fā)工具。

1.1 OpenGL的基本功能

1.1.1 建模

OpenGL除了能繪制基本的點(diǎn)、線、多邊形外,還可以繪制復(fù)雜的三維物體(如球、錐、多面體等)。OpenGL通常用多邊形的頂點(diǎn)來描述三維模型。

1.1.2 變換

OpenGL的模型觀察是通過一系列的變換實(shí)現(xiàn)的。OpenGL包括基本變換、投影變換、視口變換和取景變換等變換方法。這些變換方法可以減少系統(tǒng)的運(yùn)行時(shí)間,提高圖形的顯示速度。

1.1.3 顏色模式的設(shè)定

顏色模式包括RGBA模式和顏色索引模式。在RGBA模式中,顏色由RGB(紅、綠、藍(lán))值來設(shè)定;在顏色索引模式中,顏色值則由顏色表中的一個(gè)顏色索引值來設(shè)定。

1.1.4 光照和材質(zhì)的應(yīng)用

繪制有真實(shí)感的三維物體必須做光照處理,OpenGL提供了管理4種光(輻射光、環(huán)境光、鏡面光和漫反射光)的方法。另外,還可以指定模型表面的反射特性,而光的RGB分量和材質(zhì)RGB分量的反射率的乘積所形成的顏色才是最后反映到人眼中的顏色。

1.1.5 圖像效果增強(qiáng)

OpenGL除了基本的拷貝和像素讀寫外,還提供了一系列增強(qiáng)三維景觀的圖像效果的函數(shù),這些函數(shù)通過反走樣、混合和霧化來增強(qiáng)圖像的效果。

1.1.6 位圖顯示

OpenGL提供了專門對(duì)位圖和圖像進(jìn)行操作的函數(shù)。

1.1.7 紋理映射

紋理是在計(jì)算機(jī)圖形學(xué)中,包含顏色、alpha值、亮度等數(shù)據(jù)的矩形數(shù)據(jù)組。OpenGL提供的一系列的函數(shù)可以逼真地描述物體的表面細(xì)節(jié),可以把真實(shí)圖像貼到景物的多邊形上,從而十分逼真地繪制三維景物。

1.1.8 動(dòng)畫

OpenGL的動(dòng)畫功能就是雙緩存(double bu ffer)技術(shù),雙緩存包括前臺(tái)緩存和后臺(tái)緩存兩種方式。雙緩存技術(shù)就是先在內(nèi)存中生成下一幅圖像,然后把已經(jīng)生成的圖像拷貝到屏幕上。

1.1.9 交互技術(shù)

在OpenGL中,用戶可以自由選擇和修改三維景觀中的物體[3]。

1.2 OpenGL的工作流程

OpenGL基本工作流程[4]如圖1所示。

圖1 OpenGL基本工作流程

頂點(diǎn)數(shù)據(jù)包括幾何頂點(diǎn)數(shù)據(jù)和幾何像素裝配數(shù)據(jù),在對(duì)頂點(diǎn)數(shù)據(jù)進(jìn)行操作時(shí),根據(jù)景物模型的要求來進(jìn)行。景物模型的要求不同決定采取的操作也就不同。

流程操作到最后,在幀緩沖區(qū)內(nèi)的像素值被送入到幀緩沖器中來實(shí)現(xiàn)模擬圖形的顯示。

1.3 OpenGL的圖形操作步驟

OpenGL的圖形操作大致可以分為以下4個(gè)步驟:

1)建模:建立景物模型,并且對(duì)其進(jìn)行數(shù)學(xué)描述。建模包括幾何建模和行為建模兩種模式;

2)設(shè)置視點(diǎn):把模型放到三維空間中去,設(shè)置視點(diǎn)來描述觀察者的空間位置以及所感興趣的景觀;

3)計(jì)算特征:根據(jù)景物應(yīng)用條件的不同來計(jì)算模型物體的環(huán)境特征;

4)光柵化:把模型的數(shù)學(xué)描述以及與模型相關(guān)的所有信息轉(zhuǎn)換為屏幕上的像素的過程。

通過OpenGL繪制出的巷道模擬效果圖如圖2和圖3所示。

圖2 煤礦巷道礦車圖

圖3 煤礦透水事故圖

2 粒子系統(tǒng)的概述

2.1 粒子系統(tǒng)的基本工作原理

粒子系統(tǒng)的基本思想是采用大量形狀簡單、相似而且具有“生命”的微小粒子來定義和描述一些不規(guī)則的模糊物體。這些粒子都要在系統(tǒng)中經(jīng)歷“誕生”、“運(yùn)動(dòng)和生長”及“死亡”3個(gè)階段。正是由于粒子系統(tǒng)是個(gè)有“生命”的系統(tǒng),所以才形成了動(dòng)態(tài)畫面,充分模擬出了物體的隨機(jī)性和動(dòng)態(tài)性[5]。

對(duì)于粒子系統(tǒng)的描述,傳統(tǒng)的方法是從粒子的3個(gè)階段進(jìn)行的,現(xiàn)在的方法是將粒子系統(tǒng)的各個(gè)屬性統(tǒng)一放到一個(gè)集合里,而這些集合就構(gòu)成了模糊物體的模型。

2.1.1 傳統(tǒng)的粒子方法表述

2.1.1.1 “誕生”階段粒子屬性的表述

新誕生的粒子數(shù)目

粒子的初始位置s(f0)由粒子的誕生區(qū)域決定。

粒子的初始速度v(f0)=粒子的平均速度mv+rand()*粒子的速度方差vv。

粒子的初始顏色c(f0)=粒子的平均顏色mc +rand()*粒子的顏色方差vc。

粒子的初始透明度t(f0)=粒子的平均透明度m t+rand()*粒子的透明度方差v t。

粒子的生存期l(f0)=粒子的平均生存期m l +rand()*粒子的生存期方差vl。

其中,PM(fi)PM和PV(fi)PV是第fi幀新誕生粒子數(shù)目的平均值和方差,rand()是[-1,1]上均勻分布的隨機(jī)函數(shù),平均值和方差是用戶給定的常數(shù)。

2.1.1.2 “運(yùn)動(dòng)和生長”階段粒子屬性的表述

位置:

速度:

顏色:

透明度:

生存期:

式中:a,Δc,Δt ——分別為粒子的加速度、顏色變化率、透明度變化率,可定義為常數(shù)。

2.1.1.3 “死亡”階段粒子屬性的表述

粒子的生命期隨著每幀的播放而遞減,當(dāng)幀數(shù)減為0時(shí),粒子死亡,應(yīng)從系統(tǒng)中將粒子刪除。

2.1.2 現(xiàn)在的粒子方法表述

粒子系統(tǒng)被定義成了一個(gè)在實(shí)數(shù)域上的n維向量,它囊括了粒子的所有屬性[6]。

式中:Attri1,Attri2,…,Attrii,…,Attrin——粒子的n個(gè)屬性。

2.2 粒子系統(tǒng)的運(yùn)行流程

一個(gè)粒子系統(tǒng)是由大量的基本粒子元素構(gòu)成,每個(gè)粒子有一組屬性,如位置、速度、顏色和生命期,粒子的初始值由隨機(jī)過程產(chǎn)生。一個(gè)粒子系統(tǒng)是不斷進(jìn)化的,在生命期的每一刻,都要完成以下工作[7]:

1)粒子源產(chǎn)生新粒子。粒子由位于空間的某個(gè)地方的粒子源產(chǎn)生;

2)賦予每一個(gè)新粒子一定的初始屬性。這是粒子系統(tǒng)的初始化過程,它們的初始屬性由隨機(jī)過程控制;

3)刪除“死亡”的粒子。檢查粒子的生命期,若粒子的生命期為0或者粒子的坐標(biāo)超過指定的空間邊界值,則將粒子從系統(tǒng)中刪除;

4)更新粒子屬性。根據(jù)粒子的動(dòng)態(tài)特性,更新所有粒子的屬性,在該步驟中,粒子的生命期遞減一個(gè)時(shí)間步;

5)繪制并顯示粒子。顯示粒子系統(tǒng)中所有處于生命期中的粒子所組成的圖形。

粒子系統(tǒng)運(yùn)行流程如圖4所示。

3 透水子系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

3.1 透水子系統(tǒng)的設(shè)計(jì)

粒子系統(tǒng)主要是烘托總體的宏觀效果,它只是從宏觀上設(shè)定粒子的參數(shù)特性和運(yùn)動(dòng),所有粒子都具有類似的性質(zhì),按類似的規(guī)律運(yùn)動(dòng)。對(duì)粒子的操作只能通過對(duì)整個(gè)粒子系統(tǒng)來操作,而不能單獨(dú)編輯某一個(gè)粒子。又由于世間的自然景觀是形態(tài)萬千、變幻莫測的,所以需要多個(gè)粒子系統(tǒng)來描述,因此采用面向?qū)ο蟮乃枷耄肓肆W酉到y(tǒng)的概念[8]。算法在每一時(shí)刻首先確定新生的子粒子系統(tǒng)的數(shù)量,子粒子系統(tǒng)繼承父粒子系統(tǒng)的所有屬性。因此,在設(shè)計(jì)過程中,水粒子系統(tǒng)由水粒子系統(tǒng)層和水粒子系統(tǒng)組成,其系統(tǒng)結(jié)構(gòu)如圖5所示。

圖4 粒子運(yùn)行流程

圖5 水粒子系統(tǒng)結(jié)構(gòu)

3.2 水粒子的初始化

由于粒子是有“生命”的,所以隨著時(shí)間的推移,粒子的相關(guān)屬性會(huì)相應(yīng)地發(fā)生變化,并且舊的粒子隨之消亡,新的粒子不斷地產(chǎn)生加入。在本系統(tǒng)中,水粒子也有一組屬性,它們分別是顏色、形狀、大小、速度、位置、生命期等。

3.2.1 水粒子的顏色

水粒子的顏色主要包括初始顏色、消隱顏色和透明度3部分。其中初始顏色是新生粒子的顏色,消隱顏色是粒子在消亡時(shí)的顏色。本系統(tǒng)中,水粒子的初始顏色可由下式確定:

水粒子的透明度即亮度是一個(gè)從0到1變化的實(shí)數(shù),0表示最暗,1表示最亮。而水粒子的初始亮度為1。

3.2.2 水粒子的形狀和大小

水粒子的初始形狀和大小在系統(tǒng)中產(chǎn)生時(shí)就已經(jīng)被確定下來,為最簡單的點(diǎn)。

3.2.3 水粒子的速度

水粒子的初始速度有一定的大小和方向,并且隨著時(shí)間相應(yīng)地變化。水粒子的初始速度可由下式確定:

假設(shè)水粒子在產(chǎn)生時(shí)刻是沒有外力作用的,方向?yàn)橄蛏线\(yùn)動(dòng),則有

3.2.4 水粒子的生命期

粒子的生命期是指粒子在系統(tǒng)中的存活時(shí)間,而水粒子的生命期則在粒子生成時(shí)已經(jīng)由系統(tǒng)設(shè)定,其初值為+1.0 f。在描述上述屬性的公式中,MeanCo lor(R,G,B)和M eanSpeed是顏色和速度的平均值,VarColor(R,G,B)和VarSpeed是顏色和速度的隨機(jī)值,Rand()是在(-1.0,+1.0)上均勻分布的隨機(jī)函數(shù),其中平均值和隨機(jī)值是由用戶給定的。

3.3 水粒子的系統(tǒng)流程

水粒子系統(tǒng)流程如圖6所示。

圖6 水粒子系統(tǒng)流程

4 水粒子系統(tǒng)的實(shí)現(xiàn)效果圖

程序按照?qǐng)D6所示的系統(tǒng)流程圖執(zhí)行,最后模擬出的透水效果如圖7所示。

圖7 模擬出的透水效果圖

在這個(gè)透水效果圖中,水是先從頂部開始一點(diǎn)一點(diǎn)地滲漏,然后側(cè)部也逐漸開始滲漏,最后形成大面積的透水。

5 結(jié) 語

基于粒子系統(tǒng)的、以O(shè)penGL為煤礦虛擬現(xiàn)實(shí)系統(tǒng)的主要開發(fā)工具所做的設(shè)計(jì)和研究,還只是煤礦虛擬現(xiàn)實(shí)系統(tǒng)的起步階段。而自從1983年粒子系統(tǒng)的方法誕生以來,雖然經(jīng)歷了二十幾年的發(fā)展和完善,在模擬模糊物體方面已經(jīng)達(dá)到了一定的水平,但是仍然還有許多問題需要進(jìn)一步解決。

總之,在國內(nèi)的礦山虛擬現(xiàn)實(shí)系統(tǒng)應(yīng)用中應(yīng)盡快擺脫理論探討階段,加快在理論上的研究,盡快地縮短與國外的差距;在基于粒子系統(tǒng)方法的水模擬研究中,真實(shí)感和實(shí)時(shí)性將是今后發(fā)展、研究的重點(diǎn)。

[1] 趙銀花.虛擬現(xiàn)實(shí)與現(xiàn)代室內(nèi)設(shè)計(jì)表現(xiàn)[J].長春工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2010,31(5):593-595.

[2] 張芹,吳慧中,張健.基于粒子系統(tǒng)的建模方法研究[J].計(jì)算機(jī)科學(xué),2003,30(8):144-146.

[3] 和平鴿工作室.OpenGL高級(jí)編程與可視化系統(tǒng)開發(fā):系統(tǒng)開發(fā)篇[M].2版.北京:中國水利水電出版社,2006.

[4] 徐明亮,盧紅星,王琬.OpenGL游戲編程[M].北京:機(jī)械工業(yè)出版社,2008.

[5] 龐新,王相海.基于OpenGL的禮花粒子系統(tǒng)模擬研究[J].計(jì)算機(jī)科學(xué),2008,35(5):216-219.

[6] 李哲,艾婷,高文舉.基于紋理映射的粒子火焰的模擬與繪制[J].長春工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2009,30(2):215-218.

[7] 徐利明,姜昱明.基于粒子系統(tǒng)與OpenGL的實(shí)時(shí)雨雪模擬[J].計(jì)算機(jī)仿真,2005,22(7):243-245.

[8] 楊冰,魯敏.基于景物特征的粒子系統(tǒng)建模技術(shù)[J].計(jì)算機(jī)應(yīng)用研究,2000,17(5):20-22.

猜你喜歡
粒子系統(tǒng)物體粒子
利用GPU加速的粒子系統(tǒng)全球流場可視化系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
深刻理解物體的平衡
Conduit necrosis following esophagectomy:An up-to-date literature review
我們是怎樣看到物體的
基于粒子群優(yōu)化的橋式起重機(jī)模糊PID控制
基于粒子群優(yōu)化極點(diǎn)配置的空燃比輸出反饋控制
UE 4粒子系統(tǒng)與外部數(shù)據(jù)通信研究
為什么同一物體在世界各地重量不一樣?
基于Matlab的α粒子的散射實(shí)驗(yàn)?zāi)M
懸浮的雞蛋
元氏县| 永福县| 清河县| 张家川| 久治县| 霞浦县| 昭苏县| 恩施市| 吉隆县| 威海市| 邯郸县| 宜丰县| 东莞市| 专栏| 额济纳旗| 安远县| 桐柏县| 芜湖县| 鄂州市| 内乡县| 鲁山县| 阿拉善盟| 博客| 丰宁| 云安县| 赞皇县| 乐昌市| 会昌县| 彰化市| 唐山市| 德庆县| 当涂县| 兴宁市| 景宁| 兰考县| 同仁县| 彰武县| 吴川市| 日照市| 绥中县| 宝坻区|