高飛
摘 要:本文主要介紹細節層次模型的定義和生成方法,重點介紹了場景建模優化的主要方法,利用邊折疊法即二次測度誤差的改進算法對吉林動畫學院的校園場景進行簡化處理。結果表明,該方法有效降低了三維場景的復雜度。
關鍵詞:多層次細節模型 網格簡化 三維場景模型 邊折疊算法
中圖分類號:TP319 文獻標識碼:A 文章編號:1674-098X(2017)09(c)-0113-02
隨著計算機技術的快速發展、網絡的普及、虛擬現實技術的應用和理論研究已經成為當今信息技術領域內最熱門的研究,在實際應用中,大規模的虛擬現實場景內有很多復雜的模型,由于計算機硬件和網絡速度的限制,場景在加載過程中,無法進行實時顯示。因此,為了解決這個問題,本文采用邊折疊算法對模型進行場景內模型優化,不僅可提高加載速度,同時也給用戶帶來更好的真實體驗。
1 細節層次模型(LOD)
細節層次模型是指針對同一個對象模型,利用不同細節的描述方法得到一組模型。在實際繪制當中,以視點距離對象模型的遠近為依據進行繪制。當距離近時,利用較細致的LOD模型來繪制;當距離較遠時,便利用粗糙的LOD模型來繪制。在運動物體的場景中,當物體移動速度快時,利用粗糙的LOD模型來繪制,當物體移動速度較慢或者處于靜止時,利用細致的LOD模型來繪制。
2 LOD模型的生成
在計算機圖形學內,多邊形網格經常被用來描述場景內的對象模型,為物體提供不同層次的LOD模型,可有效控制場景復雜度及加速圖形繪制速度。而LOD模型通常是由網格簡化算法生成的。所謂網格簡化,就是在保持原網格模型的外觀特征基礎上,通過一些方法,減少頂點數量,將原始模型用近似模型表示出來。常用的方法是將對模型外觀特征影響不大的或不重要的頂點、三角形或邊從多邊形網格中移走,進而簡化模型。簡化過程遵循的原則是:(1)頂點最少原則;(2)誤差最小原則;(3)效率最高原則。
3 幾何元素刪除型算法
該算法主要是對網格模型邊、三角形或者中點的重要性進行判斷,將不重要的部分進行刪除,再把刪除后的空洞進行重新網格化,通過此方法來簡化網格。
該簡化方法主要可分為:近似平面合并型、折疊型和頂點刪除型。三角形算法和邊折疊算法是折疊型算法的主要兩種基本算法,主要思想是對網格中的三角形或者邊進行折疊誤差計算,選擇折疊誤差小的三角形或者邊進行折疊,生成新的頂點后,把與之有關聯的點進行連接,然后將折疊區域重新網格化。邊折疊算法的過程如圖1所示。
邊折疊算法也稱二次誤差測度算法(Quadric Error Metric,QEM),不僅運行速度快、內存消耗小,算法計算簡單且簡化后的網格與模型具有非常高的整體相似度。本文將原來的二次誤差測度算法(QEM)進行改進,利用改進的QEM算法對場景建模進行優化處理。
4 改進的二次誤差測度算法(QEM)
具體步驟如下。
(1)讀入原始網格數據,其中包含網格內的頂點坐標和與其連接的三角面片的頂點、序列等數據信息。
(2)求出網格內各個頂點的離散曲率K(v)由式得出和局部區域面積LRA(v),將這兩個加權因子與矩陣Q(v)進行加權,得到網格內每個頂點的二次誤差矩陣Q'(v):
式中,K(Lv)為包含頂點v的邊的高斯曲率,Kv為頂點v的高斯曲率。
Kv的表達式為:
式中,為頂點v的鄰接夾角;n為與頂點v相關聯的三角形數目;(v)為頂點v的鄰接三角網格面積之和,即局部區域面積(LRA)。
二次誤差矩陣表達式為:
(3)通過輸入適當的合適的閾值w=0.9,判斷是否為邊界,若為邊界,則設置。
(4)根據步驟2得到每個頂點的二次誤差矩陣Q(v),從而計算得出每條邊的收縮代價c,若(v1,v2)→收縮代價表達式為:
將其放入堆棧中,c值越大,在棧中的位置越靠后,反之,越靠前。
(5)從堆棧中取出收縮代價最小的邊進行收縮操作,即棧頂,同時更新網絡的數據結構,對新的邊折疊代價進行計算并且更新堆棧序列。
(6)如果達到理想簡化要求,則算法結束,否則繼續重復上述過程,直到滿足簡化要求。
5 實驗結果
通過邊折疊法對場景內的模型進行優化處理,優化后的場景不僅具有原有的特征,同時降低了場景復雜度,提高了加載速度(見圖2、圖3)。
參考文獻
[1] 張欣,秦茂玲,謝堂龍.基于特征保持的三角形折疊網格簡化算法[J].計算機技術與發展,2012,22(1):94-97.
[2] 俞靜.三維復雜場景優化處理的研究與實現[D].成都:西南交通大學,2011.endprint