osg建立乙個幾何體類

2021-10-04 20:48:25 字數 1907 閱讀 1177

在osg中,需要加入場景中的圖形,都會加入場景圖形類gruop中,來管理。

其中幾何體類為:geode

geode類中,包含了渲染用的幾何資料,包括:

drawable:drawable 類是用於儲存幾何資料資訊的基類,geode 維護了 乙個 drawable 的列表。drawable 是純虛類,無法直接例項化。使用者必 須例項化其派生類,如 geometry,或者 shapedrawable(允許使用者程式 繪製預定義的幾何形狀,如球體、圓錐體和長方體)。

geometry:geometry 類與 primitiveset 類相關聯,實現了對 opengl 頂 點陣列功能的高階封裝。geometry 儲存頂點陣列的資料,紋理座標,顏色,以及法線陣列。

primitiveset:primitiveset 類提供了 opengl 頂點陣列繪圖命令的高層次 支援。使用者可以從相關的 geometry 類中取得儲存的資料,再使用這個 類來指定要繪製的幾何體資料的型別。

vector(vec2,vec3 等):osg 提供了預定義好的二維,三維和四維元素向量,支援 float 或者 double 型別。使用這些向量來指定頂點、顏 色、法線和紋理座標的資訊。

array(vec2array,vec3array 等):osg 定義了一些常用的陣列型別, 如用於貼圖紋理座標的 vec2array。指定頂點陣列資料時,程式首先將 幾何資料儲存到這些陣列中,然後傳遞至 geometry 類物件。

#include #include #include #include #include #include int main(int argc, char** ar**)

addprimitiveset繪製方式:

mode

關聯方式

作用points

繪製點繪製使用者指定的所有頂點。

lines

繪製直線

直線的起點、終點由陣列中先後相鄰的兩個點決定;使用者提供的點不止兩個時,將嘗試繼續繪製新的直線。

line_strip

繪製多段直線

多段直線的第一段由陣列中的前兩個點決定;其餘段的起點位置為上一段的終點座標,而終點位置由陣列中隨後的點決定。

line_loop

繪製封閉直線

繪圖方式與多段直線相同,但是最後將自動封閉該直線。

********s

繪製三角形

三角形的三個頂點由陣列中相鄰的三個點決定,並按照逆時針的順序進行繪製;使用者提供的點不止三個時,將嘗試繼續繪製新的三角形。

********_strip

繪製多段三角形

第一段三角形的由陣列中的前三個點決定;其餘段三角形的繪製,起始邊由上一段三角形的後兩個點決定,第三點由陣列中隨後的一點決定。

********_fan

繪製三角扇面

第一段三角形的由陣列中的前三個點決定;其餘段三角形的繪製,起始邊由整個陣列的第一點和上一段三角形的最後乙個點決定,第三點由陣列中隨後的一點決定。

quads

繪製四邊形

四邊形的四個頂點由陣列中相鄰的四個點決定,並按照逆時針的順序進行繪製;使用者提供的點不止四個時,將嘗試繼續繪製新的四邊形。

quad_strip

繪製多段四邊形

第一段四邊形的起始邊由陣列中的前兩個點決定,邊的向量方向由這兩點的延伸方向決定;起始邊的對邊由其後的兩個點決定,如果起始邊和對邊的向量方向不同,那麼四邊形將會扭曲;其餘段四邊形的繪製,起始邊由上一段決定,其對邊由隨後的兩點及其延伸方向決定。

polygon

繪製任意多邊形

根據使用者提供的頂點的數量,繪製多邊形。

osg中幾何體繪製筆記(一)

1 複雜的場景都是由少數的基本圖元構成。我們可以通過構建簡單的圖元來實現複雜場景。2 osg中定義了純基類drawable作為幾何圖元的基類。從drawable派生出9個類,其中比較重要的為geometry和shapedrawable。geometry用來繪製幾何體,使用比較靈活,而shapedra...

OSG學習 基本幾何體繪製示例

繪製並渲染幾何體主要有如下3大步驟 1.建立各種向量資料,如頂點 紋理座標 顏色和法線等。需要注意的是,新增頂點資料時主要按照逆時針順序新增,以確保背面剔除的正確。2.例項化乙個幾何體物件 osg geometry 設定頂點座標陣列 紋理座標陣列 顏色陣列 法線陣列 繫結方式及資料解析。3.加入葉節...

OSG基本幾何體的透明效果和網格模型

使用osg中自定義的基本幾何體,並設定其透明的效果和網格模型,以圓錐為例。首先建立圓錐 osg ref ptrgeode new osg geode 生成圓錐 m pcone new osg cone m pcone setheight 30 m pcone setradius 30 osg ref...