專利名稱:面向復雜三維cad模型的海量場景漸進式更新算法的制作方法
技術領域:
本發(fā)明屬于計算機圖形學和多媒體與虛擬現(xiàn)實技術領域,尤其涉及一種面向復雜三維CAD模型的海量場景漸進式更新算法。
背景技術:
在機械制造(如飛機制造、高鐵機車制造和造船)等行業(yè),越來越多得使用了復雜產(chǎn)品制造信息化技術,特別是在產(chǎn)品設計、制造的生命周期中使用率虛擬樣機技術。虛擬樣機技術是一種基于產(chǎn)品計算機仿真模型的數(shù)字化設計方法,及從視覺、 聽覺、觸覺以及功能和行為上模擬真是產(chǎn)品的技術。復雜產(chǎn)品虛擬樣機技術是在各領域 CAX (如CAD、CAM、CAE等)/DFX (如DFA、DFM等)技術基礎上進一步融合先進建模/仿真技術、現(xiàn)代信息技術、先進設計制造技術和現(xiàn)代管理技術,將這些技術應用于復雜產(chǎn)品全生命周期、全系統(tǒng),并對他們進行綜合管理和強調虛擬化,從系統(tǒng)的層面來分析、模擬復雜產(chǎn)品的一種系統(tǒng)化的工程設計與管理方法。復雜產(chǎn)品全生命周期虛擬樣機的開發(fā)關鍵就是復雜產(chǎn)品三維模型的仿真及在方針環(huán)境下的可視化編輯技術。而復雜模型自身存在的模型數(shù)據(jù)量大、結構拓撲復雜等特點向計算機軟件及硬件都帶來了很大的挑戰(zhàn)。目前復雜三維模型的仿真可視化技術主要有兩種一是通過輸出敏感技術降低模型場景的繪制復雜度。這方面的主要技術有可見性剔除、簡化、層次細節(jié)、緩存一致的數(shù)據(jù)排布和空間索引及其在線更新等。二是采用并行繪制技術,利用計算機集群代替單一的計算機來對模型進行處理。 目前并行繪制技術主要分為sort-first (數(shù)據(jù)分布型并行圖形繪制),sort-middle (渲染指令級并行),sort-last (渲染像素級并行)三大類。目前已有的一些大規(guī)模復雜場景瀏覽系統(tǒng),如被卡大學的GigaWalk,意大利CRS4 可視化計算小組的FarVoxels,普林斯頓大學的iWalk,霍普津斯大學的vLOD, Saarland 大學開發(fā)的基于共享內存式多CPU架構的大規(guī)模CAD模型繪制系統(tǒng)以及浙江大學的 AdaptiveVoxels 系統(tǒng)等。海量三維模型繪制技術盡管得到了廣泛的重視,但其理論和方法仍不夠成熟,大大限制了它的應用。首先,現(xiàn)有的海量模型場景樹都只適用于靜態(tài)場景。對于需要進行動態(tài)更新的場景必須要重新計算場景樹。其次,已有的外存文件技術不支持對場景數(shù)據(jù)進行增量更新保存,因而場景的更新不能持久化。最后,缺乏對更新場景的在線簡化技術,因而不能支持更新場景的繪制。
發(fā)明內容
本發(fā)明的技術效果能夠克服上述缺陷,提供一種面向復雜三維CAD模型的海量場景漸進式更新算法。其在海量三維CAD數(shù)據(jù)場景更新后的在線繪制功能方面取得了突破, 形成原型驗證系統(tǒng)。為實現(xiàn)上述目的,本發(fā)明采用如下技術方案其包括以下步驟
(I)構建支持場景在線更新的系統(tǒng)架構;(2)用不同的文件分別保存場景樹數(shù)據(jù),模型輸入幾何數(shù)據(jù)和簡化LOD模型數(shù)據(jù);(3)快速更新整個場景空間索引,使其在繪制加速算法中保持有效;(4)基于PC多GPU硬件平臺的海量三維場景LOD模型并行在線構造技術。本發(fā)明旨在研究面向復雜三維CAD模型的海量場景漸進式更新算法。以場景樹更新技術為基礎,研究空間剖分索引的增量更新和LOD模型并行計算的簡化問題,致力于解決外存文件數(shù)據(jù)更新的效率問題、空間索引更新時的重構優(yōu)化問題和在線LOD簡化任務調度問題。采用基于塊的外存文件結構及相應更新算法、自適應的空間索引更新算法和基于優(yōu)先級的簡化任務調度算法,最終在海量三維CAD數(shù)據(jù)場景更新后的在線繪制功能上取得突破,形成原型驗證系統(tǒng)。本發(fā)明的設計思路是對于更新后的海量三維場景,為避免重構全部的空間剖分索引和LOD模型,通過縮小空間剖分索引結點的更新集合和可能需簡化的LOD結點集合,來減少場景更新的計算量,結合基于多GPU得快速體素LOD模型簡化方法,加速場景更新速度,達到在線交互繪制的目的。所述步驟(I)中,場景并行更新算法流程方面,在外存算法之后插入空間索引動態(tài)剖分算法,在可見性剔除算法之后插入并行簡化算法;硬件架構方面,本發(fā)明采用的并行簡化部署方案為基于一臺PC的多GPU并行簡化架構。所述步驟(2)中,包括一個支持海量三維模型更新的外存算法,步驟如下(a)將外存文件劃分為固定大小的塊,然后將物體剖分后包圍體中的幾何數(shù)據(jù)送入到這些文件塊中;(b)開辟足夠大的文件,計算出一個與新加物體距離最近的已有物體集合;(C)將該集合按照其幾何數(shù)據(jù)所在的文件塊分為若干個子集,按照距離建立新加物體與這些文件塊的關系,選取關系最為密切的一個文件塊來插入新加物體。所述步驟(3)中,在海量三維場景進行更新時,使用結合粗粒度場景BSP與細粒物體BSP的雙層BSP場景樹結構;進行物體編輯時,物體BSP結構保持不變,僅更新粗粒度的場景BSP ;在繪制時,細粒度的物體BSP保證可見性剔除算法的效率,采用lazy update策略對場景BSP進行更新,重構失效的BSP結點。所述步驟(4)中,基于并行簡化的海量模型繪制系統(tǒng)是傳統(tǒng)的海量模型繪制系統(tǒng)與空間索引動態(tài)剖分以及并行簡化結合。其中空間索引動態(tài)更新時修改場景樹在內存中的數(shù)據(jù),并行簡化算法收集當前視點的潛在可見的更新結點,將這些結點與其在LOD層次結構中的父結點和子結點一起構成潛在簡化集(PSS,Potentially Simplification Set)。根據(jù)多GPU并行簡化硬件平臺,在多個簡化端中需要最優(yōu)的分配簡化任務。本發(fā)明的創(chuàng)新之處主要體現(xiàn)在(I)突破過去僅考慮靜態(tài)海量模型繪制的思路,提出以文件塊數(shù)據(jù)存儲策略為基礎的海量三維場景更新技術;(2)不同于已有的重構整個場景空間剖分索引的方法,提出了拒不更新海量模型空間索引的方法。在保持空間索引加速操作有效性和速度的基礎上,降低了空間索引重構的計算量,同時也減少了需要更新的LOD結點數(shù)量;(3)基于多GPU硬件環(huán)境,在線并行構造體素LOD模型,支持輸入敏感的海量三維模型更新繪制。本發(fā)明的有益效果在于本發(fā)明的海量CAD模型編輯場景樹的更新算法可適用于動態(tài)場景的繪制,并以支持數(shù)據(jù)更新的外存文件格式來保存數(shù)據(jù)更新;本發(fā)明的空間剖分索引增量更新技術可滿足海量三維場景的在線應用需求;本發(fā)明的基于GPU采樣的并行簡化技術來更新場景的LOD模型算法,可最終支持海量模型場景的更新繪制。
圖I為本發(fā)明的場景并行更新算法流程;圖2為本發(fā)明的基于PC的并行簡化系統(tǒng)硬件架構;圖3為本發(fā)明的潛在簡化集(PSS)。
具體實施例方式本發(fā)明的面向復雜三維CAD模型的海量場景漸進式更新算法,包括以下步驟(I)構建支持場景在線更新的系統(tǒng)架構?;诓⑿泻喕暮A磕P屠L制系統(tǒng)是傳統(tǒng)的海量模型繪制系統(tǒng)與空間索引動態(tài)剖分以及并行簡化技術的有機結合,其中空間索引動態(tài)剖分需要修改場景樹在內存中的數(shù)據(jù),因此在外存算法之后插入算法流程,而并行簡化算法需要在得到潛在簡化集(PSS)之后才能工作,因此在可見性剔除算法之后插入算法流程,場景并行更新算法流程如圖I所
/Jn ο在硬件架構方面,本發(fā)明提出的并行簡化部署方案為基于一臺PC的多GPU并行簡化架構。在當前主流PC平臺上,裝載2個或2個以上的GPU圖形處理硬件,從而充分利用GPU強大的采樣能力來進行并行LOD模型構造,硬件部署如圖2所示。(2)不同于單一的海量數(shù)據(jù)文件結構,本發(fā)明通過不同的文件分別保存場景數(shù)據(jù), 模型輸入幾何數(shù)據(jù)和簡化LOD模型數(shù)據(jù)。模型輸入幾何數(shù)據(jù)和簡化LOD模型數(shù)據(jù)為海量數(shù)據(jù),為支持海量場景的更新操作,在表達場景樹時,使用雙BSP的空間結構。首先將場景中的每個模型用BSP剖分成包圍體,然后對場景中所有的包圍體聚簇生成整個場景的BSP樹。采用本發(fā)明提出的一個支持海量三維模型更新的外存算法,來提高在進行繪制數(shù)據(jù)訪問時的緩沖命中率。支持海量三維模型更新的外存算法為(a)將外存文件劃分為固定大小的塊,然后將物體剖分后包圍體中的幾何數(shù)據(jù)送入到這些文件塊中;(b)根據(jù)對場景的先驗知識(預估場景的數(shù)據(jù)量),需預先開辟足夠大的文件,在將新的物體加入到場景的過程中,計算出一個與新加物體距離最近的已有物體集合;(c)將該集合按照其幾何數(shù)據(jù)所在的文件塊分為若干個子集,按照距離建立新加物體與這些文件塊的關系,選取關系最為密切的一個文件塊來插入新加物體。從而確保在模型不斷增加的過程中,距離接近的物體幾何在硬盤上的排列也靠近;(d)在場景更新時同樣也會出現(xiàn)刪除物體的情況,這時再外存文件快中會出現(xiàn)碎片,因而在進行了一定數(shù)量的更新操作之后,我們需對外存文件進行碎片整理。與新家物體的算法類似,在進行碎片整理時將被整理塊中每個物體取出,視其為新加物體,按照添加算法將其重新添加到外存文件中。(3)快速更新整個場景空間索引,使其在繪制加速算法中保持有效。在海量三維場景進行更新時,用來進行加速繪制的空間剖分索引會失效,我們使用結合粗粒度場景BSP與細粒物體BSP的雙層BSP場景樹結構。進行物體編輯時,物體BSP 結構保持不變,僅更新粗粒度的場景BSP。在繪制時,細粒度的物體BSP保證了可見性剔除算法的效率,同時在對場景BSP進行更新時我們采用lazy update策略,僅重構失效的BSP 結點。將空間索引結點分為三種狀態(tài)lazy (表示待剖分),vacant (包含物體面片數(shù)小于設定值)和confirmed (已經(jīng)過重構)。在添加物體時,首先將被添加的物體的包圍體放到已有的空間剖分結構中,每個包圍體都從根節(jié)點開始自上至下判斷是否在當前的空間剖分結點的包圍盒內,若否,則將其放入當前結點的父結點的包圍體隊列中,并將父節(jié)點標記為 lazy。若是則將其送入孩子結點中做同樣的判斷,以此類推,直至將其加入到葉結點中,若葉結點包含包圍體的數(shù)量已超過剖分設定值,則標記其為lazy,并向葉結點的葉子編輯結點的集合中添加相應的葉子編輯結點。從場景中刪除模型時,通過物體剖分生成包圍體找到相應的BSP葉子結點,斷開其與葉子結點的聯(lián)系,若BSP葉子結點原先標志為confirmed, 則將葉子結點標記為vacant,表示其為有空位的,若原先為lazy則保持lazy不變。在移動模型時,在移動過程中并不修改物體的包圍體與空間剖分結點的索引關系。在移動后,首先判斷每個包圍體是否還在原先的BSP葉子節(jié)點中,若還是,則什么也不做,若已經(jīng)出了原先的BSP葉子結點,則首先解除與原先BSP葉子結點的關系,并將其向上推,直到推到一個在其包圍盒之內的結點中,然后,將其標記為lazy。若根節(jié)點包圍盒容納不下移動之后的模型,則將其放到場景樹中一個單獨的包圍體隊列中,并將整個空間剖分結構標記為lazy。在BSP結構中結點的狀態(tài)確定之后,系統(tǒng)隨著特定操作(如繪制)在遍歷空間剖分結構的時候,自適應的對空間剖分結構進行更新。在遍歷BSP結構時對所有遇到的lazy 結點進行重構并將其標示為confirmed。在對lazy結點進行空間索引重構時,我們使用基于SAH的BSP生成算法,以期望得到具有最有加速性能的空間索引結構。(4)基于PC多GPU硬件平臺的海量三維場景LOD模型并行在線構造技術?;诓⑿泻喕暮A磕P屠L制系統(tǒng)是傳統(tǒng)的海量模型繪制系統(tǒng)與空間索引動態(tài)剖分以及并行簡化結合。其中空間索引動態(tài)更新需要修改場景樹在內存中的數(shù)據(jù),并行簡化算法收集當前視點的潛在可見的更新結點,將這些結點與其在LOD層次結構中的父結點和子結點一起構成潛在簡化集(PSS, Potentially Simplification Set)(如圖3所示)。 根據(jù)多GPU并行簡化硬件平臺,在多個簡化端中需要最優(yōu)的分配簡化任務。在場景的空間剖分結構更新完畢之后,在廣度上減少了更新結點的基礎上,根據(jù)當前視點擴大的視域錐剔除、遮擋剔除等可見性判斷,從深度上減少當前需要更新LOD模型結點的數(shù)量,就可得到潛在簡化集(PSS),然后我們對PSS中的LOD模型結點進行簡化處理。在已有的基于可見性的繪制系統(tǒng)的基礎上,采用一個統(tǒng)一的簡化架構來處理更新后場景LOD模型的重構計算。 系統(tǒng)的并行簡化任務調度引擎中建立有一個簡化任務隊列,每個簡化任務包含有待簡化的空間剖分子樹根節(jié)點,需要得到簡化模型的誤差,以及一個簡化任務優(yōu)先級標識,簡化任務隊列按照簡化任務優(yōu)先級升序排列。在運行時,可見物體(即前一幀中被繪制的物體) 隊列中的未完成LOD模型被賦予最高的優(yōu)先級。然后是PVS隊列中未完成的LOD模型,PSS隊列中的模型的簡化優(yōu)先級最低。在運用這個簡化隊列的同時,我們還是用LRU算法來判斷簡化任務結果的使用效率。基于這個思想,在簡化隊列中,我們首先簡化那些被修改時間較長的模型,而對于最近頻繁被修改的模型,則等到其最終修改結果確定之后再對其進行簡化。在進行簡化任務分配時,并行簡化任務調度引擎每次從任務隊列中取出一個優(yōu)先級最高的簡化任務,將其分配給空閑的簡化端。在每個簡化端(即GPU上),我們使用了基于GPU采樣的快速體素LOD模型構造算法(AdaptiveVoxels),在最短的時間內構造出符合設定誤差的體素LOD模型。
權利要求
1.面向復雜三維CAD模型的海量場景漸進式更新算法,其特征在于,包括以下設計思路(1)構建支持場景在線更新的系統(tǒng)架構;(2)用不同的文件分別保存場景樹數(shù)據(jù),模型輸入幾何數(shù)據(jù)和簡化LOD模型數(shù)據(jù); (3)快速更新整個場景空間索引,使其在繪制加速算法中保持有效;(4)基于PC多GPU硬件平臺的海量三維場景LOD模型并行在線構造技術。
2.根據(jù)權利要求I所述的面向復雜三維CAD模型的海量場景漸進式更新算法,其特征在于,所述步驟(I)中,場景并行更新算法流程方面,在外存算法之后插入空間索引動態(tài)剖分算法,在可見性剔除算法之后插入并行簡化算法;硬件架構方面,本發(fā)明采用的并行簡化部署方案為基于一臺PC的多GPU并行簡化架構。
3.根據(jù)權利要求I所述的面向復雜三維CAD模型的海量場景漸進式更新算法,其特征在于,所述步驟(2)中,包括一個支持海量三維模型更新的外存算法,步驟如下(a)將外存文件劃分為固定大小的塊,然后將物體剖分后包圍體中的幾何數(shù)據(jù)送入到這些文件塊中;(b)開辟足夠大的文件,計算出一個與新加物體距離最近的已有物體集合;(C)將該集合按照其幾何數(shù)據(jù)所在的文件塊分為若干個子集,按照距離建立新加物體與這些文件塊的關系,選取關系最為密切的一個文件塊來插入新加物體。
4.根據(jù)權利要求I所述的面向復雜三維CAD模型的海量場景漸進式更新算法,其特征在于,所屬步驟(3)中,在海量三維場景進行更新時,使用結合粗粒度場景BSP與細粒物體 BSP的雙層BSP場景樹結構;進行物體編輯時,物體BSP結構保持不變,僅更新粗粒度的場景BSP ;在繪制時,細粒度的物體BSP保證可見性剔除算法的效率,采用lazy update策略對場景BSP進行更新,重構失效的BSP結點。
5.根據(jù)權利要求I所述的面向復雜三維CAD模型的海量場景漸進式更新算法,其特征在于,所屬步驟(4)中,基于并行簡化的海量模型繪制系統(tǒng)是傳統(tǒng)的海量模型繪制系統(tǒng)與空間索引動態(tài)剖分以及并行簡化結合,根據(jù)多GPU并行簡化硬件平臺,在多個簡化端中最優(yōu)的分配簡化任務;在場景的空間剖分結構更新完畢之后,在廣度上減少了更新結點的基礎上,根據(jù)當前視點擴大的視域錐剔除、遮擋剔除等可見性判斷,從深度上減少當前需要更新LOD模型結點的數(shù)量,得到潛在簡化集(PSS),然后對PSS中的LOD模型結點進行簡化處理;在已有的基于可見性的繪制系統(tǒng)的基礎上,在系統(tǒng)的并行簡化任務調度引擎中建立一個簡化任務隊列,每個簡化任務包含有待簡化的空間剖分子樹根節(jié)點,需要得到簡化模型的誤差,以及一個簡化任務優(yōu)先級標識,簡化任務隊列按照簡化任務優(yōu)先級升序排列;在運行時優(yōu)先級由高到低為可見物體隊列中的未完成LOD模型、PVS隊列中未完成的LOD模型、PSS隊列中的模型;同時,用LRU算法來判斷簡化任務結果的使用效率。
全文摘要
本發(fā)明涉及一種面向復雜三維CAD模型的海量場景漸進式更新算法。本發(fā)明用不同的文件分別保存場景樹數(shù)據(jù),模型輸入幾何數(shù)據(jù)和簡化LOD模型數(shù)據(jù);使用雙層BSP場景樹結構快速更新整個場景空間索引;采用基于PC多GPU硬件平臺的海量三維場景LOD模型并行在線構造技術,快速構造LOD。本發(fā)明的優(yōu)點在于可加速場景更新速度,達到在線交互繪制的目的。
文檔編號G06T19/00GK102609990SQ201210009810
公開日2012年7月25日 申請日期2012年1月5日 優(yōu)先權日2012年1月5日
發(fā)明者劉壽鑫, 呂憧憬, 宋麗麗, 李勃, 田豐林, 錢程程, 陳戈, 韓勇, 馬純永 申請人:中國海洋大學