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

?

太空場景的仿真及其應(yīng)用效果

2014-08-28 08:17:58莊建東曾勇進(jìn)
關(guān)鍵詞:哈雷彗星行星太空

莊建東 ,曾勇進(jìn)

(集美大學(xué)計算機(jī)工程學(xué)院,福建 廈門 361021)

太空場景的仿真及其應(yīng)用效果

莊建東 ,曾勇進(jìn)

(集美大學(xué)計算機(jī)工程學(xué)院,福建 廈門 361021)

利用Microsoft Visual Studio和OGRE圖形資源,以太陽系行星運動為背景,開發(fā)一個行星運行模擬系統(tǒng),探討構(gòu)建太空場景的計算機(jī)模擬方法.采用的方法有:對于三維對象的靜態(tài),利用模型制作軟件(如3DMax)將實體對象制作出來;對于三維對象的運動,用適當(dāng)?shù)挠嬎惴椒ㄟM(jìn)行編程實現(xiàn).天體運動的仿真方法均通過編程得以模擬實現(xiàn),能夠自行在3D空間中運轉(zhuǎn).實驗表明所設(shè)計的仿真方法,利用3D圖形資源易于實現(xiàn).

計算機(jī)動畫;三維仿真;面向?qū)ο髨D形渲染引擎

0 引言

近幾年,隨著計算機(jī)軟硬件技術(shù)的不斷發(fā)展,太空場景仿真發(fā)展迅速,科研工作者對太空場景的仿真進(jìn)行了大量的工作.盡管如此,構(gòu)建稍微復(fù)雜的太空場景還處于理論研究階段,仿真方法和技術(shù)仍處于摸索之中,依然是一件非常耗時耗力的工作,許多計算機(jī)工作者為此費盡了不少心血[1-2].

從應(yīng)用的角度來看,太空場景仿真方法需要解決的內(nèi)容很多,已有一些報道,如太空場景的存儲方法[3]、場景復(fù)雜度的簡化技術(shù)[4]、太空環(huán)境模擬的逼真性[5-7]和場景繪制的加速技術(shù)[8]等.雖然在簡化場景的復(fù)雜度方面和場景繪制的加速方面,文獻(xiàn)[4]和文獻(xiàn)[8]分別做了一定的工作,但還可以做進(jìn)一步的研究工作,如縮減仿真的復(fù)雜度,提高運行效率等.本文在參考文獻(xiàn)[5,7]的基礎(chǔ)上,以太陽系行星運動模擬為背景,力求用簡單的仿真方法和實現(xiàn)技術(shù)簡化太空場景復(fù)雜度,快速完成場景的繪制.

1 太空場景的仿真及設(shè)計方法

太空場景十分復(fù)雜,本文主要從行星、衛(wèi)星和哈雷彗星的仿真及設(shè)計方法去研究和實現(xiàn)太空場景的仿真.

1.1 行星的運轉(zhuǎn)仿真

1)行星的構(gòu)建

為設(shè)計方便,利用模型制作軟件如3ds Max 或網(wǎng)上資源下載將各個實體對象如行星的模型制作出來,并貼上紋理,加上效果,便于程序設(shè)計者可以將主要精力放在實體的運動環(huán)境設(shè)計上.對于制作出的模型,可以將其導(dǎo)出,以便在程序開發(fā)中得以應(yīng)用[9].

以O(shè)GRE為例,首先通過 Ogre::Entity* entity = mSceneManager->createEntity(name, mesh);將實體進(jìn)行聲明,然后創(chuàng)建Ogre::SceneNode用于后續(xù)的操作.主要代碼如下:

Ogre::SceneNode* Demo::createStar(String name,String mesh) {

Ogre::Entity* entity = mSceneManager->createEntity(name, mesh); // 實體進(jìn)行聲明

Ogre::SceneNode* node = mSceneManager-> getRootSceneNode()->createChildSceneNode(name);

// 創(chuàng)建Ogre::SceneNode

node->attachObject(entity);

return node;

}

2)行星公轉(zhuǎn)的設(shè)計

在實體加載之后,通過修改實體在OGRE局部坐標(biāo)系下的位置來實現(xiàn)其移動.為達(dá)到技術(shù)的簡單性以及仿真的真實性,可將其運動的過程仿真編寫為圓環(huán).由于八大行星繞太陽運動的偏心率較小,因此可以近似看成他們在同一水平上進(jìn)行運動,坐標(biāo)y可以為零(如圖1所示).此運動的算法為:x=r*cos((2π/T)*time),z=r*sin((2π/T)*time),其中T為運行周期,time為運行參數(shù).

通過間斷地改變時間time,計算出某一時刻行星的所在位置,再通過node->setPosition(x,0,z),修改當(dāng)前行星的位置,從而使之運轉(zhuǎn)起來.

3) 行星自轉(zhuǎn)的設(shè)計

由于行星在進(jìn)行公轉(zhuǎn)的同時,自身還繞行星的轉(zhuǎn)軸進(jìn)行自轉(zhuǎn),因此,需要采用相關(guān)代碼去實現(xiàn)這一過程.在編程中加入node-> yaw(Ogre::Radian(0.1)),這樣行星就能繞著y軸進(jìn)行自轉(zhuǎn).行星最終的運動結(jié)果就是行星公轉(zhuǎn)和自轉(zhuǎn)的組合變化.

1.2 行星的衛(wèi)星的運轉(zhuǎn)仿真

考慮到行星除了做公轉(zhuǎn)和自轉(zhuǎn)外,其衛(wèi)星還要繞其旋轉(zhuǎn).衛(wèi)星的運轉(zhuǎn)應(yīng)包括兩部分,衛(wèi)星繞行星的公轉(zhuǎn)和衛(wèi)星的自轉(zhuǎn),最終結(jié)果是兩者的組合變化.

由于月球繞著轉(zhuǎn)的不是坐標(biāo)原點而是某一個移動中的行星,因此需要記錄行星當(dāng)前的坐標(biāo),并通過平移變換、旋轉(zhuǎn)變換的組合變換來完成.其主要過程為:將移動中的行星的坐標(biāo)位置通過平移變換改變?yōu)樽鴺?biāo)原點的位置,然后進(jìn)行繞坐標(biāo)原點(行星的位置)進(jìn)行旋轉(zhuǎn)變換,將旋轉(zhuǎn)變換后的結(jié)果再通過平移變換反方向平移到行星原來的位置.其主要算法代碼為:

x=(r*sin(2*π*time/T))+SatelliteR*sin(2*π*SatelliteTime/SatelliteT),

y=0,

z=(r*cos(2*π*time/T))+SatelliteR*cos((2*π*SatelliteTime/SatelliteT),

其中:r為月球繞著移動中的行星旋轉(zhuǎn)的半徑,time為月球繞著移動中的行星旋轉(zhuǎn)的時間,T為月球繞著移動中的行星旋轉(zhuǎn)的周期,SatelliteTime為行星公轉(zhuǎn)運行的時間,SatelliteT為行星公轉(zhuǎn)運行的周期,SatelliteR為行星公轉(zhuǎn)的半徑.

1.3 哈雷彗星的運轉(zhuǎn)仿真

對于太陽系中的哈雷彗星,可以采用基于OGRE的粒子系統(tǒng),通過OGRE腳本,將哈雷彗星的粒子效果編寫成粒子腳本,并通過mSceneManager-> createParticleSystem(“halei”,“Examples/halei”)); 調(diào)入粒子腳本[10].由于調(diào)用粒子腳本后的只是一個不動的粒子發(fā)送器,因此需要設(shè)計哈雷彗星運動的軌跡[11].

主要算法為:

再添加圖形變換:

使其在3D的坐標(biāo)軸里繞y軸順時針旋轉(zhuǎn).

為使其運行的觀賞視角更好一些,本文在實現(xiàn)上利用幾顆微小粒子形成軌道圖,使這些行星在相應(yīng)軌道進(jìn)行公轉(zhuǎn).

1.4 太陽發(fā)光的仿真

由于太陽是一個發(fā)光體,其行星應(yīng)該是一面被照亮,一面處于陰影狀態(tài).并在行星的背光區(qū)域出現(xiàn)陰影,面對著光區(qū)有光照表現(xiàn).為簡單實現(xiàn)起見,本文對于太陽運轉(zhuǎn)的區(qū)域設(shè)為長方體,如圖2所示,太陽位于其內(nèi)部,在長方體的頂點位置設(shè)立一個個LT_POINT型的電光,光向四周發(fā)散將全場照亮[12-13].

2 計算機(jī)仿真的實驗結(jié)果

實驗中,首先使用Autodesk 3ds Max 2010建立了天體運動中各個行星的模型,并貼上紋理,加上諸如光照等效果.為了避免所建立的模型效果不佳,實驗中部分采用了通過網(wǎng)上資源下載相應(yīng)的模型,并細(xì)致地分析和研究下載的模型,揣摩其技術(shù)上的實現(xiàn),并將有關(guān)技術(shù)方法應(yīng)用到本系統(tǒng),以便達(dá)到逼真的效果.在繪制星空視景時,為了解決實時更新的紋理不協(xié)調(diào)和紋理銜接不夠好的問題,在具體實現(xiàn)設(shè)計時采用了自行構(gòu)造紋理的方法,并通過實驗,驗證了該方法實現(xiàn)的效果良好.然后重點研究行星公轉(zhuǎn)與自轉(zhuǎn)模擬、行星的衛(wèi)星運轉(zhuǎn)模擬、哈雷彗星運動模擬和太陽發(fā)光的設(shè)計方法及其利用圖形資源實現(xiàn)的方法.最后使用Microsoft Visual Studio和OGRE,架構(gòu)整個程序系統(tǒng),避免了系統(tǒng)可重用性差和可維護(hù)性差等不良因素.實驗結(jié)果如圖3—圖5所示.圖3是利用畫橢圓的方法實現(xiàn)的哈雷彗星的運動截圖,圖4是利用圖形變換實現(xiàn)的八大行星的運動截圖,圖5是太空場景運行模擬的截圖.

3 結(jié)束語

太空場景的模擬是計算機(jī)圖形學(xué)中最具有挑戰(zhàn)性的研究方向之一,其繪制方法是建立天空虛擬場景的關(guān)鍵技術(shù).本文以太陽系仿真及運行的設(shè)計為背景,從計算機(jī)仿真的角度,探究天體運動的仿真與運動算法設(shè)計、天體運動軌道的算法設(shè)計、哈雷彗星的制作及其運行軌道的算法設(shè)計.最終通過編程實現(xiàn)了如圖5所示的太空場景仿真系統(tǒng).實驗表明文中所述的仿真方法得當(dāng),易于利用3D圖形資源編程實現(xiàn),仿真效果良好,具有一定參考價值.在太空場景仿真理論研究及技術(shù)實現(xiàn)方面,本文僅做了一些初步的研究,有許多問題尚待進(jìn)一步研究.

[1]段雪峰.淺談3D Studio Max中的粒子系統(tǒng)[J].計算機(jī)時代,2002(11):36.

[2]甄杰,鄭力明.基于OGRE的動漫制作引擎設(shè)計與實現(xiàn)[J].微計算機(jī)信息,2011,27(2):160-162.

[3]宋毅軍,楊格蘭,田尊華.太空環(huán)境建模研究與實現(xiàn)[J].計算機(jī)仿真,2010,27(1):40-43.

[4]鄒海,徐軍,褚維翠.基于OpenGL的三維地形的模擬[J].計算機(jī)技術(shù)與發(fā)展,2011,21(6):239-241.

[5]劉相君,晁建剛,何寧.太空場景光照仿真方法研究[J].計算機(jī)仿真,2011,28(11):82-87.

[6]戴國俊,劉玉慶.近地太空環(huán)境的建模與仿真[J].計算機(jī)仿真,2011,28(11):26-30.

[7]王成,戴樹嶺.實時仿真中的逼真虛擬地球?qū)崿F(xiàn)[J].北京航空航天大學(xué)學(xué)報,2011,37(8):1034-1038.

[8]許列,韋群,王玨.基于OSG的三維場景管理及實時繪制技術(shù)研究與實現(xiàn)[J].裝備學(xué)院學(xué)報,2011,22(3):100-104.

[9]戴唐云.基于3DSMAX/OGRE的火箭視景仿真系統(tǒng)的研究與實現(xiàn)[D].成都:電子科技大學(xué),2007.

[10]周海波,陳福民,李莉婭.基于OGRE粒子系統(tǒng)的煙花模擬[J].計算機(jī)應(yīng)用與軟件, 2008,25(10):18-20.

[11]Ogre粒子編輯器教程[EB/OL][2009-08-02].http://hghhe.blog.163.com/blog/static/3237756820097282715118/.

[12]三維圖形渲染庫OGRE 3D[EB/OL][2013-05-07].http://www.oschina.net/p/ogre3d/similar_projects?lang=22&sort=time.

[13]楊波.基于OGRE圖形渲染引擎的視景仿真技術(shù)的研究與實現(xiàn)[D].成都:電子科技大學(xué),2006.

(責(zé)任編輯 朱雪蓮 英文審校 黃振坤)

Space Scene Imitating and Its Application Results

ZHUANG Jian-Dong,ZENG Yong-Jin

(Computer Engineering College,Jimei University,Xiamen 361021,China)

Based on planetary motion in the solar system as the background, this paper is to do some theoretical discussions for computer simulation method of space scene construction.Based on the Microsoft Visual Studio and OGRE (Object-Oriented Graphics Rendering Engine) graphical resources,a planet running simulation system is developed.The method is using model making software such as 3DMax to produce entity object for static three-dimensional objects and using the method for calculating the appropriate programming implementation for 3D movement of objects. In this paper, the imitating method which is describing the object movement through programming to simulate implementation can work in 3D space on its own. Experiments show that the imitating method of design has been applied in space scene simulation.It is shown that the method is proper, easy to implement using 3D graphics resources.

computer imitating; three-dimension imitating;Object-oriented Graphics Rendering Engine(OGRE)

2013-05-21

2013-11-25

莊建東(1963—),男,副教授,從事計算機(jī)圖形學(xué)、計算機(jī)輔助設(shè)計研究.

1007-7405(2014)02-0157-04

TP 391.414

A

猜你喜歡
哈雷彗星行星太空
上太空,安個“家”
流浪行星
追光者——行星
行星呼救
讀者(2018年20期)2018-09-27 02:44:48
難得一見的哈雷彗星
行星
太空遇險
哈雷與哈雷彗星
太空探索(2013年9期)2013-07-13 00:32:48
同來同往
讀者(2010年24期)2010-07-05 23:40:12
暢游太空
意林(2010年15期)2010-05-14 16:48:48
涞水县| 镇原县| 榆社县| 金门县| 娱乐| 霍城县| 剑阁县| 滨海县| 凌海市| 舞钢市| 哈巴河县| 海阳市| 于田县| 松原市| 天台县| 常熟市| 泗阳县| 东阿县| 铅山县| 眉山市| 唐河县| 金门县| 伊吾县| 晋宁县| 哈尔滨市| 建德市| 和硕县| 邵阳县| 凉山| 安义县| 武邑县| 县级市| 尚志市| 巴中市| 香港| 本溪| 永昌县| 朝阳区| 岳西县| 宜章县| 河南省|