System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及計算機,尤其涉及一種虛幻引擎中靜態網格體的組織與調度方法。
技術介紹
1、在虛幻引擎(unreal?engine)的開放世界場景創作中,常常需要處理上萬乃至十幾萬個靜態網格體,這樣的數量如果未經組織就一次性加載,特別是在虛幻引擎中還需計算靜態體的實時光照效果,以gpu的算力難以流暢加載渲染。為了解決這個問題,虛幻引擎專門推出了世界分區技術(world?partition),這是其當前的最新技術。該技術利用二維網格對整個場景進行細致劃分,并以視角的投影為中心,檢索并判斷加載周邊的網格。
2、現有技術存在以下缺點:
3、(1)虛幻引擎雖然提供了世界分區技術,但是其自動化程度低,需要根據靜態網格體的大小,人為判斷確定分區網格的大小。并且檢索時只考慮二維,視角在垂直方向上不管距離分區網格多遠,都會對對該分區網格內的靜態網格體進行加載,會造成資源極度浪費。只加載視點周圍的靜態網格體,沒有考慮網格體所占的屏幕像素大小,即使有些遠處的網格體所占的屏幕像素很大,也會被剔除。
4、(2)在專利公告號為cn113628331b中,根據網格模型的面積和紋理圖片的分辨率得到當前節點對應級別的當前節點誤差,然后根據節點誤差和最大屏幕誤差的關系,來決定瓦片的加載。但是此方法只是對于傾斜模型進行了加載,并未對開放世界場景中的靜態網格體進行處置。
5、(3)在專利公告號為cn117372599b中,對于bim模型進行組織時需要計算每個模型幾何度量誤差,并且在加載調度時需要遍歷比較模型屏幕誤差和最大屏
技術實現思路
1、本專利技術的目的在于提供一種虛幻引擎中靜態網格體的組織與調度方法,解決現有虛幻引擎中靜態網格體組織自動化程度低,組織與調度策略不合理的技術問題。
2、通過設計一種瓦片幾何度量誤差的計算方式,并提出了幾何度量誤差達成率的概念,以此為基礎對靜態網格體進行簡化與組織,提高自動化水平。使用了綁定集合的方式對靜態網格體進行組織與調度,提升視覺體驗并減少遍歷時間。
3、為了實現上述目的,本專利技術采用的技術方案如下:
4、一種虛幻引擎中靜態網格體的組織與調度方法,所述方法包括如下步驟:
5、步驟1:先根據拓撲信息,將虛幻引擎指定關卡的靜態網格體分為室內和室外兩類;
6、步驟2:生成整個場景的四叉樹瓦片金字塔結構,計算每個四叉樹瓦片的幾何度量誤差;
7、步驟3:提出幾何度量誤差達成率的概念,并使用誤差達成率控制qem算法對模型進行簡化得到目標層級模型;
8、步驟4:將層級細節模型關聯到目標四叉樹瓦片得到綁定集合;
9、步驟5:對室內的靜態網格體進行有序組織;
10、步驟6:對室內外靜態網格體進行調度。
11、進一步地,步驟1中,靜態網格體分為室內和室外兩類的具體過程為:
12、遍歷指定關卡下的靜態網格體數據,判斷每個靜態網格體中拓撲信息屬性,如果包含表示建筑的拓撲屬性,則判斷是否包含室內外屬性,如果缺少需要人為補充,接著,重新遍歷靜態網格體,如果包含室內的標識信息,則將歸屬于室內的靜態網格體的uasset資產移動到保存室內的靜態網格體的內存中,取反,將剩下的靜態網格體的uasset資產移動到保存室外的靜態網格體的內存中。
13、進一步地,步驟2中,計算每個四叉樹瓦片的幾何度量誤差的具體過程為:
14、獲取包含所有靜態網格體的包圍盒,通過遞歸的方式對包圍盒進行均等劃分,即子包圍盒的長寬為父包圍盒長寬的一半,包圍盒的高為包含區域內所有靜態網格體包圍盒的高,從上到下建立四叉樹的金字塔結構,當四叉樹深度為6時停止劃分,利用復合morton碼編制瓦片的唯一編號,其中左邊起首位為四叉樹深度,后面為行列號表示計算得出的morton碼,其中復合morton碼的計算如公式(1):
15、
16、式中:l表示四叉樹深度,&表示兩個數值的組合,i為四叉樹深度為l時瓦片行號,j為四叉樹深度為l時瓦片列號,0≤i,j≤2n,k為正整數,表示向下取整,mod()表示取余;
17、根據已知參數,由屏幕誤差與幾何誤差的關系以及距離權重,使用公式(2)計算每個瓦片的幾何度量誤差gem:
18、
19、式中:gem表示編號為m瓦片的幾何度量誤差,msse為設置的最大屏幕誤差,fov表示渲染時攝像機的視場角大小,h為顯示器高度,sm表示編號為m瓦片的長寬高的乘積,ds為深度為0時的瓦片平行于遠近裁剪面,瓦片剛好同時被視椎體包圍時,視角a到瓦片中心b的距離,s0表示四叉樹深度為0時其瓦片長寬高的乘積。
20、進一步地,步驟3的具體過程為:
21、根據四叉樹瓦片的幾何度量誤差值,從保存室外的靜態網格體內存讀取瓦片區域內的網格體數據,使用基于二次誤差的邊緣折疊簡化計算靜態網格體的層級細節模型,在其中使用幾何度量誤達成率作為邊緣折疊簡化率的控制量,迭代折疊得出符合瓦片幾何度量誤差的模型,具體步驟如下:
22、(1)從保存室外的靜態網格體內存中取出文件,判斷是否已經生成當前層級的細節模型,如果已經生成,遍歷下一個模型,如果沒有生成,使用qem算法對模型的三角網簡化為原來的90%得到層級細節模型m1;
23、(2)計算簡化模型和原始模型的幾何度量誤差ge2,具體的是計算簡化前后模型的最小距離的最大值作為兩個模型的幾何度量誤差;
24、(3)計算幾何度量誤差的達成率age,假如98%≤age≤100%結束;
25、
26、式中:gem表示編號為m瓦片的幾何度量誤差;
27、(4)當age<98%,計算何度量誤差的誤差率aerr=1-age,計算當前模型和原來模型的簡化率sn,即當前三角網數占原三角網數的比重;
28、由公式(5)得出該在當前模型的基礎上繼續進行的簡化率s,以此為限定條件使用qem算法對模型進行簡化,然后進入步驟(2)與步驟(3);
29、
30、(5)當age>100%,計算何度量誤差的誤差率aerr=age-1,計算當前模型和原來模型的簡化率sn,放棄此次折疊結果,然后,在上一次簡化模型的基礎上使用qem對模型進行簡化,當簡化率為s時停止進入步驟(6),否則進入步驟(2)與步驟(3):
31、
32、(6)判斷是否已經指定了保存層級細節模型uasset資產的內存,如果沒有開辟,則開辟內存l0,l1,l2,l3,l4,l5,l6,對應保存不同瓦片深度的層級細節模型,將結果保存到指定內存,如果已經開辟,則保存到指定內存。
33、進一步地,步驟4的具體過程為:
34、遍歷瓦片,獲取區域內靜態網格體的命名,從內存l0,l1,l2,l3,l4,l5,l6中取出層次細節模型,在目標本文檔來自技高網...
【技術保護點】
1.一種虛幻引擎中靜態網格體的組織與調度方法,其特征在于:所述方法包括如下步驟:
2.根據權利要求1所述的一種虛幻引擎中靜態網格體的組織與調度方法,其特征在于:步驟1中,靜態網格體分為室內和室外兩類的具體過程為:
3.根據權利要求1所述的一種虛幻引擎中靜態網格體的組織與調度方法,其特征在于:步驟2中,計算每個四叉樹瓦片的幾何度量誤差的具體過程為:
4.根據權利要求1所述的一種虛幻引擎中靜態網格體的組織與調度方法,其特征在于:步驟3的具體過程為:
5.根據權利要求1所述的一種虛幻引擎中靜態網格體的組織與調度方法,其特征在于:步驟4的具體過程為:
6.根據權利要求1所述的一種虛幻引擎中靜態網格體的組織與調度方法,其特征在于:步驟5的具體過程為:
7.根據權利要求1所述的一種虛幻引擎中靜態網格體的組織與調度方法,其特征在于:步驟6的具體過程為:
【技術特征摘要】
1.一種虛幻引擎中靜態網格體的組織與調度方法,其特征在于:所述方法包括如下步驟:
2.根據權利要求1所述的一種虛幻引擎中靜態網格體的組織與調度方法,其特征在于:步驟1中,靜態網格體分為室內和室外兩類的具體過程為:
3.根據權利要求1所述的一種虛幻引擎中靜態網格體的組織與調度方法,其特征在于:步驟2中,計算每個四叉樹瓦片的幾何度量誤差的具體過程為:
4.根據權利要求1所述的...
【專利技術屬性】
技術研發人員:劉潤東,梅樹紅,雷江濤,黃永生,羅恒,羅義談,李偉鵬,黃振,龍寬先,韋晟,
申請(專利權)人:廣西壯族自治區自然資源遙感院,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。