?

太空場景的仿真及其應用效果

2014-08-28 08:17莊建東曾勇進
關鍵詞:哈雷彗星行星太空

莊建東 ,曾勇進

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

太空場景的仿真及其應用效果

莊建東 ,曾勇進

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

利用Microsoft Visual Studio和OGRE圖形資源,以太陽系行星運動為背景,開發一個行星運行模擬系統,探討構建太空場景的計算機模擬方法.采用的方法有:對于三維對象的靜態,利用模型制作軟件(如3DMax)將實體對象制作出來;對于三維對象的運動,用適當的計算方法進行編程實現.天體運動的仿真方法均通過編程得以模擬實現,能夠自行在3D空間中運轉.實驗表明所設計的仿真方法,利用3D圖形資源易于實現.

計算機動畫;三維仿真;面向對象圖形渲染引擎

0 引言

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

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

1 太空場景的仿真及設計方法

太空場景十分復雜,本文主要從行星、衛星和哈雷彗星的仿真及設計方法去研究和實現太空場景的仿真.

1.1 行星的運轉仿真

1)行星的構建

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

以OGRE為例,首先通過 Ogre::Entity* entity = mSceneManager->createEntity(name, mesh);將實體進行聲明,然后創建Ogre::SceneNode用于后續的操作.主要代碼如下:

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

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

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

// 創建Ogre::SceneNode

node->attachObject(entity);

return node;

}

2)行星公轉的設計

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

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

3) 行星自轉的設計

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

1.2 行星的衛星的運轉仿真

考慮到行星除了做公轉和自轉外,其衛星還要繞其旋轉.衛星的運轉應包括兩部分,衛星繞行星的公轉和衛星的自轉,最終結果是兩者的組合變化.

由于月球繞著轉的不是坐標原點而是某一個移動中的行星,因此需要記錄行星當前的坐標,并通過平移變換、旋轉變換的組合變換來完成.其主要過程為:將移動中的行星的坐標位置通過平移變換改變為坐標原點的位置,然后進行繞坐標原點(行星的位置)進行旋轉變換,將旋轉變換后的結果再通過平移變換反方向平移到行星原來的位置.其主要算法代碼為:

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為月球繞著移動中的行星旋轉的半徑,time為月球繞著移動中的行星旋轉的時間,T為月球繞著移動中的行星旋轉的周期,SatelliteTime為行星公轉運行的時間,SatelliteT為行星公轉運行的周期,SatelliteR為行星公轉的半徑.

1.3 哈雷彗星的運轉仿真

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

主要算法為:

再添加圖形變換:

使其在3D的坐標軸里繞y軸順時針旋轉.

為使其運行的觀賞視角更好一些,本文在實現上利用幾顆微小粒子形成軌道圖,使這些行星在相應軌道進行公轉.

1.4 太陽發光的仿真

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

2 計算機仿真的實驗結果

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

3 結束語

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

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

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

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

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

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

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

[7]王成,戴樹嶺.實時仿真中的逼真虛擬地球實現[J].北京航空航天大學學報,2011,37(8):1034-1038.

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

[9]戴唐云.基于3DSMAX/OGRE的火箭視景仿真系統的研究與實現[D].成都:電子科技大學,2007.

[10]周海波,陳福民,李莉婭.基于OGRE粒子系統的煙花模擬[J].計算機應用與軟件, 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圖形渲染引擎的視景仿真技術的研究與實現[D].成都:電子科技大學,2006.

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

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—),男,副教授,從事計算機圖形學、計算機輔助設計研究.

1007-7405(2014)02-0157-04

TP 391.414

A

猜你喜歡
哈雷彗星行星太空
上太空,安個“家”
流浪行星
追光者——行星
行星呼救
難得一見的哈雷彗星
行星
太空遇險
哈雷與哈雷彗星
暢游太空
迷失在太空深處
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合