Cloud Studio代码运行 #include<iostream>#include<Windows.h>#include<osgViewer/Viewer>#include<osgDB/ReadFile>#include<osgUtil/Tessellator>#include<osg/TriangleFunctor>using namespace std;using namespace osg;osg::ref_ptr<osg::Geometry>redPolygon;//计算空间三角形的面积doubleCalTriangleArea(constosg::...
osg::Image类存储OpenGL纹理对象载入与使用的图像数据,其中方法data()将原始图像数据作为uchar* 指针返回,可以直接修改内存中数据,方法getPixelFormat方法返回像素格式,getDataType返回每个像素通道数据类型,方法allocateImage为图片预先分配一块缓存。 osg中使用纹理需要:设置Geometry的纹理坐标;创建合适的纹理对象;为图片绑定...
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...
osg::Geometry类支持所有的属性数组,可以通过set * Array()类型的方法设置。 原则上,有必要为每个顶点设置属性,这会导致形成多个相同大小的属性数组 - 否则数组大小的不匹配会导致引擎出现未定义的行为。 OSG 支持各种链接顶点属性的方法,例如: geom->setColorBinding(osg::Geometry::BIND_PER_VERTEX); 表示每个顶点...
osg::ref_ptr<osg::Geometry> pGeometry = new osg::Geometry; // 步骤二:绑定顶点 osg::ref_ptr<osg::Vec3Array> pVec3Array = new osg::Vec3Array; pGeometry->setVertexArray(pVec3Array); #if 0 pVec3Array->push_back(osg::Vec3( 300.0, 100.0, 0.0)); ...
首先来看一些OSG中的最基本的绘制路数。如果我们要绘制一个正方形,绘制有色彩,未贴图。首先我们必须要申请一个osg::Geometry,把这个Geometry加入到Geode就可以了。在这个Geometry中要设置一些元素,最基本的是顶点Vertex,颜色color,以及顶点的关联方式和法线normal.就可以了。如下图所示 ...
另一个要点是设置对象osg::Geometry中每个顶点的纹理坐标。这些坐标的传输通过osg::Vec2Array和osg::Vec3Array数组通过调用setTexCoordArray()方法进行。 设置纹理坐标后,我们需要设置纹理槽号(unit),因为OSG支持在同一几何体上施加多个纹理。使用一个纹理时,unit的值始终为 0。例如,以下代码演示了单元 0 几何图形的...
#include<osgDB/ReadFile>#include<osgViewer/Viewer>#include<osg/MatrixTransform>#include<osg/Geometry>#include<osg/Node>#include<osg/Geode>osg::ref_ptr<osg::Node>createQuad(){// 首先创建一个osg::Geometry,把这个Geometry对象加入到Geode类对象中。// 这个Geometry对象中要设置绘制所需的基本信息:// ...
osg::Geometry类支持所有的属性数组,可以通过set * Array()类型的方法设置。 原则上,有必要为每个顶点设置属性,这会导致形成多个相同大小的属性数组 - 否则数组大小的不匹配会导致引擎出现未定义的行为。 OSG 支持各种链接顶点属性的方法,例如: geom->setColorBinding(osg::Geometry::BIND_PER_VERTEX); ...
二、 geometry和geode 显然,geode是几何节点,且是叶节点,geometry类管理osg中各种各样的几何体。 个人总结:在使用geode画osg自带的几何图形时,总是: 声明geode节点 创建几何对象 设置几何对象的参数 申请一个osg::ShapeDrawable geode->addDrawable 列子: