使用OpenGL在Maya中绘制多边形线

时间:2014-09-17 23:49:55

标签: c++ opengl maya

我正在寻找使用openGL在Maya中绘制多边形线框的快速方法。我有一个有效的解决方案,但对于复杂的场景来说它非常慢。

我也有一个使用MGeometry和MGeometryPrimitive的快速解决方案,但它给了我三角形,我无法看到获得多边形定义的方法。

我只对点和多边形定义感兴趣,我不关心法线,紫外线等。

这是我工作缓慢的解决方案:

MPointArray points;
for (MItMeshPolygon oPolyIter(object); !oPolyIter.isDone(); oPolyIter.next())
{
    gGLFT->glBegin(MGL_LINE_LOOP);
    oPolyIter.getPoints(points);
    for (unsigned int i = 0; i < points.length(); i++)
        gGLFT->glVertex3d(points[i].x, points[i].y, points[i].z);
    gGLFT->glEnd();
}

任何想法或指示?

1 个答案:

答案 0 :(得分:0)

经过一番研究,我想出了这个解决方案,它的运行速度要快得多。

gGLFT->glPolygonMode(MGL_FRONT_AND_BACK, MGL_LINE);
MIntArray verts;
UintArray vertIds;
for (int i = 0 ; i < mesh.numPolygons(); i++)
{
    mesh.getPolygonVertices(i, verts);
    vertIds.convert(verts);
    gGLFT->glDrawElements(GL_POLYGON, verts.length(), GL_UNSIGNED_INT, vertIds.data() );
}