lod是level of detail 的縮寫,lod允許程式根據攝像機與物體的距離,來決定使用哪個模型。
使用lod是為了兼顧程式的執行效率與物體顯示的精細程度。當物體離攝像機很遠的時候,物體看起來就是乙個點,這時候你使用再精細的模型,最終螢幕上成像也是乙個點。而你用的模型越精細,計算機內部需要的計算量越大。所以當物體離相機遠的時候,使用粗略模型,當物體離相機近的時候,使用精細模型。
#include
#include
#include
int main(int argc, char** argv)
osg中的lod的使用比較簡單,osg內部已經給我們處理好了,只需要告訴osg,在什麼距離範圍內,使用使用模型就可以了。比如上面**,物體與攝像機距離在0~20的範圍內,使用牛的模型(cow.osg),在20~100的範圍內,使用飛機模型(cessna.osg),在100~flt_max的範圍內,使用時鐘模型(clock.osgt)。
另外,由於osg::lod繼承自group類,所以它本身可以直接被加入場景中。
OSG中圓錐的使用
以前寫的一些測試程式,整理一下,看什麼時候需要用的時候能把功能盡快新增到工程中。圓錐的使用,包括圓錐大小的定義,圓錐的顏色修改,圓錐的透明效果,圓錐的線框模型,圓錐的旋轉,圓錐的中心點。如下 pragma comment lib,osg.lib pragma comment lib,osgdb.li...
《OSG3 4 0》Part2 OSG中的多執行緒
osg中的多執行緒 osg中的多執行緒是通過openthreads實現的。主要有七大類 thread 預設建構函式 static int yieldcurrentthread 要求當前執行緒出讓cpu控制權,交給其他正在等待的執行緒 int start 啟動執行緒。此時將自動開始執行執行緒的run ...
osg的shader使用過程
方法一 osg 建立shader osg shader vshader new osg shader osg shader vertex,vertexsource osg shader gshader new osg shader osg shader geometry,geomsource osg...