正在加载图片...
l.使用Open Scene Graph几何 本节涵盖了生成基本几何形状的一些方法。生成几何物体的方法有这么几种:在最底层对 OpenGL基本几何进行松散的包装,中级是使用Open Scene Graph的基本形状,以及更高级一些的 从文件读取。这篇教程涵盖的是最低层的。这种方法弹性最大但最费力。通常在Scene Graph级别, 几何形状是从文件加载的。文件加载器完成了跟踪顶点的大部分工作。 1.1背景 对一下几个类的简单解释: Geode类: geode类继承自node类。在一个Scene Graph中,node(当然包含geode)可以作为叶子节点。 Geode实例可以有多个相关的drawable。. Drawable类层次: 基类drawable是一个有六个具体子类的抽象类。 geometry类可以直接有vertex和vertex数据,或者任意个primitiveSet实例。 vertex和vertex属性数据(颜色、法线、纹理坐标)存放在数组中。既然多个顶点可以共享相 同的颜色、法线或纹理坐标,那么数组索引就可以用来将顶点数组映射到颜色、法线、或纹理坐标 数组。 PrimitiveSet类: 这个类松散的包装了OpenGL的基本图形-POINTS,LINES,LINE_STRIP,LINE LOOP,..,POLYGON. 1.2代码 以下这节代码安装了一个viewer来观察我们创建的场景,一个‘group'实例作为scene graph 的根节点,一个几何节点(geode)来收集drawable,和一个geometry实例来关联顶点和顶点数据。 (这个例子中渲染的形状是一个四面体) int main() osgProducer:Viewer viewer; osg::Group*root new osg::Group(); osg:Geode*pyramidGeode new osg:Geode(); osg:Geometry*pyramidGeometry new osg:Geometry(): 下一步,需要将锥体geometry和锥体geode关联起来,并将pyramid geode加到scene graph 的根节点上。 pyramidGeode->addDrawable(pyramidGeometry); root->addChild(pyramidGeode);1 1.使用 Open Scene Graph 几何 本节涵盖了生成基本几何形状的一些方法。生成几何物体的方法有这么几种:在最底层对 OpenGL 基本几何进行松散的包装,中级是使用 Open Scene Graph 的基本形状,以及更高级一些的 从文件读取。这篇教程涵盖的是最低层的。这种方法弹性最大但最费力。通常在 Scene Graph 级别, 几何形状是从文件加载的。文件加载器完成了跟踪顶点的大部分工作。 1.1 背景 对一下几个类的简单解释: Geode 类: geode 类继承自 node 类。在一个 Scene Graph 中,node(当然包含 geode)可以作为叶子节点。 Geode 实例可以有多个相关的 drawable。 Drawable 类层次: 基类 drawable 是一个有六个具体子类的抽象类。 geometry 类可以直接有 vertex 和 vertex 数据,或者任意个 primitiveSet 实例。 vertex 和 vertex 属性数据(颜色、法线、纹理坐标)存放在数组中。既然多个顶点可以共享相 同的颜色、法线或纹理坐标,那么数组索引就可以用来将顶点数组映射到颜色、法线、或纹理坐标 数组。 PrimitiveSet 类: 这个类松散的包装了 OpenGL 的基本图形-POINTS,LINES,LINE_STRIP,LINE_LOOP,...,POLYGON. 1.2 代码 以下这节代码安装了一个 viewer 来观察我们创建的场景,一个‘group’实例作为 scene graph 的根节点,一个几何节点(geode)来收集 drawable,和一个 geometry 实例来关联顶点和顶点数据。 (这个例子中渲染的形状是一个四面体) ... int main() { ... osgProducer::Viewer viewer; osg::Group* root = new osg::Group(); osg::Geode* pyramidGeode = new osg::Geode(); osg::Geometry* pyramidGeometry = new osg::Geometry(); 下一步,需要将锥体 geometry 和锥体 geode 关联起来,并将 pyramid geode 加到 scene graph 的根节点上。 pyramidGeode->addDrawable(pyramidGeometry); root->addChild(pyramidGeode);
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有