Level of Detail 細節層次





        Level of Detail 細節層次簡稱LOD,屬於虛擬現實中的重要技術。LOD表示了一種技術概念,即視頻中物體細緻程度隨著距離的改變而變化,因而同一物體的細緻度有不同層次的顯示。
        在計算機圖形學中,細節層次涉及當3D模型遠離觀察者或根據其它因素(例如對象重要性,視點相對速度或位置)減小3D模型顯示的複雜性。細節層次技術通過減少顯卡上的工作負載(通常是頂點變換)來提高渲染的效率。此時模型低畫質容易被忽略,因為當遠距離或快速移動時對物體外觀的影響很小。
        雖然通常情況下LOD僅應用於幾何細節,但是基本概念是廣義的。最近,LOD技術還包括著色器管理以保持控制像素複雜性。一種細節層次管理形式已經應用於紋理貼圖多年,在mipmapping的名稱下,也提供更高的渲染質量。
        當對像被底層LOD算法簡化時,通常的說法是“一個對象已經LOD'd”。


目錄

        1.歷史
        2眾所周知的方法
        2.1離散LOD的詳細信息
        2.2離散LOD示例
        2.3分層LOD
        3實際應用
        3.1視頻遊戲
        3.2GIS 和 3D 城市模型的詳細程度
        3.3渲染和模型軟件


歷史

        所有用於3D計算機圖形的LOD算法的起源可以追溯到James H.Clark在1976年10月的ACM通信雜誌中的文章。當時,計算機是單片機和罕見的,圖形由研究人員驅動。硬件本身是完全不同的,在架構和性能方面。因此,對於今天的算法可以觀察到許多差異,但是也存在許多共同點。
        現在提出相同的環境結構作為控制不同細節的方式,從而避免不必要的計算,同時提供足夠的視覺質量:
        例如,十二面體從足夠大的距離看起來像球體,因此可以用於對其建模,只要從那個或更的距離觀察即可。然而,如果更仔細地觀察它,它將看起來像十二面體。對此的一個解決方案是,簡單地用最詳細來定義它將是必要的。然而,其可能具有比在大距離處顯示出它的更多細節,並且在許多這樣對象的複雜環境中,將存在太多的多邊形(或其他幾何單元)以使可見表算法有效地處理。
        所提出的算法想象樹狀數據結構,其在弧中編碼變換和轉換到更詳細的對象。以這種方式,每個節點編碼對象,根據快速啟發式,由樹下降到為每個對象提供更多細節的葉。當達到葉時,當需要更高的細節時,可以使用其他方法,例如Catmull的遞歸細分。
        重要的是,在復雜環境中,關於環境中各種對象呈現的信息量,根據那些對象佔據視場的分數而變化。


眾所周知的方法

        雖然上面介紹的算法涵蓋了全部的細節層次管理技術,但是現實世界的應用通常採用針對正在呈現的信息定制的不同方法。基於對象的外觀,主要使用兩算法體系。
        第一種是基於將有限區域中的空間細分,每個區域具有一定的細節程度結果是離散數量的細節級別,從中可以命名離散LOD(DLOD)。沒有辦法支持此級別LOD在級別間平滑過渡,雖然Alpha混合技術或影像变形技術可以用於避免視頻噪點。
        第二種是將多邊形網格渲染為必須被評估的函數,其要避免某些啟發式(通常是距離)函數的過多錯誤。然後連續地評估給定的“網格”函數,並且根據視覺質量和性能之間的折中點產生優化的版本。這些類型的算法通常稱為連續LOD(CLOD)。
各種DLOD範圍的示例。較暗的區域意味著以更高的細節呈現。執行額外的揀選操作,丟棄平截頭體外的所有信息(彩色區域)。
        離散LOD詳情
        離散LOD(DLOD)的基本概念是提供表示相同對象的各種模型。獲得這些模型需要外部算法,其通常是不平凡的並涉及許多多邊形減少技術。連續LOD算法將簡單地假設這些模型可用。
        DLOD算法通常用於易存儲的小數據集的性能密集型應用中。雖然可以使用核外算法,但是信息粒度不太適合這種應用。這種算法通常更容易工作,提供更快的性能和更低的CPU使用率,因為涉及到少數操作。
        DLOD方法通常用於“獨立”移動對象,可能包括複雜的動畫方法。不同的方法用於Geomipmapping,一種流行的地形渲染算法,因為這適用於圖形和拓撲不同於“對象”網格的地形網格。代替計算誤差並根據此簡化網格,Geomipmapping採用固定的縮小方法,評估引入的誤差,併計算誤差可接受的距離。雖然簡單,算法提供了體面的性能。
         離散LOD例子
        作為一個簡單的例子,考慮一個球體。離散LOD方法將緩存一定數量的模型以在不同距離使用。因為該模型可以被程序由它產生數學公式,利用分佈在表面上的不同量的採樣點是足以產生所需的各種模型。此案例不是一個LOD-ing算法。
視覺衝擊比較和測量
圖片具有超過5000個採樣點的精細流線型線框球體。高度流甦的線框球體,差不多2900點。線框球體,具有大約1600個採樣點。線框球體具有近700個頂點,當從遠處觀看時效果良好。線框球體具有少於150個採樣點,但仍足以用於遠處的對象。
頂點〜5500〜2880〜1580〜670140
説明
最大的細節,
特寫。
最小的細節,
非常遠的對象。
        為了模擬逼真的變換邊界場景,可以使用專門的書寫程序。使用簡單的算法和最小的片段操作以確保不超出CPU限制。每個幀,程序將計算每個球體的距離,並根據這個信息從池中選擇一個模型。為了容易地示出概念,使用每個模型的距離在源中硬編碼。更多涉及的方法將根據所選擇的距離來計算適當的模型。
        OpenGL用於渲染,因為它能高效管理小批量,將每個模型存儲在顯示列表中,從而避免通信開銷。通過應用理想地位於無限遠處的兩個定向光源來給出額外的頂點負載。
        下表比較了LOD感知呈現和完整詳細(蠻力)的性能。
視覺衝擊比較和測量
蠻力DLOD比較
渲染圖像場景在最大細節。與上面相同的場景啟用lodding。幾乎黑色的差別圖像顯示沒有容易注意到的差異。
渲染時間27.27毫秒1.29毫秒21×減少
場景頂點2,328,480109,44021×減少

        分層LODHLOD 
        因為硬件面向大量的細節,渲染小多邊形對象可能會降低性能,HLOD通過將不同的對象組合在一起來避免這個問題,以實現更高的效率。


實際應用

        視頻遊戲
        LOD在3D視頻遊戲中尤其有用。視頻遊戲開發者希望為玩家提供全面的世界,但總是受硬件、幀數和顯卡的實效限制。隨著20世紀90年代3D遊戲的出現,許多視頻遊戲根本沒有渲染遠處的結構或物體。只有附近的物體將被渲染,更遠的部分將逐漸褪色,基本上以距離霧實現。使用LOD渲染的視頻遊戲避免了這種霧現象,並可以渲染更大的區域。3D視頻遊戲中LOD渲染的一些典型的早期示例包括Spyro the Dragon,Crash Bandicoot:Warped,Unreal Tournament和Serious Sam引擎。

        GIS和3D城市模型詳細程度
        LOD在GIS和3D城市模型中有一個類似的概念,它表示對現實世界細節表現的程度,以及模型在真實世界中的相似程度。除了幾何復雜性之外,可以在模型的LOD中參考其他因素,例如空間、紋理和細節。標準的CityGML屬於LOD分類之一。
        GIS中“LOD-ing”的類比稱為泛化。

        渲染和模型軟件
        ● MeshLab是一種開源的網格處理工具,能夠精確簡化3D多邊形網格。
        ● Polygon Cruncher 是Mootools的商業軟件,可以減少對象的多邊形數量,而不改變其外觀。
        ● Simplygon 一個商業網格處理包,用於將一般輸入網格重新映射為實時可渲染網格。
        ● Vizup 3D模型優化和多邊形減少SDK,以減少模型大小,提高渲染速度,同時保持可視化質量。
        ● Rational Reducer
        ● Pro Optimizer
        ● GPure 屬DeltaCAD的商業軟件,適應平板電腦和智能手機顯示的DMU。


參見

        ● 虛擬現實