osg画线_osg 基本几何图元
//osg 基本幾何圖元//ogs中所有加入場景中的數據都會加入到一個Group類對象中,幾何圖元作為一個對象由osg::Geode類來組織管理。//繪制幾何圖元對象時,先創建一個Geometry對象,這個對象中要設置繪制所需的基本信息,圖元的頂點、頂點顏色、頂點關聯方式以及法線。
#include#include#include#include#include
int main(int argc, char**argv)
{
osgViewer::Viewer view;
osg::ref_ptr<:group> root = newosg::Group;#pragma region 幾何圖元模塊osg::ref_ptr<:geometry> geometry = newosg::Geometry;//定義頂點
osg::ref_ptr<:vec3array> vertexArray = newosg::Vec3Array;
geometry->setVertexArray(vertexArray);
vertexArray->push_back(osg::Vec3(-1.f, 0.f, 1.f));
vertexArray->push_back(osg::Vec3(1.f, 0.f, -1.f));
vertexArray->push_back(osg::Vec3(1.f, 0.f, 1.f));//定義顏色數組
osg::ref_ptr<:vec4array> colorArray = newosg::Vec4Array();
geometry->setColorArray(colorArray);
geometry->setColorBinding(osg::Geometry::BIND_PER_VERTEX);
colorArray->push_back(osg::Vec4(1.f, 0.f, 0.f, 1.f));
colorArray->push_back(osg::Vec4(0.f, 1.f, 0.f, 1.f));
colorArray->push_back(osg::Vec4(0.f, 0.f, 1.f, 1.f));//定義法線
osg::ref_ptr<:vec3array> normalArray = newosg::Vec3Array();
geometry->setNormalArray(normalArray);
geometry->setNormalBinding(osg::Geometry::BIND_OVERALL);
normalArray->push_back(osg::Vec3(0.f, -1.f, 0.f));//設置頂點關聯方式//PrimitiveSet類,這個類松散地封裝了OpenGL的繪圖基元,//包括點(POINTS),線(LINES),多段線(LINE_STRIP),封閉線(LINE_LOOP),四邊形(QUADS),多邊形(POLYGON)等。
geometry->addPrimitiveSet(new osg::DrawArrays(osg::PrimitiveSet::POLYGON, 0, 3));//幾何組節點
osg::ref_ptr<:geode> geo = newosg::Geode();
geo->addDrawable(geometry);#pragma endregion root->addChild(geo);
view.setSceneData(root);//view.realize();
view.run();
}
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組成三角形
總結
以上是生活随笔為你收集整理的osg画线_osg 基本几何图元的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机号码要求实名认证但没注册怎么办
- 下一篇: pyqt5中sender方法介绍_【第五