亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

面向大規(guī)模靜態(tài)場景實時渲染的hlod預處理方法

文檔序號:6613942閱讀:281來源:國知局
專利名稱:面向大規(guī)模靜態(tài)場景實時渲染的hlod預處理方法
技術(shù)領(lǐng)域
本發(fā)明屬于計算機虛擬現(xiàn)實技術(shù)領(lǐng)域,具體地說是一種面向由多個大數(shù)據(jù)量模型組成的大 規(guī)模場景實時渲染預處理方法,用于真實感虛擬環(huán)境的繪制。
背景技術(shù)
隨著三維采集設備和建模技術(shù)的不斷發(fā)展,三維模型的精度越來越高,其數(shù)據(jù)量也隨之迅 速增長,對計算機的繪制能力提出了巨大挑戰(zhàn)。如何實現(xiàn)由多個大數(shù)據(jù)量模型組成的大規(guī)模場 景的實時渲染,是虛擬現(xiàn)實、實時仿真以及交互三維設計等許多重要應用的底層支撐技術(shù),也 是計算機圖形學本身的一個基礎(chǔ)性研究課題。
LOD技術(shù)是圖形生成加速渲染方法中的一種主要方法。早在1976年,Clark就提出了層次 細節(jié)(Levels of Detail, LOD)模型的概念(參見 Clark J. Hierarchical Geometric Models for Visible Surface Algorithms [A〗.Communications of the ACM, 1976. 547- 554.),認為當物體覆蓋屏 幕較小區(qū)域時,可以使用該物體較低分辨率的模型,反之則使用較高分辨率模型,以便對復雜 場景進行快速繪制。目前的LOD技術(shù)可以分為離散LOD和連續(xù)LOD兩類。
離散LOD中的模型層次是按照逐漸簡化的順序排列的,相互之間沒有外在聯(lián)系,在繪制時, 選擇合適的層次進行渲染。離散LOD計算簡單,繪制快捷,但其層次有限,因而不能滿足多種 應用的需求。而由于其剖分粒度過粗,以模型為單位,對于大尺度模型,由于近視點和遠視點 區(qū)域都采用同樣的LOD層次,這樣就影響了細節(jié)性的繪制并造成了額外的繪制開銷。
連續(xù)LOD就是為了解決這些問題而提出來的,它允許同一個模型上的LOD層次連續(xù)變化 (參見M. de Berg and K. Dobrindt, "On the Levels of Detail in Terrains", Technical Report UU-CS-1995-12, Department of Computer Science, Utrecht University, April 1995.)廣泛應用在大 型模型和地形模型的瀏覽中。但連續(xù)LOD計算復雜,多數(shù)要在網(wǎng)格簡化中生成某種記錄結(jié)構(gòu), 從而在渲染時根據(jù)視點信息進行重建,在提高了繪制視覺效果的同時,也增加了繪制的開銷。

發(fā)明內(nèi)容
本發(fā)明的目的是提供一種面向大規(guī)模場景實時渲染的HLOD預處理方法.相對于離散LOD 提供了較好的細節(jié)性繪制;相對于連續(xù)LOD又減少了渲染的復雜度,從而滿足大規(guī)模靜態(tài)場景 實時渲染得需要。
本發(fā)明的技術(shù)解決方案面向大規(guī)模靜態(tài)場景實時渲染的HLOD預處理方法;首先進行單
模型HLOD (Hierarchical Levels of Detail)的預計算;然后對預計算結(jié)果進行存儲,根據(jù)場景 載入所需要的單模型HLOD信息,進行場景HLOD的預計算;最后根據(jù)用戶指定的誤差基于視 點對HLOD進行選擇和渲染。
所述的單模型HLOD的預計算的方法如下首先計算單模型的中心和尺寸,根據(jù)指定的剖 分粒度iV進行Octree剖分,剖分停止條件是當前包圍盒中的頂點數(shù)"SW,在剖分過程中,父節(jié) 點保存剖分邊界面;然后自底向上建立HLOD結(jié)構(gòu),并根據(jù)設計的HLOD文件格式進行輸出存 儲,加強復用性。
所述的場景HLOD的預計算的方法為根據(jù)場景所需模型,逐個載入建立好的單模型 HLOD,對單模型的包圍盒進行融合,得到場景包圍盒,并進行場景的Octree剖分,剖分的停止 條件為當前包圍的單模型數(shù)目mS2,從而得到場景模型結(jié)構(gòu);然后自底向上建立場景HLOD。
所述的根據(jù)用戶指定的誤差基于視點對HLOD進行選擇和渲染方法為根據(jù)用戶指定的屏 幕像素誤差N,轉(zhuǎn)化為空間距離誤差E,從場景根節(jié)點遍歷場景Octree和單模型Octree,當HLOD 的簡化誤差《E時,選擇此HLOD進行渲染。
本發(fā)明與現(xiàn)有技術(shù)相比的有益效果是-
(1) 由于本發(fā)明首先進行單模型HLOD的預計算;然后對預計算結(jié)果進行存儲,根據(jù)場景 載入所需要的單模型HLOD信息,進行場景HLOD的預計算;最后根據(jù)用戶指定的誤差基于視 點對HLOD進行選擇和渲染。因此,相對于離散LOD提供了較好的細節(jié)性繪制;相對于連續(xù) LOD又減少了渲染的復雜度,預計算結(jié)果得到了保留,增加了應用的重用性。
(2) 對單模型進行粒度為W的Octree剖分,自底向上建立HLOD,繪制時根據(jù)視點選擇 剖分塊數(shù)目眾多的HLOD層次,避免了離散LOD繪制的單一化,從而在繪制時提供了較好的細 節(jié);在繪制時,本發(fā)明可以對HLOD進行簡單并高效地選取,減少了繪制復雜度,而連續(xù)LOD
還要根據(jù)折疊樹進行以面片為單位的遍歷。
(3) 本發(fā)明設計了一種HLOD文件格式對計算結(jié)果進行了保存,當場景變化時,不用再次 計算單模型的HLOD,從而增加了應用的重用性。


圖1為本發(fā)明的面向大規(guī)模靜態(tài)場景實時渲染的HLOD預處理方法流程圖; 圖2為本發(fā)明的單模型Octree剖分邊界保留圖示; 圖3為本發(fā)明的單模型HLOD渲染圖示圖; 圖4為本發(fā)明的HLOD文件格式圖5、圖6為本發(fā)明采用基于視點和用戶指定誤差進行HLOD選擇和渲染的圖示。
具體實施方式
如圖1所示,本發(fā)明的具體實施方法如下 1.單模型HLOD的預計算 1.1單模型的Octree剖分
對所有頂點坐標取平均值得到包圍盒的"Wer,再取所有頂點到中心的最大距離的兩倍作為 包圍盒的^e。預先規(guī)定模型Octree的剖分粒度所對應的頂點數(shù)/m'"FertM^n=500,只要包圍盒 空間含有的頂點數(shù)目少于m&reWVww,包圍盒對應的節(jié)點就停止剖分。由于Octree的剖分必定 會產(chǎn)生邊界面片,而這些面片在自底向上的HLOD建立中,不能參與化簡,否則會在模型的各 個部分之間產(chǎn)生縫隙,所以要對每一次剖分產(chǎn)生的邊界進行保留,單模型Octree剖分邊界保留 渲染如圖2所示。
1.2單模型HLOD的遞歸建立
Octree建立好之后,就可以進行自底向上單模型HLOD的構(gòu)建了 。從葉子節(jié)點開始,建立 模型的HLOD結(jié)構(gòu)。本發(fā)明采用一種保留幾何及屬性邊界的網(wǎng)格簡化方法[6]對剖分后的模型分 塊進行化簡。以下是建立模型HLOD的算法描述
Stepl.如果當前節(jié)點"o&是否葉子節(jié)點,則把其當前未簡化的幾何信
息作為最精細層L0D1,而將L0D1的面片簡化到1/2得到次精細層LOD2,將LOD2簡化到 1/2得到最粗層LOD3,在簡化過程中同時得到各個LOD與原始幾何信息對應的空間距離誤差 cfoto"ce五nw,它是逐漸疊加的值。
Step2.若w&不是葉子節(jié)點,則先對其非空子節(jié)點調(diào)用
Stepl——Step2來構(gòu)建HLOD,這是個遞歸調(diào)用過程。當node的所有非空子節(jié)點構(gòu)建完 HLOD后,進行如下操作
(1) 將所有子節(jié)點的最初粗層HLOD的幾何信息和它們之間的邊界信息(子節(jié)點之間的邊 界保存在父節(jié)點中)聯(lián)合起來,得到m^/z^7femp,
(2) 將me^^7fewp進行面片數(shù)減半的化簡,得到最精細層HLODl,依次得到次精細層 HLOD2和最粗糙層HLOD3,
(3) 對于非葉子節(jié)點,其^feto"ce五nw取其子節(jié)點中的最大空間距離誤差值。
對Octree的根節(jié)點調(diào)用上述過程,遞歸地建立整個Octree的HLOD結(jié)構(gòu)。在HLOD建立 過程中,將屬于同一紋理的面片歸為同一組,避免在繪制過程中紋理的頻繁切換,從而進一步 提高渲染效率。圖3是選取單模型第2層Octree節(jié)點不同層次HLOD的渲染結(jié)果。
1.3單模型HLOD文件格式的設計
當單模型較大時,建立HLOD是比較耗時的。為提高渲染效率本發(fā)明設計了一種HLOD的 文件格式,對己構(gòu)建好HLOD的模型進行二進制分塊存儲。.這樣即使場景有改動,,也不用對所有模型進行再次預處理,得到了各個模型的HLOD數(shù)據(jù)文件,就可以直接導入進行場景HLOD 的構(gòu)建,從而大大減少了場景變動后的HLOD預處理時間。HLOD的文件格式如圖4所示,包 括-文件頭、Octree結(jié)構(gòu)信息和節(jié)點數(shù)據(jù)信息三個部分。其中文件頭描述三維模型的全局信息,
包括模型包圍盒中心、包圍盒尺寸、頂點數(shù)目、面片數(shù)目和材質(zhì)數(shù)據(jù),以便支持紋理;結(jié)構(gòu)
信息部存儲了 Octree結(jié)構(gòu),包括Octree編碼信息和節(jié)點描述信息,用來在讀取時恢復Octree 結(jié)構(gòu);節(jié)點數(shù)據(jù)信息是每個Octree節(jié)點包含的數(shù)據(jù)信息,包括邊界面片數(shù)據(jù)、HLOD數(shù)據(jù)。
為了將Octree的結(jié)構(gòu)信息進行記錄,本發(fā)明采用了 J.Peng, C,C. J. Kuo, Geometry-guided progressive lossless 3D mesh coding with octree (OT) decomposition. ACM Transactions on Graphics, 24(3), 2005: 609-616中的編碼方法對Octree的節(jié)點信息進行了編碼,從而得到了 Octree節(jié)點信 息編碼和Octree節(jié)點描述碼。節(jié)點描述碼是標識節(jié)點是否葉子節(jié)點的碼段,和節(jié)點信息編碼合 在一起,就可以重構(gòu)出原Octree結(jié)構(gòu)。下面是構(gòu)建節(jié)點編碼段oc^eeO^fe和節(jié)點描述碼段 "ocfeD/scr桝kw的簡略算法描述
Stepl.把Octree的根節(jié)點放入隊列
Step2.從wo^Qwew中取出一個節(jié)點,遍歷它的8個子節(jié)點,進行如下操作
(1) 若子節(jié)點為空,則把0放入oc/reeCocfe容器,若非空,則把1放入oc加eQ^e;
(2) 若子節(jié)點是葉子節(jié)點,則把l放入/w&i)^r妙'M容器,若是非葉子節(jié)點,則把0放入 jwcfeltocnjjrtora,并將此非葉子節(jié)點加入到Mo^fegwewe隊列中
Step3.重復Stel-Step2,直到nocfegwewe為空
為了將各個節(jié)點的信息在讀入HLOD文件時放入相應的Octree節(jié)點中,必須在讀取HLOD 數(shù)據(jù)之前重構(gòu)模型原來的Octree結(jié)構(gòu),所以在HLOD文件中把Octree結(jié)構(gòu)信息放于節(jié)點信息之 前。HLOD文件的第3部分記錄的是各個節(jié)點的HLOD信息和邊界信息,順序和OctreeCode所 記錄的節(jié)點順序一致,這樣就能把HLOD信息放入到相應得節(jié)點中,從而保證整個HLOD文件 的正確讀取。
2.場景HLOD的預計算
2.1場景的Octree剖分
由于場景中的模型是按照一定的位置進行擺放的,按照場景中模型的空間變換信息,對以 HLOD文件格式載入的單模型包圍盒信息作相應的'變換,包括旋轉(zhuǎn)、平移和縮放。遍歷所有的 單模型包圍盒數(shù)組,得到它們中心的平均值作為場景包圍盒的中心we朋Ce對e。以所有模型包 圍盒軸向邊界距離sce"eCeW^最大距離作為場景包圍盒的尺寸^e"eS&e。得到了場景的包圍盒 之后,使用與單模型剖分類似的方法對場景進行Octree剖分。本發(fā)明規(guī)定剖分停止的條件為單 位包圍盒中所包含模型的數(shù)目小于2,并且不用考慮邊界。.剖.分完畢之后,就可以得到一棵場景
Octree 。
2.2建立場景HLOD
場景HLOD的建立與單模型HLOD的建立類似,需要注意以下兩點-(l)從葉子節(jié)點自底向上簡化時,簡化單位是葉子節(jié)點所包含的模型,場景葉子節(jié)點的最精 細層HLOD,是它包含的單模型根節(jié)點的最粗層HLOD的幾何信息。 C2)場景節(jié)點建立HLOD時,不用考慮邊界。
3.基于視點渲染HLOD得到單模型和場景的HLOD之后,還必須根據(jù)用戶指定誤差及漫游 視點進行HLOD的選擇和基于視點渲染,基于視點的HLOD渲染如圖5、圖6所示。
根據(jù)公式e^五-^丄tan^選擇HLOD進行渲染,其中P是用戶指定的屏幕像素誤差,d
是場景中HLOD中心距離視點的距離,e是視景體的水平夾角,N是渲染窗口的寬度?;谝?點渲染的算法描述如下,首先將場景根節(jié)點加入隊列wcfe2"et^
Stepl.從"o&gwewe取出節(jié)點wwfe,遍歷的3個HLOD,比較簡化誤差e與£,若符 合公式(l),則把節(jié)點指針和滿足條件的HLOD指針作為一個2元組加入到渲染隊列
Step2.遍歷完畢朋&的HLOD之后,若沒有符合公式(l)的,則將的非空子節(jié)點加入 nodeQueue
Step3.重復Stepl-Step2,直到為空
Step4.遍歷渲染隊列進行渲染。
權(quán)利要求
1、面向大規(guī)模靜態(tài)場景實時渲染的HLOD預處理方法,其特征在于首先進行單模型HLOD的預計算;然后對預計算結(jié)果進行存儲,根據(jù)場景載入所需要的單模型HLOD信息,進行場景HLOD的預計算;最后根據(jù)用戶指定的誤差基于視點對HLOD進行選擇和渲染。
2、 根據(jù)權(quán)利要求1所述的面向大規(guī)模靜態(tài)場景實時渲染的HLOD預處理方法,其特征在 于所述的單模型HLOD的預計算的方法如下首先計算單模型的中心和尺寸,根據(jù)指定的剖 分粒度W進行Octree剖分,剖分停止條件是當前包圍盒中的頂點數(shù)在剖分過程中,父節(jié) 點保存剖分邊界面;然后自底向上建立HLOD結(jié)構(gòu),并根據(jù)設計的HLOD文件格式進行輸出存 儲,加強復用性。
3、 根據(jù)權(quán)利要求1所述的面向大規(guī)模靜態(tài)場景實時渲染的HLOD預處理方法,其特征在于 所述的場景HLOD的預計算的方法為根據(jù)場景所需模型,逐個載入建立好的單模型HLOD, 對單模型的包圍盒進行融合,得到場景包圍盒,并進行場景的Octree剖分,剖分的停止條件為 當前包圍的單模型數(shù)目mS2,從而得到場景模型結(jié)構(gòu);然后自底向上建立場景HLOD。
4、 根據(jù)權(quán)利要求1所述的面向大規(guī)模靜態(tài)場景實時渲染的HLOD預處理方法,其特征在于 所述的根據(jù)用戶指定的誤差基于視點對HLOD進行選擇和渲染方法為根據(jù)用戶指定的屏幕像 素誤差N,轉(zhuǎn)化為空間距離誤差E,從場景根節(jié)點遍歷場景Octree和單模型Octree,當HLOD的 簡化誤差eSE時,選擇此HLOD進行渲染。
5、 根據(jù)權(quán)利要求2所述的面向大規(guī)模靜態(tài)場景實時渲染的HLOD預處理方法,其特征在于 所述的設計的HLOD文件格式結(jié)構(gòu)為文件頭、Octree結(jié)構(gòu)信息和節(jié)點數(shù)據(jù)信息三個部分,其 中文件頭描述三維模型的全局信息,包括模型包圍盒中心、包圍盒尺寸、頂點數(shù)目、面片數(shù) 目和材質(zhì)數(shù)據(jù);結(jié)構(gòu)信息部存儲了 Octree結(jié)構(gòu),包括Octree編碼信息和節(jié)點描述信息,用來 在讀取時恢復Octree結(jié)構(gòu);節(jié)點數(shù)據(jù)信息是每個Octree節(jié)點包含的數(shù)據(jù)信息,包括邊界面片數(shù) 據(jù)、HLOD數(shù)據(jù)。
全文摘要
本發(fā)明是面向大規(guī)模靜態(tài)場景實時渲染的HLOD預處理方法。該方法首先進行單模型HLOD(Hierarchical Levels of Detail)的預計算;然后對預計算結(jié)果進行存儲,根據(jù)場景載入所需要的單模型HLOD信息,進行場景HLOD的預計算;最后根據(jù)用戶指定的誤差基于視點對HLOD進行選擇和渲染。本發(fā)明的特點是對模型和場景都可以靈活地進行不同層次和粒度的剖分,從而可以在渲染時保持較好的細節(jié)和較少的計算量,適用于大規(guī)模靜態(tài)場景的模型數(shù)據(jù)的預處理。并針對預計算需要較長時間的問題,設計了一種HLOD文件格式,從而增加了其復用性。
文檔編號G06T15/20GK101169871SQ20071017864
公開日2008年4月30日 申請日期2007年12月3日 優(yōu)先權(quán)日2007年12月3日
發(fā)明者沈旭昆, 碩 高, 越 齊 申請人:北京航空航天大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1