【學習筆記】OSG 基本幾何圖元


例:geom->addPrimitiveSet(new osg::DrawArrays(osg::PrimitiveSet::QUADS,0,4));

來指定要利用這些數據生成一個怎么樣的形狀。

 該行代碼中,使用DrawArrays類向Geometry類送入了新幾何體的信息,即,該幾何體是一個QUADS,它的頂點坐標從索引數組中讀入,從第1個索引值開始,共讀入4個索引值,組成一個四邊形圖形。

幾何體的形狀參數除了QUADS之外,還有數種方式,以用於不同的用戶需求,列表如下:

POINTS

繪制點

繪制用戶指定的所有頂點。

LINES

繪制直線

直線的起點、終點由數組中先后相鄰的兩個點決定;用戶提供的點不止兩個時,將嘗試繼續繪制新的直線。

LINE_STRIP

繪制多段直線

多段直線的第一段由數組中的前兩個點決定;其余段的起點位置為上一段的終點坐標,而終點位置由數組中隨后的點決定。

LINE_LOOP

繪制封閉直線

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

TRIANGLES

繪制三角形

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

TRIANGLE_STRIP

繪制多段三角形

第一段三角形的由數組中的前三個點決定;其余段三角形的繪制,起始邊由上一段三角形的后兩個點決定,第三點由數組中隨后的一點決定。

TRIANGLE_FAN

繪制三角扇面

第一段三角形的由數組中的前三個點決定;其余段三角形的繪制,起始邊由整個數組的第一點和上一段三角形的最后一個點決定,第三點由數組中隨后的一點決定。

QUADS

繪制四邊形

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

QUAD_STRIP

繪制多段四邊形

第一段四邊形的起始邊由數組中的前兩個點決定,邊的矢量方向由這兩點的延伸方向決定;起始邊的對邊由其后的兩個點決定,如果起始邊和對邊的矢量方向不同,那么四邊形將會扭曲;其余段四邊形的繪制,起始邊由上一段決定,其對邊由隨后的兩點及其延伸方向決定。

POLYGON

繪制任意多邊形

根據用戶提供的頂點的數量,繪制多邊形。

 

 

和opengl對比:

osg::PrimitiveSet::POINTS對應OpenGL中的GL_POINTS繪制單獨的點
osg::PrimitiveSet::LINES對應OpenGL中的GL_LINES繪制每兩點連接的線
osg::PrimitiveSet::LINE_STRIP對應OpenGL中的GL_LINE_STRIP繪制依次連接各點的線
osg::PrimitiveSet::LINE_LOOP對應OpenGL中的GL_LINE_LOOP繪制依次連接各點的線,首尾相連
osg::PrimitiveSet::POLYGON對應OpenGL中的GL_POLYGON繪制依次連接各點的多邊形
osg::PrimitiveSet::QUADS對應OpenGL中的GL_QUADS繪制依次連接每四點的四邊形
如:1、2、3、4、5、6、7、8點 繪制結果1、2、3、4組成四邊形,5、6、7、8組成四邊形
osg::PrimitiveSet::QUAD_STRIP對應OpenGL中的GL_QUAD_STRIP繪制四邊形
如:1、2、3、4、5、6、7、8點 繪制結果1、2、3、4組成四邊形,3、4、5、6組成四邊形、5、
6、7、8組成四邊形
osg::PrimitiveSet::TRIANGLES對應OpenGL中的GL_TRIANGLES繪制每三點連接的三角形
如:1、2、3、4、5、6點 繪制結果1、2、3組成三角形,4、5、6組成三角形
osg::PrimitiveSet::TRIANGLE_STRIP對應OpenGL中的GL_TRIANGLE_STRIP
如:1、2、3、4、5、6點 繪制結果1、2、3組成三角形,2、3、4組成三角形,3、4、5組成三角
形4、5、6組成三角形
osg::PrimitiveSet::TRIANGLE_FAN對應OpenGL中的GL_TRIANGLE_FAN
如:1、2、3、4、5、6點 繪制結果1、2、3組成三角形,1、3、4組成三角形,1、4、5組成三角
形,1、5、6組成三角形


免責聲明!

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



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