專利名稱:大數(shù)據(jù)量cad模型實時繪制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種大數(shù)據(jù)量CAD模型實時繪制方法,具體涉及一種針對大數(shù)據(jù)量 CAD模型基于細節(jié)層次LOD (Level of Detail)技術(shù)的快速自動生成預(yù)處理技術(shù)、實時自適應(yīng)繪制技術(shù)以及優(yōu)化加速技術(shù)。屬于計算機輔助設(shè)計制造和計算機圖形學(xué)可視化技術(shù)領(lǐng)域。
背景技術(shù):
人類獲取的信息83%來自視覺。因此將復(fù)雜產(chǎn)品通過計算機實時可視化,具有非常重要的意義,同時也是計算機輔助設(shè)計(CAD)、計算機輔助制造(CAM)、虛擬現(xiàn)實(VR)等技術(shù)的基礎(chǔ),但是CAD產(chǎn)品結(jié)構(gòu)及其復(fù)雜,如挑戰(zhàn)者號航天飛機250萬個零部件,波音777 客機有600多萬個零件和連接件,其幾何模型共有3. 50億以上的三角面片,去除其他信息僅保留幾何模型信息,其模型存儲量也超過了 12GB,經(jīng)過一系列的優(yōu)化加速算法處理后,數(shù)據(jù)文件大小超過了 60GB。目前普通計算機能夠?qū)崟r繪制的幾何模型約為1百萬三角面片, 因此大數(shù)據(jù)量CAD模型實時可視化具有很大的挑戰(zhàn),成為相關(guān)技術(shù)應(yīng)用的瓶頸。這方面的應(yīng)用研究在國際上還不是很多,國內(nèi)基本上還沒有類似的研究。可以檢索到的研究主要有4個案例美國UNC的GigaWalk系統(tǒng)采用模型簡化、LOD(Level of detail)、可見性剔除、模型分割、動態(tài)存儲調(diào)度等技術(shù),但僅能實現(xiàn)8千萬三角面片的實時可視化。意大利CRS4的FarVoxels系統(tǒng)采用模型簡化、L0D、可見性剔除、模型分割、動態(tài)存儲調(diào)度,另外引入了離線光線跟蹤預(yù)處理、GPU(Graphics Processing Unit,圖形處理器) 加速等技術(shù),但離線光線跟蹤預(yù)處理需要大量時間。德國Garland的OpenRT系統(tǒng)采用的是模型分割、動態(tài)存儲調(diào)度、實時光線跟蹤等技術(shù),無需離線光線跟蹤預(yù)處理,但需要運行在64位的Linux操作系統(tǒng)。美國的Utah的Manta系統(tǒng)采用了并行計算執(zhí)行實時光線跟蹤算法,提高了顯示精度,可以實現(xiàn)透明、剖切、隱藏等可視化效果,但需要運行在1 個處理器、256GB內(nèi)存的超級計算機。已有的這些研究普遍存在一些問題第一,只能可視化靜態(tài)場景的模型,而且破壞了 CAD模型的裝配樹;第二,對軟硬件的要求較高。因此有必要開發(fā)一套通用、高效的大數(shù)據(jù)量CAD模型實時繪制算法與系統(tǒng)。本發(fā)明所提出的大數(shù)據(jù)量CAD模型則可以在普通計算機上實現(xiàn)大數(shù)據(jù)量CAD模型動態(tài)場景的模型,而且可以完整保留裝配樹信息,具有快速自動預(yù)處理技術(shù)、實時自適應(yīng)繪制的特點。
發(fā)明內(nèi)容
本發(fā)明的目的是提出一種基于普通計算機的大數(shù)據(jù)量CAD模型實時繪制方法,該方法具有可繪制大數(shù)據(jù)量、動態(tài)場景、完整保留裝配樹信息CAD模型的特點。本發(fā)明提供的技術(shù)方案是一種針對大數(shù)據(jù)量CAD模型實時繪制方法,具體是同時采用基于細節(jié)層次LOD技術(shù)的快速自動生成預(yù)處理技術(shù)、實時自適應(yīng)繪制技術(shù)。雖然LOD 技術(shù)提出已經(jīng)有很多年了,但是一直沒有形成比較系統(tǒng)的快速自動生成預(yù)處理方法以及實時自適應(yīng)繪制方法。本發(fā)明提出一種大數(shù)據(jù)量CAD模型實時繪制方法,包括兩部分,即LOD快速自動生成預(yù)處理及LOD實時自適應(yīng)繪制。其中,LOD快速自動生成預(yù)處理,包括如下步驟(1)統(tǒng)計CAD模型所有零部件總的三角面片的數(shù)量Nm。(2)根據(jù)目標(biāo)繪制計算機所能實時繪制的三角面片數(shù)量Nrento,根據(jù)一定的等比簡化比例q(0 < q < 1,一般建議q取25% )簡化關(guān)系計算需要幾個LOD等級Νω )。 Nlod = In (Nrender/NTri)/Inq0(3)對每一個零部件按照上述的一定的等比簡化比例q(如25% )生成所需LOD 等級數(shù)量Nmi的簡化模型直至模型面片數(shù)小于給定值。(4)保存生成的LOD模型。其中,所述的CAD模型的零部件是指遍歷飛行器大數(shù)據(jù)量CAD模型裝配樹的每一個節(jié)點,對每一個節(jié)點視為一個零部件進行簡化與LOD生成。其中,模型簡化算法可以采用任何一種有效的簡化算法,簡化后的模型作為一個精度等級的LOD模型。其中,簡化后的模型還需要再按照原CAD模型的裝配樹進行裝配,即保證了不會對裝配樹造成破壞。其中,LOD實時自適應(yīng)繪制,包括如下步驟( 加載經(jīng)上述四個步驟生成的所有的LOD模型,初始LOD模型可以選擇最低精度等級以提高加載速度以及初始繪制速度。(6)依次繪制所有LOD模型,然后通過圖形硬件的遮罩查詢功能統(tǒng)計每一個在屏幕上可見的LOD模型在屏幕上顯示的幾何像素數(shù)量。(7)對于可見的LOD模型,計算其幾何模型LOD面片密度,并插入、更新到幾何模型 LOD面片密度列表隊列。注意這里只有可見的幾何模型才加入列表。(8)所有LOD模型繪制結(jié)束后,通過查詢繪制時間得到系統(tǒng)是否達到最大負載,若是,則將面片密度值最小的LOD模型精度降低一個等級,直至最低精度等級,再處理下一個面片密度值次小的LOD模型。反之,則將面片密度值最大的LOD模型精度提高一個等級,直至最高精度等級,再處理下一個面片密度值次大的LOD模型。最后更新面片密度隊列。(9)若系統(tǒng)沒有結(jié)束繪制,則執(zhí)行步驟(6),否則退出。其中,步驟(7)所述的面片密度是按照下面的公式計算的,其中Pmi表示零部件的面片密度,Npixels表示零部件當(dāng)前LOD精度等級的模型在屏幕上顯示的像素數(shù),Nt表示零部件當(dāng)前LOD精度等級的模型包含的三角面片數(shù)。P L0D = NPixels/NT其中,步驟(8)所述的系統(tǒng)最大負載是指計算機最多能夠?qū)崟r繪制的三角面片數(shù)目,每一個計算機都不同,通過實驗運行測定,如果系統(tǒng)實時繪制的幀刷新率小于30幀每秒,則說明系統(tǒng)當(dāng)前繪制的三角面片數(shù)Nt超過了系統(tǒng)最大負載。減少Nt直至系統(tǒng)實時繪制的幀刷新率達到30幀每秒,此時系統(tǒng)當(dāng)前繪制的三角面片數(shù)Nt即為最大負載所能夠?qū)崟r繪制的三角面片數(shù)目。本發(fā)明優(yōu)點及功效在于可以使得大數(shù)據(jù)量CAD模型則在普通計算機上實現(xiàn)大數(shù)據(jù)量CAD模型動態(tài)場景的模型,而且可以完整保留裝配樹信息,具有快速自動預(yù)處理技術(shù)、 實時自適應(yīng)繪制的特點。
圖1是本發(fā)明中CAD模型簡化原理圖。圖2是本發(fā)明所述的LOD快速自動生成預(yù)處理流程。圖3是本發(fā)明所述的LOD示意圖。圖4是本發(fā)明所述的LOD實時自適應(yīng)繪制流程。圖中:1、L0D精度等級1,2、LOD精度等級2,3、LOD精度等級3,4、LOD精度等級4,
5、面片密度較大的零部件,6、面片密度較小的零部件。
具體實施例方式以下結(jié)合附圖對本發(fā)明做進一步的詳細說明。一種大數(shù)據(jù)量CAD模型實時繪制方法,包括兩部分,即LOD快速自動生成預(yù)處理及 LOD實時自適應(yīng)繪制。其中,LOD快速自動生成預(yù)處理,包括如下步驟(1)統(tǒng)計CAD模型所有零部件總的三角面片的數(shù)量Nm。(2)根據(jù)目標(biāo)繪制計算機所能實時繪制的三角面片數(shù)量Nrento,根據(jù)一定的等比簡化比例q(0 < q < 1,一般建議q取25% )簡化關(guān)系計算需要幾個LOD等級Νω )。Nlod = In (Nrender/NTri) /lnq。(3)對每一個零部件按照上述的一定的等比簡化比例q(如25% )生成所需LOD 等級數(shù)量Nmi的簡化模型直至模型面片數(shù)小于給定值。(4)保存生成的LOD模型。其中,所述的CAD模型的零部件是指遍歷飛行器大數(shù)據(jù)量CAD模型裝配樹的每一個節(jié)點,對每一個節(jié)點視為一個零部件進行簡化與LOD生成。其中,模型簡化算法可以采用任何一種有效的簡化算法,簡化后的模型作為一個精度等級的LOD模型。其中,簡化后的模型還需要再按照原CAD模型的裝配樹進行裝配,即保證了不會對裝配樹造成破壞。其中,LOD實時自適應(yīng)繪制,包括如下步驟( 加載經(jīng)上述四個步驟生成的所有的LOD模型,初始LOD模型可以選擇最低精度等級以提高加載速度以及初始繪制速度。(6)依次繪制所有LOD模型,然后通過圖形硬件的遮罩查詢功能統(tǒng)計每一個在屏幕上可見的LOD模型在屏幕上顯示的幾何像素數(shù)量。(7)對于可見的LOD模型,計算其幾何模型LOD面片密度,并插入、更新到幾何模型 LOD面片密度列表隊列。注意這里只有可見的幾何模型才加入列表。(8)所有LOD模型繪制結(jié)束后,通過查詢繪制時間得到系統(tǒng)是否達到最大負載,若是,則將面片密度值最小的LOD模型精度降低一個等級,直至最低精度等級,再處理下一個面片密度值次小的LOD模型。反之,則將面片密度值最大的LOD模型精度提高一個等級,直至最高精度等級,再處理下一個面片密度值次大的LOD模型。最后更新面片密度隊列。(9)若系統(tǒng)沒有結(jié)束繪制,則執(zhí)行步驟(6),否則退出。其中,步驟(7)所述的面片密度是按照下面的公式計算的,其中Pmi表示零部件的面片密度,Npixels表示零部件當(dāng)前LOD精度等級的模型在屏幕上顯示的像素數(shù),Nt表示零部件當(dāng)前LOD精度等級的模型包含的三角面片數(shù)。P L0D = NPixels/NT其中,步驟(8)所述的系統(tǒng)最大負載是指計算機最多能夠?qū)崟r繪制的三角面片數(shù)目,每一個計算機都不同,通過實驗運行測定,如果系統(tǒng)實時繪制的幀刷新率小于30幀每秒,則說明系統(tǒng)當(dāng)前繪制的三角面片數(shù)Nt超過了系統(tǒng)最大負載。減少Nt直至系統(tǒng)實時繪制的幀刷新率達到30幀每秒,此時系統(tǒng)當(dāng)前繪制的三角面片數(shù)Nt即為最大負載所能夠?qū)崟r繪制的三角面片數(shù)目。圖1為本發(fā)明中所述的CAD模型簡化原理圖。模型簡化算法中最經(jīng)典的是Garland 提出的QEM簡化算法,該算法可以從網(wǎng)絡(luò)獲取源代碼及可執(zhí)行文件QSLIM。只需要將幾何模型轉(zhuǎn)換成所需要的格式,當(dāng)前支持SMF、VRML、INVENTOR,PM等格式,可以查閱這些文件格式的定義很容易的實現(xiàn)文件格式轉(zhuǎn)換。模型簡化算法的核心思想是從所有的邊中找到一個最優(yōu)的邊,使得刪除這條邊后(也成為邊折疊),新生成的頂點和與之相連接的三角面片的距離的和最小,從而保證簡化的精度損失最小。如圖1中,當(dāng)前模型所有的邊中,刪除由頂點 vl、v2所連接的邊后,對幾何模型的形狀影響最小,精度損失也最小。圖2為本發(fā)明中所述的LOD快速自動生成預(yù)處理流程。系統(tǒng)首先加載大數(shù)據(jù)量CAD 模型所有零部件模型文件,然后對其中每一個零部件模型文件做如下處理判斷零部件模型的面片數(shù)是否大于給定的最小值,若否則結(jié)束;若是則對零部件模型按照簡化比q進行簡化,生成下一個LOD精度等級的模型并判斷是否達到最大LOD精度等級數(shù),若是則結(jié)束, 若否則繼續(xù)進行下一精度等級的LOD模型簡化與生成。圖3為本發(fā)明中所述的LOD模型示意圖。其中一共生成了 4個LOD精度等級(Nmi =4),1-4分別為LOD精度等級1-4,LOD等級越高,則模型越粗糙。LOD與面片密度有關(guān)系, 同一個CAD模型文件不同的LOD模型在同樣的屏幕顯示像素數(shù)量基本一樣,但是每一個LOD 精度等級所包含的面片數(shù)目不同,因此LOD精度等級越低則面片密度較大,反之則較小。實時繪制時,當(dāng)幾何模型與視點距離較近時,使用三角面片較多,幾何精度等級高的模型;反之,當(dāng)幾何模型與視點距離較遠時,使用三角面片較少,幾何精度較低的模型。圖4是本發(fā)明所述的LOD實時自適應(yīng)繪制流程。首先加載LOD快速自動生成預(yù)處理產(chǎn)生的各個LOD精度等級的零部件模型,然后開始一幀圖像的繪制,繪制待繪制的可見幾何模型,并通過遮罩查詢統(tǒng)計屏幕可見的像素數(shù)量,等所有的幾何模型繪制結(jié)束后統(tǒng)計每一個零部件在屏幕上可見的像素數(shù)量,結(jié)合該零部件當(dāng)前LOD精度等級的模型所包含的面片數(shù)量計算面片密度。將所有零部件的面片密度排序并生成一個隊列,然后根據(jù)繪制所消耗的時間判斷系統(tǒng)是否達到最大繪制負載,若是說明系統(tǒng)達到了最大負載,則將面片密度隊列中面片密度最大的零部件LOD精度等級提高直到最大從而采用較粗糙的LOD精度等級的模型;若否則說明系統(tǒng)沒有達到最大負載,則將面片密度隊列中面片密度最小的零部件LOD精度等級降低直到最小從而采用較精細的LOD精度等級的模型。如果系統(tǒng)實時繪制還沒有結(jié)束則開始下一幀的繪制,否則退出。
權(quán)利要求
1.一種大數(shù)據(jù)量CAD模型實時繪制方法,其特征在于該方法包括兩部分,即LOD快速自動生成預(yù)處理及LOD實時自適應(yīng)繪制;其中,LOD快速自動生成預(yù)處理,包括如下步驟(1)統(tǒng)計CAD模型所有零部件總的三角面片的數(shù)量Nfti;(2)根據(jù)目標(biāo)繪制計算機所能實時繪制的三角面片數(shù)量Nrento,根據(jù)一定的等比簡化比例q簡化關(guān)系計算需要幾個LOD等級Nmi ;該一定的等比簡化比例為0 < q < 1 ;Nlod = In (Nrender/NTri)/Inq ;(3)對每一個零部件按照上述的等比簡化比例q生成所需LOD等級數(shù)量Nmi的簡化模型直至模型面片數(shù)小于給定值;(4)保存生成的LOD模型;其中,LOD實時自適應(yīng)繪制,包括如下步驟(5)加載經(jīng)上述四個步驟生成的所有的LOD模型,初始LOD模型選擇最低精度等級以提高加載速度以及初始繪制速度;(6)依次繪制所有LOD模型,然后通過圖形硬件的遮罩查詢功能統(tǒng)計每一個在屏幕上可見的LOD模型在屏幕上顯示的幾何像素數(shù)量;(7)對于可見的LOD模型,計算其幾何模型LOD面片密度,并插入、更新到幾何模型LOD 面片密度列表隊列;(8)所有LOD模型繪制結(jié)束后,通過查詢繪制時間得到系統(tǒng)是否達到最大負載,若是, 則將面片密度值最小的LOD模型精度降低一個等級,直至最低精度等級,再處理下一個面片密度值次小的LOD模型;反之,則將面片密度值最大的LOD模型精度提高一個等級,直至最高精度等級,再處理下一個面片密度值次大的LOD模型;最后更新面片密度隊列;(9)若系統(tǒng)沒有結(jié)束繪制,則執(zhí)行步驟(6),否則退出。
2.根據(jù)權(quán)利要求1所述的大數(shù)據(jù)量CAD模型實時繪制方法,其特征在于步驟(7)所述的面片密度是按照下面的公式計算的,其中Pmi表示零部件的面片密度,Npijrels表示零部件當(dāng)前LOD精度等級的模型在屏幕上顯示的像素數(shù),Nt表示零部件當(dāng)前LOD精度等級的模型包含的三角面片數(shù)P LOD — NPixels/NT。
全文摘要
本發(fā)明涉及一種大數(shù)據(jù)量CAD模型實時繪制方法,包括兩部分,即LOD快速自動生成預(yù)處理及LOD實時自適應(yīng)繪制。本發(fā)明優(yōu)點及功效在于可以使得大數(shù)據(jù)量CAD模型則在普通計算機上實現(xiàn)大數(shù)據(jù)量CAD模型動態(tài)場景的模型,而且可以完整保留裝配樹信息,具有快速自動預(yù)處理技術(shù)、實時自適應(yīng)繪制的特點。
文檔編號G06T19/00GK102298796SQ20111022935
公開日2011年12月28日 申請日期2011年8月11日 優(yōu)先權(quán)日2011年8月11日
發(fā)明者余路, 盧鵠, 龐微, 談敦銘, 趙罡 申請人:上海飛機制造有限公司, 北京航空航天大學(xué)