OSG學習過程中的筆記


0、Geode Drawable Shape Geometry 

      http://blog.csdn.net/sunxiaoju/article/details/50220353

1、osg庫:

Notify:osg庫提供了一系列的控制調試,警告和錯誤輸出的函數。用戶可以通過指定一個來自notifyseveritu枚舉量的數值,設定輸出的信息量。

 osg::Camera    為視口添加camera的類。用於顯示。

osg::MatrixTransform  這時一個最常用的移動節點的類,可以隨動、旋轉控制節點。這些操作都是乘矩陣得到。 平移、縮放、旋轉

 

2、交運算osgUtil庫:

通過提供大量用於場景圖形交運算,使用如下類可以獲得場景圖形中被拾取部分的信息:

Intersector:純虛類,定義了相交測試的接口。執行相交測試時,應用程序將繼承自intersector的某個類實例化,傳遞給intersectionvisitor的實例,並隨后請求該實例返回數據以獲取交運算的結果。

intersectionVisitor:搜索場景圖形中與指定幾何體相交的節點,而最后的測試工作由intersector繼承類完成。

lineSegmentIntersector:繼承自intersector,用於檢測指定線段和場景圖形之間的相交的節點,並向程序提供查詢相交測試結果的函數。

PolytopeIntersector:與LineSegmentIntersector類似,該類用於檢測由一系列平面構成的多面體的相交情況。當用戶點擊鼠標,希望拾取到鼠標位置附近的封閉多面體區域時,PolytopeIntersector有效

PlaneIntersector:與LineSegmentIntersector類似,用於檢測由一系列平面構成的平面相交情況

 

3、漫游器

漫游器是操作器中很重要的一種,實現自定義的操作器。osg自帶的操作器是TrackBall。

場景的核心管理器是viewer,而漫游時需要響應事件,如鼠標移動,場景也會隨之變化,響應事件的類是osgGA::GUIEventHandler。需要從響應事件的類派生一個新類出來,這個類專門用於根據響應控制viewer。這個類就是osgGA::CameraManipulator,這個類有一些操作矩陣的公共接口,而viewer在渲染時又會去讀取這些矩陣,通過操作變換矩陣,這些接口就可以有效控制viewer了。

4、視景器

      視景器包括幾個最主要的組件:漫游器_cameraManipulator,用於實現交互式的場景漫游;事件處理器組_eventHandlers,負責處理視景器的事件隊列_eventQuene,主要是鍵盤鼠標事件的處理;場景_scene,它包括視景器所對應的場景圖形根節點,以及用於提高節點和圖像數據處理速度的兩個分頁數據庫:攝像機_camera和_slaves,前者為場景的住攝像機,后者為從攝像機,不過OSG並沒有規定一定要使用主攝像機來顯示場景,它的更重要的作用是為OSG世界矩陣的計算提供依據。

      攝像機是OSG視圖顯示的核心器件,沒有攝像機就沒有辦法將場景圖形的實景展現給用戶。它包括:

       1.視口(viewport),它指示了攝像機顯示窗口的位置和尺寸。

       2.圖形上下文(GraphicsContext),通常這就是平台相關的圖形顯示窗口(即GraphicsWindow,對於Win32系統而言,它實際是通過CreateWindowEx這個API創建的),不過也可能是離屛渲染的設備。

        3.渲染器(GraphicsOperation,更多時候是osgViewer::Renderer)這時整個OSG篩選(CULL)和繪制(DRAW)的關鍵。

 

5、多視口的創建

        1、多相機創建多視口

        一個視景器,一個圖形上下文,多個相機。

        2、多窗口創建多視口

         一個視景器,多個圖形上下文,多個相機。每一個窗口都包含一個設備上下文。

         3、CompositeViewer創建多視口

    多個視景器,多個相機,一個圖形上下文。很多程序的首選。不僅可以讓數據在各個viewer之間方便的傳遞,也可以讓各個viewer獨立運作,每個viewer可以使用不同的操作器。

 

 6、強指針與弱指針

OSG中有兩種智能指針類型,ref_ptr(強)observer_ptr(弱)。observer_ptr指向一個對象,但它沒有引用計數功能,僅僅記錄該對象的地址,當該對象在其他地方被銷毀后,通過observer_ptr獲得對象地址將為空。

  7、osg中常用的事件類型枚舉

《三維視景仿真技術開發詳解》P119     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM