C++ OpenSceneGraph:分析一个scenegraph

C++ OpenSceneGraph:分析一个scenegraph,c++,opengl,openscenegraph,C++,Opengl,Openscenegraph,我想通过OSG阅读一个3D模型,并学习有关顶点、法线和纹理坐标等的3D模型信息 我不理解下面的代码()。为什么我们使用prset->index(ic)作为索引?我很困惑(*顶点)是顶点数组,但什么是prset->index(ic) 对于(ic=0;icgetNumIndices();ic++){//NB,顶点保存在可绘制图形中- osg::notify(osg::WARN)如果您的drawable使用索引原语,您需要取消引用索引数组中的三角形顶点,因为您可能会重复使用顶点数组的共享顶点。 类似于

我想通过OSG阅读一个3D模型,并学习有关顶点、法线和纹理坐标等的3D模型信息

我不理解下面的代码()。为什么我们使用
prset->index(ic)
作为索引?我很困惑
(*顶点)
是顶点数组,但什么是
prset->index(ic)

对于(ic=0;icgetNumIndices();ic++){//NB,顶点保存在可绘制图形中-

osg::notify(osg::WARN)如果您的drawable使用索引原语,您需要取消引用索引数组中的三角形顶点,因为您可能会重复使用顶点数组的共享顶点。
类似于。

谢谢你的回答,但实际上我不知道如何从绘图或几何图形中获取索引数组。有什么想法吗?答案在你发布的代码中:你通过
prset->index(ic)从原语集获取ic th索引
并使用这样的索引访问顶点数组中的对应顶点。谢谢我刚刚得到它。我使用了正确的索引,但由于取消引用而犯了一些其他错误。现在,我对GL_三角形使用这样的方法:“tri.a=prset->index(i2)”,“tri.b=prset->index(i2+1)”和“tri.c=prset->index(i2+2)”
for (ic=0; ic<prset->getNumIndices(); ic++) { // NB the vertices are held in the drawable -
    osg::notify(osg::WARN) << "vertex "<< ic << " is index "<<prset->index(ic) << " at " <<
        (* verts)[prset->index(ic)].x() << "," <<
        (* verts)[prset->index(ic)].y() << "," << 
        (* verts)[prset->index(ic)].z() << std::endl;
}