999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

行星際飛行仿真視點(diǎn)運(yùn)動(dòng)控制算法設(shè)計(jì)

2022-09-28 09:28:30葛雙全孟德壯
計(jì)算機(jī)仿真 2022年8期

葛雙全,孟德壯

(中國工程物理研究院計(jì)算機(jī)應(yīng)用研究所,四川 綿陽 621900)

1 引言

地球外層空間環(huán)境的特殊性是人類從事空間活動(dòng)和認(rèn)知空間環(huán)境變化規(guī)律的主要障礙,可視化仿真技術(shù)的發(fā)展為改變這一狀況提供了契機(jī)。可視化仿真技術(shù)采用圖形或圖像的方式實(shí)現(xiàn)空間和時(shí)間數(shù)據(jù)的視覺化,將可視化仿真技術(shù)應(yīng)用于空間科學(xué)研究與工程實(shí)施領(lǐng)域,一方面能夠通過可視化的形式表示空間環(huán)境,直觀展現(xiàn)其分布狀況、運(yùn)行規(guī)律及動(dòng)態(tài)特性,另一方面可仿真空間科學(xué)研究活動(dòng),為空間科學(xué)研究提供支持[1]。

行星際空間環(huán)境可視化需求多樣,既有厘米級(jí)的飛行器載荷高精度動(dòng)作仿真,也有星際飛行運(yùn)動(dòng)仿真。根據(jù)不同的空間仿真設(shè)計(jì),觀察者在同一虛擬場(chǎng)景內(nèi)既可能需要觀測(cè)仿真對(duì)象相對(duì)位置關(guān)系,又要清晰地觀察飛行器載荷動(dòng)作行為。因此,設(shè)計(jì)適用于滿足視點(diǎn)在大尺度星際空間快速運(yùn)動(dòng)條件下的控制算法具有重要意義。

2 行星際飛行仿真特征分析

2.1 空間尺度大

行星際飛行仿真的大尺度包含兩方面含義:太陽系距離尺度變化巨大;仿真對(duì)象模型本身尺度變化巨大。對(duì)于前者而言,水星是離太陽最近的行星,其距離太陽約為5791萬千米,海王星是離太陽最遠(yuǎn)的行星,其距離太陽約為45億千米,飛行器載荷動(dòng)作則為分米級(jí)或厘米級(jí)。對(duì)于后者而言,太陽直徑約為70萬千米,而飛行器大小通常只有數(shù)米,各仿真對(duì)象模型大小存在很大的數(shù)量級(jí)差。

2.2 空間關(guān)系復(fù)雜

行星際飛行仿真研究對(duì)象包括空間環(huán)境、行星及其衛(wèi)星、飛行器及其載荷等,各仿真對(duì)象空間關(guān)系復(fù)雜。太陽對(duì)飛行器和行星的光照、飛行器對(duì)地覆蓋等計(jì)算都受制于仿真對(duì)象之間的相對(duì)位置關(guān)系,而針對(duì)各仿真對(duì)象相對(duì)位置關(guān)系的描述基于統(tǒng)一的空間坐標(biāo)體系,如行星運(yùn)動(dòng)仿真通常在日心黃道坐標(biāo)系下描述各行星的運(yùn)動(dòng)軌跡;飛行器運(yùn)動(dòng)仿真通常在該飛行器所屬行星的慣性坐標(biāo)系下描述該飛行器運(yùn)動(dòng);發(fā)射飛行器通常在地球固定坐標(biāo)系下描述其發(fā)射活動(dòng);描述飛行器及其載荷則通常采用軌道坐標(biāo)系及飛行器本體坐標(biāo)系。

2.3 感知效果差

相對(duì)于行星之間的距離,行星本身尺度可以忽略不計(jì),太陽系內(nèi)部空間基本可認(rèn)為空無一物。在行星際飛行仿真場(chǎng)景中,當(dāng)希望觀測(cè)星際運(yùn)動(dòng)軌跡時(shí),就不得不將視點(diǎn)置于離太陽很遠(yuǎn)的位置。當(dāng)希望了解飛行器狀態(tài)時(shí),又必須將視點(diǎn)移動(dòng)到飛行器本身或其附近。另外,在如此浩瀚的空間范圍內(nèi),由于缺乏參展物,觀察者將難以根據(jù)周圍環(huán)境判斷視點(diǎn)所處的空間位置,從整體上感知仿真對(duì)象的分布情況。

3 視點(diǎn)運(yùn)動(dòng)控制算法設(shè)計(jì)

3.1 空間坐標(biāo)體系構(gòu)建

空間坐標(biāo)體系用于描述仿真對(duì)象在太陽系空間的位置關(guān)系,是行星際飛行仿真系統(tǒng)的運(yùn)行基礎(chǔ)。從空間環(huán)境要素分析來看,對(duì)地球空間環(huán)境的研究幾乎都是以地球?yàn)橹行膩硌芯靠臻g環(huán)境對(duì)人類生產(chǎn)活動(dòng)的影響。但由于星際飛行涉及大量的行星間相對(duì)位置關(guān)系、飛行器及其載荷與行星(主要是太陽和地球)的相對(duì)位置關(guān)系等,因此構(gòu)建行星際飛行仿真坐標(biāo)系統(tǒng)必須以日心黃道坐標(biāo)系統(tǒng)為基準(zhǔn)。考慮到行星際飛行仿真所涉及的各種試驗(yàn)場(chǎng)景和仿真對(duì)象,坐標(biāo)系統(tǒng)包括飛行器軌道坐標(biāo)系、本體坐標(biāo)系、地球固定坐標(biāo)系、發(fā)射場(chǎng)坐標(biāo)系、地球慣性坐標(biāo)系、地球黃道坐標(biāo)系、日心黃道坐標(biāo)系、太陽慣性坐標(biāo)系、太陽固定坐標(biāo)系等[2-4]。圖1所示為行星際飛行仿真坐標(biāo)體系。

圖1 行星際飛行仿真坐標(biāo)體系

3.2 視點(diǎn)控制機(jī)制

視點(diǎn)是觀察者查看虛擬場(chǎng)景的接口,OpenGL將視點(diǎn)抽象為觀察者,觀察者將許多模擬的元素聚合在一起觀測(cè)。每個(gè)觀察者都有各自關(guān)聯(lián)的場(chǎng)景、通道和環(huán)境。

觀察者也是場(chǎng)景中的活動(dòng)物體,所以它也有移動(dòng)、旋轉(zhuǎn)等改變位置的操作,觀察者可以掛接到任一場(chǎng)景節(jié)點(diǎn)下。由于坐標(biāo)變換矩陣的累加性,觀察者的直接父節(jié)點(diǎn)和間接父節(jié)點(diǎn)的改變都會(huì)對(duì)觀察者的位置產(chǎn)生影響。觀察者坐標(biāo)定義采用右手坐標(biāo)系,視點(diǎn)位于坐標(biāo)的原點(diǎn),視點(diǎn)正前方為正Y軸,X軸正方向朝右,Z軸正朝上。通過控制觀察者所處的坐標(biāo)空間和觀察者的位置和姿態(tài),就可以決定空間仿真場(chǎng)景提供給觀察者的視覺信息。

3.3 視點(diǎn)運(yùn)動(dòng)控制算法設(shè)計(jì)

3.3.1 從三維空間到二維屏幕

渲染管道用于描述OpenGL一系列繪制過程[5-6],是三維空間對(duì)象從世界坐標(biāo)系到屏幕坐標(biāo)系的基本流程,即從三維空間到二維屏幕,其渲染流程如圖2所示。

圖2 OpenGl渲染管線

頂點(diǎn)數(shù)據(jù)通常是指三維空間中的物體的坐標(biāo)、法線向量等,這些數(shù)據(jù)可以保存在顯示列表中,也可以直接進(jìn)行處理。求值器根據(jù)頂點(diǎn)數(shù)據(jù)計(jì)算表面法線、紋理坐標(biāo)、顏色以及空間坐標(biāo)值,基于頂點(diǎn)的操作首先對(duì)單個(gè)頂點(diǎn)進(jìn)行操作,然后把頂點(diǎn)裝配成為圖元。像素操作將內(nèi)存中的像素?cái)?shù)據(jù)轉(zhuǎn)換成圖形硬件支持的數(shù)據(jù)格式,如果像素?cái)?shù)據(jù)是從幀緩沖區(qū)中讀取的,就對(duì)其進(jìn)行縮放、平移、映射和截取。經(jīng)過處理后的頂點(diǎn)數(shù)據(jù)和像素?cái)?shù)據(jù)通過光柵化轉(zhuǎn)換為片段,片段對(duì)應(yīng)于幀緩沖區(qū)中的一個(gè)像素,具有各自的演示和深度值。對(duì)這些片段進(jìn)行顏色計(jì)算、紋理應(yīng)用、片段測(cè)試等,最后,片段會(huì)被繪制到適當(dāng)?shù)木彌_區(qū),顯示設(shè)備從緩沖區(qū)讀取數(shù)據(jù)并顯示到屏幕上。

3.3.2 算法描述

3.3.2.1 問題描述

行星際飛行仿真需要考慮空間環(huán)境整體比例縮放、行星比例縮放、飛行器比例縮放、軌道高度自定義、飛行器軸向運(yùn)動(dòng)比例縮放、飛行器載荷運(yùn)動(dòng)等多種仿真演示要素。如果單獨(dú)考慮每一種顯示要素,不同的飛行仿真場(chǎng)景可在一定程度上增加仿真演示的靈活性,但這同時(shí)會(huì)帶來另外的問題,如果需要模擬設(shè)計(jì)多種飛行仿真場(chǎng),則相同的仿真演示要素在不同的場(chǎng)景中可能沖突。如果行星或飛行器比例縮放,那么在近距離觀察飛行器運(yùn)動(dòng)時(shí),飛行器可能發(fā)生碰撞;如果行星或飛行器比例不縮放,則在飛行器大范圍機(jī)動(dòng)時(shí),飛行器可能小到看不見。如果飛行器運(yùn)行軌道不改變,同樣,相對(duì)于地球而言,飛行器極小;如果改變飛行器運(yùn)行軌道高度,則飛行器上的某些載荷(如相機(jī))的視場(chǎng)可能捕獲不到目標(biāo)。

3.3.2.2 設(shè)計(jì)約束

為簡(jiǎn)化行星際飛行仿真演示復(fù)雜度,在不影響仿真演示效果的前提下,列出算法設(shè)計(jì)約束如下:

1)空間仿真場(chǎng)景模擬以日心黃道坐標(biāo)系為基準(zhǔn);

2)星空背景基于耶魯星表中3000余顆星的位置和亮度繪制,每顆在遠(yuǎn)裁減面內(nèi)的星都用相同大小的白色的點(diǎn)繪制,并根據(jù)其相對(duì)亮度調(diào)整透明度。

3)行星采用球體貼紋理實(shí)現(xiàn),球體半徑為真實(shí)行星半徑大小,地球大氣層高度為大氣層實(shí)際高度。

4)太陽僅考慮位置的正確性,其大小保持不變,采用球體貼紋理實(shí)現(xiàn)。

3.3.2.3 比例歸一化

大尺度行星際飛行仿真演示算法設(shè)計(jì)的核心思想就是對(duì)所有的演示要素按照真實(shí)比例1:1繪制,即對(duì)空間距離、仿真對(duì)象模型、軌道、載荷等顯示要素不予縮放。

1:1繪制可以解決絕大部分仿真演示問題,例如成像對(duì)象不能進(jìn)入相機(jī)視場(chǎng)、近距離觀察飛行器,飛行器會(huì)發(fā)生碰撞、飛行器運(yùn)動(dòng)失真等等。總之,行星際飛行仿真按照仿真對(duì)象實(shí)際的距離和大小實(shí)現(xiàn),這可以避免不同的試驗(yàn)程序自定義調(diào)整不同的顯示要素。

設(shè)計(jì)約束的第3)項(xiàng)可以解決行星際的“合理性”顯示問題。對(duì)于太陽的顯示僅考慮其位置,太陽在三維太空中的位置將被準(zhǔn)確的投影到屏幕上合適的位置。太陽的顯示通過透明紋理貼圖實(shí)現(xiàn),大小保持不變,這與常識(shí)吻合。

3.3.2.4 最小視距與最大視距

最小視距的定義:最小視距首先是一個(gè)長度量,標(biāo)示仿真對(duì)象在三維空間中的位置與視點(diǎn)之間的距離,其次,該距離是仿真對(duì)象從三維空間投影到二維屏幕上,且能夠被觀察者感知的最小距離。圖3表示了視點(diǎn)與最小視距的關(guān)系。從定義可知,最小視距是一個(gè)被人為感知的長度量,不同的人可能具有不同的最小視距,即同樣大小的物體在同樣的位置,然后投影到屏幕上,不同的人可能感覺大小不一樣。最小視距從定義上講是一個(gè)三維空間中的長度量,但觀察者在二維屏幕上能夠感知的是一個(gè)二維區(qū)域的大小,即屏幕上有多少個(gè)像素表示該仿真對(duì)象。根據(jù)OpenGL透視原理,當(dāng)物體投影到屏幕后,有的會(huì)認(rèn)為1個(gè)像素時(shí)對(duì)應(yīng)該物體的最小視距,有的會(huì)認(rèn)為4個(gè)像素表現(xiàn)該物體時(shí)對(duì)應(yīng)該物體的最小視距。

圖3 視點(diǎn)與最小視距

最小視距雖然由觀察者確定,但最小視距本身由OpenGL根據(jù)透視原理和渲染流程自動(dòng)計(jì)算。

視點(diǎn)總是被綁定在空間坐標(biāo)層次結(jié)構(gòu)樹的某個(gè)坐標(biāo)系下。同樣,各個(gè)仿真對(duì)象也在各自的坐標(biāo)體系下運(yùn)行,因此,總是可以精確的計(jì)算出各個(gè)仿真對(duì)象到視點(diǎn)的距離。

最大視距的定義:觀察者認(rèn)為仿真對(duì)象投影到二維屏幕上的物體不能再小(大小保持)時(shí)仿真對(duì)象距離視點(diǎn)的距離。最大視距同樣是一個(gè)長度量,表示三維空間中的對(duì)象距離視點(diǎn)的距離。如果仿真對(duì)象大于最大視距,繼續(xù)遠(yuǎn)離視點(diǎn),此時(shí)需要放大對(duì)象顯示比例(完全抵消OpenGL透視比例),使其隨著距離的增大,在二維屏幕上的投影面積不變。圖4表示最小視距與最大視距空間位置關(guān)系。

圖4 最小視距與最大視距

3.3.2.5 放大最小視距外的仿真對(duì)象

1:1繪制不能解決的問題是在大尺度空間仿真場(chǎng)景中,飛行器做大范圍機(jī)動(dòng)時(shí),用戶需要了解飛行器當(dāng)前的位置,但遠(yuǎn)處的飛行器已經(jīng)超出了可見范圍。

需要計(jì)算出仿真對(duì)象的最小視距,如果仿真對(duì)象在最小視距內(nèi)(也就是說仿真對(duì)象可見),則由OpenGL根據(jù)透視原理自動(dòng)計(jì)算仿真對(duì)象的大小。但如果觀察者認(rèn)為仿真對(duì)象已不可見(或者說,在屏幕上的投影不能再小),此時(shí),如果仿真對(duì)象再遠(yuǎn)離視點(diǎn),就需要放大仿真對(duì)象的顯示比例,以滿足仿真對(duì)象的可視需求。

例如:當(dāng)飛行器機(jī)動(dòng)到距離視點(diǎn)2km遠(yuǎn)處,此時(shí)用戶認(rèn)為飛行器需要人工干預(yù)放大飛行器比例,則2km就是該飛行器的最小視距。假如飛行器在2km處對(duì)應(yīng)在屏幕上顯示為25個(gè)像素(5×5),當(dāng)飛行器繼續(xù)遠(yuǎn)離直至距離視點(diǎn)10km,在OpenGL透視機(jī)制的作用下,此時(shí)飛行器在屏幕上顯示為4個(gè)像素(2×2),如果用戶認(rèn)為4個(gè)像素是滿足仿真對(duì)象可視需求的最小投影,則10km就是該飛行器的最大視距。如果視點(diǎn)與飛行器距離大于最小視距,需要對(duì)飛行器的顯示比例進(jìn)行適當(dāng)放大,但不能大于25個(gè)像素(以避免造成距離視點(diǎn)越遠(yuǎn),物體反而變大的情況)。如果視點(diǎn)與飛行器距離大于最大視距,則需對(duì)飛行器顯示比例充分放大,使其在屏幕上的投影面積始終保持在4個(gè)像素大小。

(1)

當(dāng)視距大于最大視距時(shí),該段直線為α×d,分段函數(shù)可描述為如下公式

(2)

圖5 對(duì)象縮放比例與視距直線連接關(guān)系

如圖6所示,如果不考慮分段,從單一公式描述,則可知連續(xù)平滑曲線在f′(dmin)=0,f′(dmax)=α,飛行器縮放比例實(shí)為問題:

H(x0)=f(x0),H′(x0)=f′(x0)

H(x1)=f(x1),H′(x1)=f′(x1)

的解。根據(jù)三次Hermite插值定理,飛行器縮放比例可如下式表示

(3)

其中x0=dmin,x1=dmax,f(x0)=1,f′(x0)=0,f(x1)=α×dmax,f′(x1)=a。

綜上:

(4)

圖6 仿真對(duì)象縮放比例與視距平滑連接關(guān)系

在實(shí)際使用過程中,需要首先確定dmin、dmax和α值,再根據(jù)視距實(shí)時(shí)按照式(4)確定各仿真對(duì)象的縮放比例。

4 仿真驗(yàn)證

根據(jù)上述算法,基于開源圖形引擎OpenSceneGraph[7-8]及osgEarth[9-10]開發(fā)了地月運(yùn)動(dòng)仿真系統(tǒng),圖7左邊表示太陽系各行星運(yùn)行軌跡,右邊是地球在赤道坐標(biāo)系與黃道坐標(biāo)系網(wǎng)格下的運(yùn)動(dòng)仿真,用戶能夠在行星及其衛(wèi)星之間切換視點(diǎn)并拉近觀察太陽、月球及各行星狀態(tài)。圖8左邊表示飛行器地月運(yùn)動(dòng)軌跡,右邊則是將視點(diǎn)綁定到飛行器上,通過交互控制貼近觀察飛行器某載荷的開蓋過程(藍(lán)色橢圓圈內(nèi))。

5 結(jié)語

本文分析了行星際飛行仿真特征,基于視覺透視原理和視點(diǎn)控制機(jī)制設(shè)計(jì)了一種行星際飛行仿真視點(diǎn)運(yùn)動(dòng)控制算法。當(dāng)仿真對(duì)象與視點(diǎn)的距離小于最小視距時(shí),由OpenGL透視機(jī)制自動(dòng)控制投射到顯示屏幕上的各空間仿真對(duì)象的大小;當(dāng)視距大于最小視距但小于最大視距時(shí),部分抵消OpenGL透視機(jī)制所帶來的比例縮小值,當(dāng)視距大于最大視距時(shí),則全部抵消OpenGL透視機(jī)制帶來的比例縮小值。另外,在大尺度空間場(chǎng)景仿真過程中,當(dāng)需要了解細(xì)節(jié)時(shí)(如觀察載荷運(yùn)動(dòng)),可采用多觀察者方式[11]等形式輔助助實(shí)現(xiàn)。

圖7 日心黃道坐標(biāo)系下的行星運(yùn)動(dòng)仿真

圖8 飛行器地月運(yùn)動(dòng)仿真

主站蜘蛛池模板: 久久毛片网| 少妇露出福利视频| 久久综合九色综合97网| 国产极品美女在线播放| 91蝌蚪视频在线观看| 国产第二十一页| 1769国产精品视频免费观看| 1024你懂的国产精品| 国产三级精品三级在线观看| 中文天堂在线视频| 亚洲欧美日韩另类在线一| 老司机久久99久久精品播放| 好吊妞欧美视频免费| 亚洲va在线∨a天堂va欧美va| 国产AV无码专区亚洲A∨毛片| 福利在线不卡| 五月婷婷精品| 亚洲国模精品一区| 国产成本人片免费a∨短片| 国产不卡在线看| 久久伊人操| 超碰精品无码一区二区| 国产在线观看一区精品| 国产成人亚洲精品无码电影| 2021国产v亚洲v天堂无码| 亚洲成人精品| 亚洲中文字幕无码爆乳| 国产一区二区影院| 日韩国产另类| 91久久偷偷做嫩草影院| 亚洲欧美极品| 综合社区亚洲熟妇p| 伊人福利视频| 国产精品亚洲日韩AⅤ在线观看| www.亚洲一区二区三区| 这里只有精品在线| 亚洲最大情网站在线观看| 日韩一二三区视频精品| 一本大道东京热无码av| 国产综合精品一区二区| 99热这里只有精品久久免费| 亚洲一欧洲中文字幕在线| 中文字幕乱妇无码AV在线| 亚洲中文精品人人永久免费| 欧美中文字幕在线二区| 四虎AV麻豆| 欧美不卡视频在线观看| 国产成人亚洲日韩欧美电影| 国产永久免费视频m3u8| 亚洲日本www| 精品少妇人妻av无码久久| 午夜国产小视频| 幺女国产一级毛片| 日韩欧美综合在线制服| 亚洲色欲色欲www网| 真实国产乱子伦视频| 综1合AV在线播放| 婷婷午夜天| yy6080理论大片一级久久| 人妻21p大胆| 成人福利在线观看| 欧美啪啪一区| 一级做a爰片久久毛片毛片| 香蕉久人久人青草青草| 女同国产精品一区二区| 一级片免费网站| 亚洲国产日韩欧美在线| 在线无码九区| 欧美福利在线播放| 亚洲第一精品福利| 亚洲a免费| 伊人成人在线视频| 亚洲国产精品美女| 欧美国产在线看| 午夜日b视频| 欧美亚洲另类在线观看| 免费看av在线网站网址| 国产h视频免费观看| 91麻豆国产精品91久久久| 日韩精品专区免费无码aⅴ| 亚洲大尺度在线| 国产欧美自拍视频|