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

一種面向飛機虛擬維修的面向對象松散八叉樹*

2019-06-13 10:57:26劉增森
火力與指揮控制 2019年5期

耿 宏,劉增森

(中國民航大學電子信息與自動化學院,天津 300300)

0 引言

飛機虛擬維修以培訓受訓者的維修操作技能為目的,其場景由特定的維修環境、維修工具和維修對象組成,而場景管理的好壞對最終的培訓效果有著直接影響。目前最常用的場景管理方式有場景圖、八叉樹、四叉樹和二叉樹等。其中場景圖主要是對二維動態場景的管理,而八叉樹、四叉樹和二叉樹主要針對靜態場景進行管理[1]。由于八叉樹算法充分利用了物體在三維空間上的相關性,并且具備構造簡單、使用方便等特點,進而被廣泛應用于虛擬現實系統的場景管理中。然而基于傳統八叉樹對飛機虛擬維修場景進行管理會有以下不足:

1)若一個對象橫跨在某個節點的任一劃分平面上,那么它就會被存儲在那個節點中,當對象很小而用于存儲它的節點很大時,大大降低空間劃分的效率。

2)在維修過程中,當移動對象時,為表現出它的運動,必須更新八叉樹中相應部分,這會增加系統的計算開銷[2-4]。

3)傳統八叉樹中不存在對象的概念,場景中所有三角面片視為整體,在維修過程中無法快速定位到維修對象和維修工具,導致無法滿足與場景對象進行動態交互的要求。

針對以上問題,通過虛擬維修場景與現實世界進行比較,采用松散八叉樹和面向對象概念相結合,構成一種面向對象的松散八叉樹。利用樹的“松散”特性,將對象盡量放在樹的更深層次,以提高場景劃分效率;利用對象的尺寸、中心點確定其應處的節點,避免對樹的重建,以降低因其移動造成的場景更新時間開銷;利用對象的結構樹,構建用于存儲其幾何、物理等信息的AABB樹,將對象從場景整體三角面片中劃分出來,以滿足與場景對象進行動態交互要求。

1 面向對象松散八叉樹基本原理

面向對象松散八叉樹基本結構由模型對象化和場景空間剖分兩部分組成,如圖1所示。前者依據對象結構樹來構建零件、組件、產品各層次模型的AABB樹,根據系統交互需求,在對象AABB樹根節點包圍盒中加入相關屬性索引,其索引內容包括對象的幾何、物理、運動類型等信息,對象的三角面片存儲在AABB樹特定層次的特定包圍盒中,圖1中RP、RA、RC分別表示產品、組件、零件的根節點,反向虛箭頭表示產品AABB樹是采用自下而上的方式構建,L、R為零件樹的左右子節點,Le為包含面片的葉節點;后者采用松散八叉樹對AABB樹根節點八叉剖分,以樹葉節點存儲對象AABB樹,構成一棵面向對象的松散八叉樹,其中R代表整個虛擬場景的根節點,N為組結點,R到N之間的虛線段代表省略了其上層的非葉節點,Ge為包含模型對象的葉節點。

圖1 面向對象松散八叉樹基本結構圖

2 面向對象松散八叉樹模型構建

2.1 場景模型的對象化

將場景模型從面片中分離并形成可交互的對象需以下步驟:

1)根據結構樹構建零件AABB樹,并在相關節點植入對象信息。除節點索引等信息外,在根、葉節點包圍盒添加了對象屬性信息索引,屬性信息以XML單獨存儲,中間節點包圍盒數據結構除不包含屬性信息索引外與根節點相同[5-6]。圖2為零件AABB樹根、葉節點的數據結構,其中屬性信息索引、左右子節點索引均以4 Byte的int型數據表示,6個坐標值以4 Byte的float型數據表示,Flchild,Frchild用于判別根節點的左右子節點是否為葉節點,以1字節char型數據表示,若是葉節點取值為true,否則取false。

表1 AABB樹根、葉節點包圍盒數據結構表

要構建一棵包含零件屬性信息的AABB樹,需對零件根節點AABB分割直至葉節點包圍盒只含有一個三角面,文中采用分裂平面法對AABB分割,構建過程為:①構建零件的根節點包圍盒,記為V;②使用最長軸法確定根節點V的分裂軸,即選擇方向軸使包圍盒沿軸線方向最長,設軸的方向向量為,軸線由兩個面的交線表示,即,均為已知系數;③采用中值法確定分裂點以定位分裂平面,設TCi為節點中三角面片的中心坐標,則

設分裂軸上n個投影點的中值坐標為TC_CENTER,則中值坐標可由下式求得,

④利用分裂平面將當前節點中的三角面片劃分到左右兩個子節點中,取分裂平面上任意點的坐標e,令分別為左右子節點包含的三角面數,依據表1判定三角面片應處的子節點。

表2 面片應處節點判定表

⑤將左右子節點作為根節點,返回步驟②直到每個葉節點包圍盒僅含有一個三角面片。

2)根據零件AABB樹構建組件AABB樹

若一個組件由n個零件組成,分別以M1~Mn表示,B(M1)~B(Mn)為 M1~Mn的 AABB 樹根節點,為構建 AABB 樹,CBVT(M1~Mn)利用零件樹的根節點建立父節點CB(M1~Mn)將它們聯系起來,它可表示為B(M1)~B(Mn)的并集[7-8]。

另外,根據AABB的定義可得

表3為組件樹根節點的數據結構,根據結構樹,一個產品由N個組件構成,則產品AABB樹可由N個組件的AABB樹整合而成,其構成原理與組件AABB樹相同。

3)對象AABB樹的更新

設Bcenter為包圍盒中心初始坐標,最大、最小值頂點為Bmax、Bmin,運動后的最大、最小值頂點為B'max,B'min,B'center為運動后的包圍盒中心,B'center沿 X,Y,Z軸的平移向量為

表3 組件樹根節點的數據結構

Bcenter繞 X,Y,Z軸的旋轉角度分別為 α,β,θ,旋轉矩陣分別設為Rot(x,α),Rot(y,α),Rot(z,α),繞X軸旋轉得,,同理可得繞Y,Z軸的旋轉矩陣分別為。若對象只進行平移運動,只需求出變換后的最大、最小值點即可確定新位置處對象的包圍盒,即。當對象發生旋轉運動時,不能直接利用旋轉矩陣將包圍盒變換到新位置,這里采用一種技巧,首先測出包圍盒最長邊的長度,記為Len,對象旋轉后以B'center為中心,邊長為len的立方體作為新包圍盒,B'center經旋轉運動后的位置可以用旋轉矩陣求得,假設包圍盒中心點依次繞Z軸、Y軸、X軸旋轉,設ROT為旋轉矩陣,則

2.2 場景的空間剖分

定義空間為包含多個對象模型的立方體,采用松散八叉樹對其在X,Y,Z 3個方向上剖分,這里涉及到約束條件的建立、對象AABB樹根節點的剖分、樹的更新。

約束條件為樹的最大分裂深度Dmax,和節點可包含的最大面片數Fmax,兩參數確定方法如下:設傳統八叉樹某一節點的包圍盒邊長為u,松散系數為k,松散后的包圍盒邊長為L,則 L=ku,k∈(1,+∞),設場景根節點包圍盒邊長為U,在深度d下的松散節點包圍盒邊長為L=k×U/2d,設對象AABB樹根節點包圍盒的最大邊長為l,對于含有n個對象模型的場景,設lmin為所有對象樹根節點包圍盒l的最小值,為保證場景中最小八叉樹節點的包圍盒可包含最小的對象AABB樹根包圍盒,令L≥lmin,得:

基于AABB樹根節點包圍盒對場景剖分時,若當前節點深度小于Dmax且包含的三角面片數大于Fmax,則對該節點繼續劃分,直到滿足約束條件要求。在剖分過程中,該樹結構可將對象盡量存儲在更深層次的節點中,以此提高劃分效率,基本原理是:若對象橫跨劃分平面,常規的處理方法是把該對象存儲在當前兩節點的上一層節點,這里將節點邊長擴大k倍,以便對象可被深層單個節點容納,這種處理方法將對象存儲在樹更深層次的節點中[9]。

當對象移動時,須對八叉樹進行更新,其基本原理如下:

在松散八叉樹中,對于一個特定的物體,它應插入的深度和節點可根據其尺寸大小和中心位置求得[10]。對于給定深度depth的松散節點,它在該深度任意位置可容納小于等于八叉樹節點包圍盒邊長1/2,大于1/4的對象AABB樹根節點包圍盒,尺寸比此更小的包圍盒應存在更深層次的節點中。

由以上可得下列各式:

則取depth的極大值為

設對象AABB樹根節點包圍盒中心點坐標為Ocenter,由depth已知,此時只需選擇距離中心坐標最近的節點作為存儲物體的節點,所有節點的中心坐標集合可表示為:

則節點node的索引公式可表示為:

其中find為自定義函數,作用是搜索距Ocenter最小點,并輸出與其對應節點信息。

3 實例

為驗證本文算法的有效性,將文中算法、傳統算法分別應用到飛機虛擬維修機庫AH(Aircraft hangar)、電子設備艙 EEC(Electronic equipment cabin)場景,對所測性能數據進行統計和對比。圖2為機庫場景的實現圖,運用其Ⅰ~Ⅳ階段實現算法如下:

Ⅰ該階段是將零件模型對象化。首先,獲取對象的最大、最小值頂點坐標,建立其AABB樹根節點包圍盒,以梯子橫板為例,其最大、最小值坐標分別為:

圖2 文中算法在機庫場景的實現圖

其次,遍歷構成該對象的所有三角面片,獲取面片總數 n 和頂點坐標(pi,qi,ri)ni=1,由式(1)到式(3)求得分裂點 TC_center=(452.129,532.915,29.75),測得n=2 158;最后,根據表2判定面片應處的子節點位置,首次分裂最長軸方向向量 a取(0,0,1),重復以上步驟對子節點分裂,直到每個節點只包含一個面片,依據表1完成對零件AABB樹根節點和葉節點相關索引信息的添加。

Ⅱ此階段的任務是在Ⅰ的基礎上,將組件或產品模型對象化處理。圖2中橫板和支撐桿作為構成梯子16零件中的兩個,虛線表示省略了其他零件,測得AABB樹16個根節點的包圍盒的最大、最小值頂點為:

根據式(4)可得

由此可構建梯子AABB樹,依據表3完成根節點相關索引信息的添加。

Ⅲ該階段是在Ⅰ、Ⅱ階段的基礎上,利用松散八叉樹對場景進行八叉剖分,本文取k=2、=3,同時測得 U≈350,lmin≈8,NUMmin=1 371,則據式(8)、式(9)可得Dmax=6,Fmax=4 113,以兩參數為約束條件,完成對場景的剖分。

Ⅳ該階段主要處理場景中運動對象的更新問題,這里的更新包括兩方面,一是對象AABB樹的更新,二是松散八叉樹的更新。由圖2,梯子由位置A移動至位置B,其轉換過程為先繞Z軸旋轉8°,即α=0°,β=0°,θ=8°,測得梯子初始包圍盒中心 Bcenter=(898.795,586.029,32.135),再按平移矩陣(-36.182,127.23,0.0)T進行平移到達B 位置,

結合式(5)~ 式(7)得

利用len=36.327作出對象運動后的AABB樹。對象運動后還需對八叉樹更新,已知梯子的l≈36,則根據式(10)可得 depth=3,結合式(11)得梯子應放節點的索引公式

其 i=1,…,n,(xi,yi,zi)遍歷節點自動獲取。

表4和圖3記錄了傳統算法與本文算法在飛機虛擬場景管理方面的性能參數,這里將平均繪制幀速、場景更新平均耗時和平均交互靈敏度(受訓者點擊交互對象到對象響應時間間隔)作為兩者對比主要的性能參數。場景更新平均耗時選用飛機電子設備艙進行測試,通過改變設備艙內移動物體的數量,記錄在兩種算法下場景更新時間變化。

表4 兩種算法下幀速、靈敏度對比表

圖3 AH、EEC場景更新時間對比圖

由表4,與傳統算法相比,本文算法在機庫和飛機電子設備艙內的平均繪制幀速分別提高了34.8%、19.8%,平均交互靈度分別降低了62.3%、46.8%的時間開銷,由圖3,在本文算法下,隨著場景中移動對象的增多,場景更新操時間并沒有顯著增加。

4 結論

針對飛機虛擬維修場景的組織管理效率低的問題,提出一種面向對象松散八叉樹場景管理方法,將面向對象概念和松散八叉樹相結合,以樹葉節點來存儲包含對象屬性信息的AABB樹,利用該方法對維修對象和工具進行快速的定位、簡化了運動物體更新操作過程、降低了場景更新時間開銷,最終提高了飛機虛擬維修場景的組織管理效率。

主站蜘蛛池模板: 亚洲综合第一区| 国产精品yjizz视频网一二区| 在线观看av永久| 国产成人AV大片大片在线播放 | 成人综合网址| 亚洲天堂网视频| 综合色在线| 国产二级毛片| julia中文字幕久久亚洲| 国产午夜一级毛片| 欧洲熟妇精品视频| 亚洲国产91人成在线| 久无码久无码av无码| 青青网在线国产| 26uuu国产精品视频| 人人91人人澡人人妻人人爽| 免费不卡在线观看av| 久久亚洲国产视频| 国产在线八区| 欧美成人精品高清在线下载| 最新亚洲av女人的天堂| 99久久精品国产自免费| 国产视频 第一页| 东京热av无码电影一区二区| 黄色福利在线| 97se亚洲综合在线天天 | 久久国产V一级毛多内射| 欧美一区二区福利视频| 国产高清在线观看| 亚洲动漫h| 欧美精品另类| 精品久久久久久久久久久| 国产青榴视频在线观看网站| 亚洲手机在线| 91av国产在线| 中文字幕日韩丝袜一区| 免费毛片a| 99这里只有精品在线| 91热爆在线| 日韩黄色精品| 久久夜夜视频| 国产一区二区免费播放| 国产正在播放| 色成人亚洲| 婷婷丁香色| 欧美亚洲国产精品第一页| 香蕉久久国产超碰青草| 女人爽到高潮免费视频大全| 麻豆国产在线观看一区二区 | 久久香蕉国产线看观看精品蕉| 无码高潮喷水专区久久| 婷婷亚洲最大| 5555国产在线观看| 午夜视频在线观看免费网站 | 影音先锋丝袜制服| 国产香蕉在线视频| 欧美中文字幕一区| 91色爱欧美精品www| a在线观看免费| 国产幂在线无码精品| 免费无遮挡AV| 欧美激情视频一区二区三区免费| 精品一区二区三区中文字幕| 91po国产在线精品免费观看| 91在线精品麻豆欧美在线| 国产h视频在线观看视频| 免费大黄网站在线观看| 亚洲美女一区| 毛片在线播放a| 国产成人凹凸视频在线| 亚洲精品午夜天堂网页| 国产精品九九视频| 麻豆国产原创视频在线播放| 五月激情综合网| 97久久精品人人做人人爽| 国产成人永久免费视频| 国产成人av一区二区三区| 日本欧美视频在线观看| 亚洲第一黄片大全| 精品一区二区三区无码视频无码| www.91中文字幕| 色哟哟国产精品|