日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

osg画线_osg 基本几何图元

發布時間:2024/10/8 编程问答 83 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 基本几何图元的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。