我们使用StateSet类来控制几何基元的渲染状态下面的代码演示了从文件中读取纹理,创建StateSet类并设置纹理以及关联StateSet到场景节点的方法。代码的前一部分与上一章教程相同首先我们初始化视窗并创建只有单一金字塔的场景。
// 声明场景的根节点现在我们添加纹理我们定义一个纹理实例并设置其数据变更类型为“DYNAMIC”(否则的话,OSG的优化过程中可能会自动去除这个纹理)纹理类封装了OpenGL纹理模式(GL_TEXTURE_WRAP,GL_TEXTURE_FILTER等)以及一个osg::Image对象。下面的代码将演示如何从攵件读入osg::Image实例并将其关联到纹理
//避免在优化过程中出错 // 将图片关联到纹理Texture类可以关联到渲染状态StateSet类。下一步我们将创建一个StateSet将纹理关聯到这个渲染状态实例并允许使用纹理,最后将StateSet关联到几何体节点上
// 将渲染状态关联给金字塔节点 //最后我们进入仿真循环://为每个顶点指定一种颜色
//顶点是三维陈列,顺序是逆时针方向
二. 使用osg中定义的一些图形