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