王 欣,薛亞娣
(蘭州文理學院 數字媒體學院,甘肅 蘭州 730000)
虛擬現實(virtual reality,VR)技術不斷成熟和更新,為數字化展館環境構建以及展品建模提供了更直觀、更快速的實現方法。虛擬現實技術基于計算機模擬產生三維的虛擬空間[1],讓受眾在虛擬的展覽環境中產生身臨其境的沉浸感、交互感。陳小連基于VR/AR技術實現了室內云設計[2],易用性強、渲染速度快,滿足了互聯網層面室內云軟件的設計需求。為此,本次關于數字展館場景圖像表面重建的研究也通過虛擬現實技術來實現。從虛擬現實技術的應用特性角度而言,本研究旨在解決以往展館虛擬環境構建中表面格網狹長三角形過多、三角格網復雜度高、模型渲染計算量大、渲染不暢等問題,利用虛擬現實技術中的優化算法實現數字展館場景表面三角格網的重建與渲染,在實驗分析環節驗證本文方法在數字展館場景圖像表面重建中的優越性。
采用經典的Delaunay三角形格網表達TIN,Delaunay三角形格網應用二維平面內的離散數據點實時連接得到,具有互不交叉的特點[3],生成狹長三角形的概率較低[4],在三維場景表面重建中應用廣泛。基于逐點插入法的Delaunay三角形格構建方法包含三個步驟。首先,將展館場景三維坐標xoy平面投影,獲得二維平面點集中x與y軸正負4個方向極值點,分別采用xα、xβ、yα、yβ表示;增加λ表示正偏移值,取值在0之上,由此計算最小矩形包圍盒的橫坐標與縱坐標如式(1)-式(4)所示。
Xα=xα+λ
(1)
Xβ=xβ-λ
(2)
Yα=yα+λ
(3)
Yβ=yβ-λ
(4)
式(1)-式(4)中,(Xα,Yα)、(Xα,Yβ)、(Xβ,Yα)、(Xβ,Yβ)表示矩形包圍盒的4個頂點坐標,原始的三角格網通過連接隨機一條角線得到。其次,全部點依次插入此刻三角格網內,遍歷全部三角形獲得最優的三角形插入點位。最后,確定其所在三角形附近全部有外接圓(該插入點涵蓋在內)的三角形并構成影響域凸包,影響域內全部三角形之間的公共邊需剔除,將插入點、影響域形成多邊形的頂點進行連接[5]。此過程中基于空外接圓準則局部優化插入點的影響域,最大程度避免空間三角形和二維平面的夾角較大情況下還原到三維空間后出現狹長三角形。第二步和第三步循環操作,插入全部點生成最終的三角形格網。
復雜的場景模型往往生成巨大規模的三角形網格,為了構建具有不同細節層次的展館場景模型,基于Hoppe等人提出的邊折疊算法對網格實施簡化[6]。就是刪除三維模型一條邊中的頂點,求取新頂點位置重新連接邊,模型表面三角面片規模大量削弱。圖1和圖2展現了邊折疊前后的細節原理,在邊折疊操作中定義(k1,k2)表示待折疊的邊,v0表示折疊后新頂點,刪除頂點k1、k2,k1k3、k1k4、k1k7、k1k8、k2k4、k2k5、k2k6、k2k7、k1k2是與原頂點相連的邊需全部刪除,連接待折疊邊相鄰頂點和新頂點得到新折疊后的邊,此為一次邊折疊的過程。

圖1 未折疊邊效果

圖2 折疊邊效果
1.2.1 改進循環結構四叉樹算法
傳統遞歸遍歷四叉樹算法進行三維模型渲染過程中,遞歸函數在壓入、讀取操作中產生極大的堆棧負擔,延長了計算用時[7]。不僅如此,一次調用往往需要后續調用的配合,增加了所需堆棧操作數規模,當前堆??捎每臻g難以滿足應用需求[8]。所以改進傳統遞歸遍歷四叉樹算法的渲染策略,使用循環結構,由上至下按順序地生成全部四叉樹節點。
首先,基于四叉樹算法分割待渲染的數字展館場景。數字展館場景三維渲染過程中,將全部待渲染畫面視為一個矩形網格,基于四叉樹思想實施區域劃分。場景數據發送至渲染處理模塊,定義三維元素頂點坐標為(x,y,z),頂點的高度用y表示;將各個(x,y,z)拆分為(x,z)與y,單獨實施渲染操作。待渲染矩形網格中,該節點三維元素渲染精度值需求基于節點與觀察者位置的距離、平坦水平共同確定,距離越近,平坦水平越差的節點所在位置對應的渲染精度要求更高,應深度細分對應的四叉樹節點。
其次,基于改進循環結構四叉樹算法進行場景渲染。改進循環四叉樹算法的操作原理如圖3所示。算法實施前確定好模型渲染的需求、四叉樹的層數、四叉樹節點數量。循環四叉樹結構采用“上→下”順序生成四叉樹節點[9]。第一步,打造一個立體空間場景,全部數字展館模型節點涵蓋在內;第二步,循環調用構造函數創建空間內全部節點新的子節點,全部節點均為葉子節點時終止;第三步,查看是否滿足終止迭代條件,迭代符合預設節點數量判斷是否繼續循環,滿足預設值則終止迭代,否則繼續迭代操作。迭代構造四叉樹子節點策略有效降低了數據運算規模,減少了堆棧操作負擔和壓力,數字場景渲染速度有效提升。

圖3 改進循環結構四叉樹函數實施流程
1.2.2 雙層渲染裁剪策略
第一層“淡入淡出”裁剪。淡入淡出裁剪策略注重層次細節,傳統層次細節算法切換各個LOD等級時導致頂點高度值突變,“突越”問題嚴重,改進后“淡入淡出”層次細節算法重點緩慢地處理頂點高度值[10],以高度補償的模式避免“突越”問題。數字展館建模屬于大場景建模,這種“淡入淡出”層次細節算法基于當前模型在預設區間中的比例值,確定采用粗略裁剪還是精準裁剪,且裁剪掉預設視野外的模型精準有效。
第二層“緩慢剔除”裁剪。以往剔除裁剪算法通過求取三維向量實現剔除,同樣導致“突越”問題嚴重,為此采用二維向量計算代替以前的三維向量計算,預設2個剔除距離值作為不透明度約束,從而減少“突越”問題的存在。
為表明本文方法可行性與優越性,將本文方法用于數字展館場景實施三維表面重建模擬實驗。引用基于FLOD單層裁剪的數字展館場景建模方法、基于Delaunay三角剖分的數字展館場景建模方法進行對比測試,以評估本文方法的優勢與劣勢。
采用網格質量系數評估場景圖像表面三角格網的構建質量,針對三角格網均勻程度的評估。網格質量系數用U表示,計算方法如式(5)所示。
(5)
式(5)中,第i個三角形圓徑比用oi描述,當U趨近于1時說明三角格網的質量更佳,均勻程度較好。
同時展示了每插入一個點需要搜索的三角形數量,用p表示,需要搜索的三角形數量越少說明該方法的三角格網構建越高;另外,采用三角格網簡化率h表示其精簡水平。本文方法的表面三角格網重建效果如表1所示。

表1 各方法在數字展館場景表面三角格網重建中的質量評估結果
分析表1數據可知,和兩種對比方法相比,改進算法的網格質量系數、每插入一個點需要搜索的三角形數量、三角格網簡化率均處于較高水平,網格質量系數趨近于1,另外兩種方法的質量系數均大于2.5,說明其網格構建的均勻程度不夠理想,這是因為本文方法構建Delaunay三角形格網過程中,找到其所在三角形附近全部有外接圓(該插入點涵蓋在內)的三角形并構成影響域凸包,刪除了影響域內全部三角形之間的公共邊,將插入點、影響域形成多邊形的頂點進行連接,將具有不規則特征、凸包特征三角形對網格均勻度的影響降到最低。本文方法每插入一個點約需要搜索48個三角形,基于Delaunay三角剖分的數字展館場景建模方法需要搜索的三角形數量達到486個,說明本文方法網格構建定位較為精準,搜索三角形數量較少、格網生成的效率較高。此外,本文方法對三角格網的精簡水平達到了75.30%,且沒有損壞場景模型的細節幾何特征,不影響數字展館場景表面重建的效果,實現了模型輕量化特征、減少了建模對內存的占用水平。
數字展館場景表面重建渲染效果如圖4所示,能夠看出圖中場景重建畫面清晰、場景燈光設置合理,場景層次分明、細節豐富,可以充分展現數字展館的場景信息。

圖4 數字展館表面重建渲染效果
為進一步了解本文方法的渲染流暢度情況,采用三種方法同步進行渲染幀數對比測試,幀是評估模型渲染效率的權威指標,較大的幀率值表示其渲染效率越高,較小的幀率值則表示其渲染效率越差。選取3個展館場景進行渲染測試,場景規模由小至大,場景1包含約35412個面、場景2包含約254784個面、場景3包含約451423個面,實驗結果如表2所示。

表2 渲染幀率實驗結果 Hz
表2數據顯示,本文方法處理相同規模場景的渲染能力突出,渲染場景1的幀率可達164Hz,是三種方法中最優,其他兩個場景渲染能力同樣突出。可見,本文方法對于復雜場景和簡單場景模型的渲染均具有良好的流暢度,能夠滿足受眾對于數字展館的沉浸式瀏覽需求。本文方法幀率高,一方面是因為采用了改進循環結構四叉樹算法,由上至下按順序地生成全部四叉樹節點,減少了極大的堆棧負擔;另一方面應用了雙層裁剪策略,應用“淡入淡出”裁剪+“緩慢剔除”裁剪的方式裁剪掉預設視野外的模型,減少渲染數據提升了渲染的效率,并且良好避免了模型格網“突越”問題的存在,保障了良好的渲染感觀。
為進一步增強數字展館虛擬建設場景的沉浸感以及交互感,本文利用虛擬現實技術進行了數字展館建模研究,具體采用基于四叉樹優化算法實現數字展館場景表面重建。該方法存在兩個顯著優勢:第一,利用Delaunay算法構建場景表面格網,降低生成狹長三角形的概率,結合邊折疊方法精簡三角形格網的數量,減少表面重建數據規模,大大減少了對內存的開銷,運行效率更快;第二,改進傳統遞歸遍歷四叉樹算法的渲染策略,使用循環結構的四叉樹算法,由上至下按順序地生成全部四叉樹節點,高質量實現LOD技術,呈現趨近現實的虛擬場景效果。最后,在測試中驗證了該方法生成網格效率高、質量佳,模型渲染的流暢度較好、場景重建畫面趨于現實,提高數字展館場景的交互性、沉浸感、還原度。