1. 程式人生 > >OSG學習:LOD、資料分頁、動態排程

OSG學習:LOD、資料分頁、動態排程

LOD(level of detail):是指根據物體模型的結點在顯示環境中所處的位置和重要度,決定物體渲染的資源分配,降低非重要物體的面數和細節度,從而獲得高效率的渲染運算。在OSG的場景結點組織結構中,專門提供了場景結點osg::LOD來表達不同的細節層次模型。其中,osg::LOD結點作為父節點,每個子節點作為一個細節層次,設定不同的視域,在不同的視域下顯示相應的子節點。
資料分頁:在城市三維場景中可以採用資料分頁的方式進行動態排程。這裡“分頁”的意思是隨著視口範圍的變化,場景只加載和渲染當前視口範圍內資料,並將離開視口範圍內的資料清除記憶體(可以設定不同的資料解除安裝策略),不再渲染。保證記憶體中只有有限的資料量,場景的每一幀也只有有限的資料被送到圖形渲染管道,從而提高渲染效能。
動態排程

:OSG原始碼中提供PagedLOD來進行模型的動態排程。在不同的視域下,PagedLOD動態讀取不同細節層次的結點模型,實現了分頁LOD顯示。OSG內部採用osgDB::DatabasePager類來管理場景結點的動態排程,場景迴圈每一幀的時候,會將一段時間內不在當前檢視範圍內的場景子樹解除安裝掉,並載入新進入到當前檢視範圍的新場景子樹。OSG採用了多執行緒的方式來完成上述工作。