專利名稱:一種基于分級層次化深度網(wǎng)格的森林繪制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一般的圖像數(shù)據(jù)處理或產(chǎn)生,尤其涉及一種基于分級層次化深 度網(wǎng)格的森林繪制方法。
技術(shù)背景森林的實時繪制一直是圖形學(xué)中富有挑戰(zhàn)性的課題,這種挑戰(zhàn)性源于樹木 種類的多樣性及其幾何數(shù)據(jù)的復(fù)雜性。為了能夠快速繪制大尺度的森林場景并 保持其真實感,關(guān)鍵在于如何適當(dāng)?shù)睾喕值膹?fù)雜度同時保持其繪制質(zhì)量。 目前已存在的關(guān)于森林和植被的繪制方法可以分為如下四類1. 創(chuàng)建層次細(xì)節(jié)模型(LOD):這類方法采用已經(jīng)比較成熟的幾何模型簡化算法對森林模型建立不同簡化程度的LOD,然后根據(jù)誤差選擇合適的LOD模型進(jìn) 行繪制,從而實現(xiàn)不同LOD之間的平滑過渡??蓞⒖糩RMB02] I. Remola, M.Chover, O. Chover, 0. Belmonte, J. Ribelles, C. Rebollo. Geometric Simplification of Foliage. Eurographics 2002.2. Billboard及其變體Billboard使用一張紋理來表示一棵樹,其特點為簡單 易用,但缺點是過于簡化,不能表現(xiàn)樹的細(xì)節(jié)。 一種改進(jìn)的算法是使用幾個相 互交叉的Billboard來表示,更有效的方法是采用一種叫Billboard Cloud的算法, 該算法采用一系列的Billboard來對原模型進(jìn)行逼近??蓞⒖糩FUM05]A. Fuhrmann, E. Umlauf, S. Mantler. Extreme Model Simplification for Forest Rendering.五wragra/ /n'cs恥由/zo/ 2005.3. 對樹模型進(jìn)行體素化,然后使用體紋理進(jìn)行繪制。可參考[Ney96] Fabrice Neyret. Synthesizing Verdant Landscapes using Volumetric Textures.五wragrap/z/c^ 阪fo—辨6.4. 采用點繪制方法,即使用多分辨率的點模型來表示復(fù)雜的森林模型,可參 考[SD01] Marc Stamminger, George Drettakis. Interactive Sampling and Rendering for Complex and Procedural Geometry.五wragra/ /2/as恥/^/zo/ o" 2007. 發(fā)明內(nèi)容針對現(xiàn)有技術(shù)的不足,本發(fā)明的目的在于提出一種基于分級層次化深度網(wǎng) 格的森林繪制方法,可以實現(xiàn)具有較高真實感的交互式大規(guī)模森林的繪制。 為了達(dá)到上述發(fā)明的目的,本發(fā)明采用的技術(shù)方案如下1) 采樣創(chuàng)建單樹模型的層次化深度網(wǎng)格從預(yù)定義的視點對單樹的原始模型進(jìn)行光線跟蹤采樣得到分層的深度圖 像,然后依據(jù)各層的深度圖像創(chuàng)建深度網(wǎng)格及其紋理庫;2) 建立森林的KD-Tree:給出森林的分布和單樹的層次化深度網(wǎng)格,根據(jù)結(jié)點的預(yù)計面片數(shù)和給定 的閾值,對森林進(jìn)行遞歸的四叉剖分,從上至下建立一棵KD-Tree,使其葉結(jié)點 只包含一棵樹;3) 建立森林結(jié)構(gòu)中非葉結(jié)點的層次化深度網(wǎng)格基于各葉結(jié)點的層次化深度網(wǎng)格,自下而上遞歸地采樣各非葉結(jié)點并建立 其相應(yīng)的深度網(wǎng)格,同時對其紋理庫進(jìn)行壓縮;4) 建立森林結(jié)點繪制隊列根據(jù)給定的視點和視域錐,自上而下地遍歷森林KD-Tree,進(jìn)行視域錐剔除 及視差計算,選擇出合適的結(jié)點然后排序創(chuàng)建繪制隊列;5) 繪制森林根據(jù)已建立的森林結(jié)點繪制隊列,按從遠(yuǎn)到近的順序依次從各結(jié)點中選擇 合適方向的深度網(wǎng)格進(jìn)行融合繪制,從而實現(xiàn)森林中不同層次結(jié)點之間的平滑 過渡。在單樹模型的包圍球上定義一系列的采樣視點,對每一個視點分層地進(jìn)行 光線跟蹤采樣得到一組帶深度的圖像,然后對深度圖像進(jìn)行按塊地自適應(yīng)剖分 重建網(wǎng)格并將各面片對應(yīng)的紋理合并到大塊的紋理庫。對森林進(jìn)行遞歸地四叉剖分建立KD-Tree,葉結(jié)點為單樹的采樣深度網(wǎng)格, 中間結(jié)點代表其所有子結(jié)點,根結(jié)點代表整個森林。基于葉結(jié)點的層次化深度網(wǎng)格,采用與建立單樹模型層次化深度網(wǎng)格相同 的方法,自下而上地對各非葉結(jié)點進(jìn)行采樣和創(chuàng)建深度網(wǎng)格,對最終形成的紋 理庫采用S3TC方法進(jìn)行壓縮保存。建立森林結(jié)點繪制隊列的過程就是自上而下地遍歷森林KD-Tree,根據(jù)當(dāng)前 的視點和視域錐,遞歸地選擇合適地結(jié)點,按其到視點的距離進(jìn)行排序建立繪 制隊列。對已建立的森林結(jié)點繪制隊列,從各繪制結(jié)點中選擇與當(dāng)前視線方向相關(guān) 的深度網(wǎng)格并根據(jù)其采樣方向與當(dāng)前視線方向的夾角計算對應(yīng)的不透明度a,對 各深度網(wǎng)格以不同的a值進(jìn)行融合繪制,最后實現(xiàn)不同層次結(jié)點間的平滑過渡。本發(fā)明與背景技術(shù)相比,具有的有益效果是本發(fā)明在充分分析LOD, Billboard,體繪制和點繪制特點的基礎(chǔ)上,利用基 于圖像的采樣方法降低了森林的復(fù)雜度,再通過重建幾何的方式還原了模型的 真實感,很好地實現(xiàn)了繪制性能、質(zhì)量及存儲代價之間的平衡。
圖l是本發(fā)明方法的流程圖。圖2是單樹預(yù)采樣視點及采樣方向的示意圖。圖3是深度網(wǎng)格的構(gòu)造過程圖。圖4是紋理庫的創(chuàng)建過程圖。圖5是繪制結(jié)點時的預(yù)處理視點選擇示意圖。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明作進(jìn)一步說明。如圖1所示,本發(fā)明提出的一種基于分級層次化深度網(wǎng)格的森林繪制方法, 包括采樣創(chuàng)建單樹模型的層次化深度網(wǎng)格、建立森林的KD-Tree、建立森林結(jié)構(gòu) 中非葉結(jié)點的層次化深度網(wǎng)格、建立森林結(jié)點繪制隊列和繪制森林五個步驟。 流程如圖1所表示首先根據(jù)單樹模型采樣創(chuàng)建單樹的層次化深度網(wǎng)格,然后 根據(jù)森林分布建立KD-Tree,接著建立森林結(jié)構(gòu)中非葉結(jié)點的層次化深度網(wǎng)格; 在繪制前先建立森林結(jié)點的繪制隊列,最后進(jìn)行森林的繪制?,F(xiàn)具體介紹本方法的五個步驟1 )采樣創(chuàng)建單樹模型的層次化深度網(wǎng)格首先根據(jù)單樹幾何模型的包圍球,定義一個以包圍球的球心為中心,以^w/t肌(加/2)為半徑的采樣球,其中&^為包圍球半徑,,為采樣視角大小。 因為在實際繪制中,絕大多數(shù)觀察森林的角度處于其采樣球水平切面的上方, 所以在采樣球的上半部分以45度角為間隔均勻定義了 15個采樣視點。圖2為 采樣球的一個示意圖,紅點a表示采樣視點,b為從其中一個視點到球心的采樣 方向。對于每個采樣方向,可以構(gòu)建一組以采樣方向為法向的平面,該組平面均 勻地將采樣球切分為M層(^^0)。然后分別對落在各層中的幾何面片運用光線跟 蹤算法計算光照和陰影,得到w張帶深度的圖像,其分辨率為預(yù)定義的2Wx2、 深度圖像中每個像素包含^6三個顏色分量和一個J深度分量,其對應(yīng)的不透明 度cc可根據(jù)深度J得出(當(dāng)"=1時,cx為0;當(dāng)^<1時,oc為l)。對每張深度圖像需要對其進(jìn)行剖分并建立深度網(wǎng)格,其過程如圖3所示。 圖3a為同一采樣方向上得到的一組深度圖像,首先分別將每幅圖像劃分成大小為2、2、"AO的多個基塊,如圖3b所示。對于一個基塊Q,可以計算其有效 像素比例Y^-有效像素個數(shù)/總像素個數(shù),如果y^小于預(yù)定義的閾值e,則認(rèn)為 該基塊透明,將其丟棄;反之,則需要對該基塊進(jìn)行遞歸地自適應(yīng)剖分,如圖 3c所示。對于一個基塊Q,根據(jù)其像素的深度值可以計算出其深度差D^—a,然 后將該深度差投影到投影平面上得出其像素級的投影誤差 二max(w,/0/2tan(/ov/2HD!l一 /c0 ,其中w和分別為投影平面的寬和 高,/。v為視角大小,"為Q到視點的距離,如圖3d所示。根據(jù)塊g的深度投影 誤差Em^肖、給定的閾值T!和最小塊大小2m'n, x 2mm* ,如果< "或者塊的 尺寸小于等于2皿n^x2自^則完成建立深度塊,否則遞歸地對塊進(jìn)一步剖分并重計算深度差。剖分完成后,對每個深度快進(jìn)行二元線性回歸計算,得出深度塊 的四個頂點坐標(biāo)。對于相鄰塊在深度方向上重合項點,將項點間的深度差按與 &,,相同的方法計算其投影到平面上的誤差£>印決,,如果D,/v。/j、于閾值T!, 則將兩個頂點合并為一個,從而最終將離散的深度塊連接成為深度網(wǎng)格。最后一步,將圖4a深度塊紋理圖像,根據(jù)紋理塊大小的不同,以四個小塊 拼裝成一個大塊的方式,如圖4b所示將所有不同尺寸的紋理組裝到幾張大塊的 紋理庫中,并計算出對應(yīng)的紋理坐標(biāo)。2) 建立森林的KD-Tree:給出單樹的層次化深度網(wǎng)格f,可以計算出f在某一視點下的平均繪制面片 數(shù)巧=(facecount(0 /15).w ,其中facecountW為f在各采樣方向上深度網(wǎng)格面片數(shù)之 和,^為融合繪制時選擇的方向數(shù), 一般為3。根據(jù)森林的分布和單樹的預(yù)計面片數(shù)《,可以對森林所在的地形按給定的 閾值r進(jìn)行遞歸的四叉剖分,r為結(jié)點的最大繪制面片數(shù)。剖分前,針對森林中 的每棵樹建立一個結(jié)點,單樹模型相同的結(jié)點通過引用實現(xiàn)單樹的層次化深度 網(wǎng)格的共享。在剖分過程中,如果一個結(jié)點所包含的所有子樹的預(yù)計面片數(shù)之 和小于閾值r,則完成結(jié)點剖分;否則將該結(jié)點按空間剖分為四個子結(jié)點,根據(jù) 各子樹的空間位置將其劃分到相應(yīng)的子結(jié)點,然后分別對各子結(jié)點遞歸地重復(fù) 本過程。剖分完成后,整個森林可以表示為一棵KD-Tree,其根結(jié)點代表整個森 林,葉結(jié)點代表單棵樹。3) 建立森林結(jié)構(gòu)中非葉結(jié)點的層次化深度網(wǎng)格因為上一步建立的森林KD-Tree中,除了葉結(jié)點包含有預(yù)先采樣建立的單 樹層次化深度網(wǎng)格外,其他非葉結(jié)點都不存在幾何數(shù)據(jù),所以需要根據(jù)葉結(jié)點 的幾何數(shù)據(jù),自下而上遞歸地采樣各非葉結(jié)點并建立其相應(yīng)的深度網(wǎng)格。創(chuàng)建非葉結(jié)點層次化深度網(wǎng)格的方法與第一步建立單樹層次化深度網(wǎng)格的 方法一致,唯一區(qū)別為第一步采樣的是單樹原始幾何模型,而這一步采樣的是 子結(jié)點的層次化深度網(wǎng)格。建立過程為根據(jù)結(jié)點的包圍盒建立采樣球,在采樣球的上半部分定義15個采樣點和采樣方向。對每個采樣方向,構(gòu)建一組以采 樣方向為法向的平面將采樣球均勻地切分為"層(">0)。然后分別以各層的相鄰 平面作為遠(yuǎn)近裁剪平面,在相應(yīng)的方向上對各子結(jié)點的層次化深度網(wǎng)格進(jìn)行融 合繪制,繪制方法與第五步中繪制結(jié)點的方法一致,從而得到一組深度圖像。 最后將得到的深度圖像按照與第一步相同的方法,建立層次化深度網(wǎng)格,并將 各網(wǎng)格塊對應(yīng)的圖像添加到紋理庫中。在各非葉結(jié)點的層次化深度網(wǎng)格建立完成以后,森林KD-tree的各結(jié)點都包 含了相應(yīng)的層次化深度網(wǎng)格,同時各結(jié)點對應(yīng)的紋理全部保存在同一個紋理庫 中。最后將紋理庫中的大塊紋理建立MIPMAP并采用S3TC方法進(jìn)行壓縮,壓 縮后紋理庫為原始大小的1/3。4) 建立森林結(jié)點繪制隊列根據(jù)當(dāng)點視點建立森林結(jié)點繪制隊列的過程是一個自頂向下遍歷森林 KD-Tree的過程。在遍歷過程中需要遞歸地進(jìn)行視域錐剔除并計算視點到結(jié)點中 心的距離。如果結(jié)點落在視域錐范圍外,則直接跳過該結(jié)點;如果結(jié)點落在視 域錐范圍內(nèi)同時視點到結(jié)點中心的距離大于等于結(jié)點的采樣半徑,則把當(dāng)前結(jié) 點放入繪制隊列,并結(jié)束遍歷;如果結(jié)點落在視域錐范圍內(nèi)同時視點到結(jié)點中 心的距離小于結(jié)點的采樣半徑,則繼續(xù)遍歷其子結(jié)點。遍歷結(jié)束后,根據(jù)各結(jié)點到視點的距離對繪制隊列按從遠(yuǎn)到近的方式進(jìn)行 排序。5) 繪制森林因為森林結(jié)點繪制隊列中的所有結(jié)點,無論是葉結(jié)點還是非葉結(jié)點,都是 由層次化深度網(wǎng)格組成,所以各結(jié)點的繪制方法是一樣的。如圖5所示,給出 一個中間結(jié)點,c為結(jié)點的包圍球,d為其對應(yīng)的采樣球,根據(jù)當(dāng)前的視線方向b, 從結(jié)點所包含的15個采樣方向中找出與視線方向夾角"最小的m個方向(一般 w取值為3),然后將這附個方向的層次化深度網(wǎng)格進(jìn)行融合繪制,各方向相應(yīng) 的融合系數(shù)為cos(a)。繪制時按照隊列的順序從遠(yuǎn)到近依次繪制各個結(jié)點,即可實現(xiàn)高質(zhì)量的交 互式森林繪制。
權(quán)利要求
1.一種基于分級層次化深度網(wǎng)格的森林繪制方法,其特征在于包括以下五個步驟1)采樣創(chuàng)建單樹模型的層次化深度網(wǎng)格從預(yù)定義的視點對單樹的原始模型進(jìn)行光線跟蹤采樣得到分層的深度圖像,然后依據(jù)各層的深度圖像創(chuàng)建深度網(wǎng)格及其紋理庫;2)建立森林的KD-Tree給出森林的分布和單樹的層次化深度網(wǎng)格,根據(jù)結(jié)點的預(yù)計面片數(shù)和給定的閾值,對森林進(jìn)行遞歸的四叉剖分,從上至下建立一棵KD-Tree,使其葉結(jié)點只包含一棵樹;3)建立森林結(jié)構(gòu)中非葉結(jié)點的層次化深度網(wǎng)格基于各葉結(jié)點的層次化深度網(wǎng)格,自下而上遞歸地采樣各非葉結(jié)點并建立其相應(yīng)的深度網(wǎng)格,同時對其紋理庫進(jìn)行壓縮;4)建立森林結(jié)點繪制隊列根據(jù)給定的視點和視域錐,自上而下地遍歷森林KD-Tree,進(jìn)行視域錐剔除及視差計算,選擇出合適的結(jié)點然后排序創(chuàng)建繪制隊列;5)繪制森林根據(jù)已建立的森林結(jié)點繪制隊列,按從遠(yuǎn)到近的順序依次從各結(jié)點中選擇合適方向的深度網(wǎng)格進(jìn)行融合繪制,從而實現(xiàn)森林中不同層次結(jié)點之間的平滑過渡。
2. 根據(jù)權(quán)利要求1所述的一種基于分級層次化深度網(wǎng)格的森林繪制方法,其 特征在于在單樹模型的包圍球上定義一系列的采樣視點,對每一個視點分層 地進(jìn)行光線跟蹤采樣得到一組帶深度的圖像,然后對深度圖像進(jìn)行按塊地自適 應(yīng)剖分重建網(wǎng)格并將各面片對應(yīng)的紋理合并到大塊的紋理庫。
3. 根據(jù)權(quán)利要求1所述的一種基于分級層次化深度網(wǎng)格的森林繪制方法,其 特征在于對森林進(jìn)行遞歸地四叉剖分建立KD-Tree,葉結(jié)點為單樹的采樣深度 網(wǎng)格,中間結(jié)點代表其所有子結(jié)點,根結(jié)點代表整個森林。
4. 根據(jù)權(quán)利要求1所述的一種基于分級層次化深度網(wǎng)格的森林繪制方法,其 特征在于基于葉結(jié)點的層次化深度網(wǎng)格,采用與建立單樹模型層次化深度網(wǎng) 格相同的方法,自下而上地對各非葉結(jié)點進(jìn)行采樣和創(chuàng)建深度網(wǎng)格,對最終形 成的紋理庫采用S3TC方法進(jìn)行壓縮保存。標(biāo)
5. 根據(jù)權(quán)利要求1所述的一種基于分級層次化深度網(wǎng)格的森林繪制方法,其特征在于建立森林結(jié)點繪制隊列的過程就是自上而下地遍歷森林KD-Tree,根 據(jù)當(dāng)前的視點和視域錐,遞歸地選擇合適地結(jié)點,按其到視點的距離進(jìn)行排序 建立繪制隊列。
6. 根據(jù)權(quán)利要求1所述的一種基于分級層次化深度網(wǎng)格的森林繪制方法,其 特征在于對已建立的森林結(jié)點繪制隊列,從各繪制結(jié)點中選擇與當(dāng)前視線方 向相關(guān)的深度網(wǎng)格并根據(jù)其采樣方向與當(dāng)前視線方向的夾角計算對應(yīng)的不透明 度a,對各深度網(wǎng)格以不同的(x值進(jìn)行融合繪制,最后實現(xiàn)不同層次結(jié)點間的平 滑過渡。
全文摘要
本發(fā)明公開了一種基于分級層次化深度網(wǎng)格的森林繪制方法。該方法包括采樣創(chuàng)建單樹模型的層次化深度網(wǎng)格、建立森林的KD-Tree、建立森林結(jié)構(gòu)中非葉結(jié)點的層次化深度網(wǎng)格、建立森林結(jié)點繪制隊列和繪制森林五個步驟。本發(fā)明借鑒了LOD、Billboard、體繪制以及基于圖像的繪制等方法,并在一種分級層次化組裝式深度拼圖集的森林繪制方法的基礎(chǔ)上,將原深度拼圖集更新為層次化深度網(wǎng)格,并且對森林的中間結(jié)點應(yīng)用采樣的方式重建層次化深度網(wǎng)格,同時對森林的紋理數(shù)據(jù)進(jìn)行了有效的壓縮,使得繪制速度和效果都得到了很大程度地提高。本發(fā)明在地理信息仿真、虛擬現(xiàn)實以及游戲引擎等領(lǐng)域有著廣泛的應(yīng)用前景。
文檔編號G06T17/05GK101216954SQ200810059420
公開日2008年7月9日 申請日期2008年1月21日 優(yōu)先權(quán)日2008年1月21日
發(fā)明者峰 劉, 煒 華, 鮑虎軍 申請人:浙江大學(xué)