无法使用 OpenGL ES 1.x C++绘制加载的模型

Can't draw loaded models in OpenGL ES 1.x with C++

本文关键字:绘制 C++ 加载 模型 OpenGL ES      更新时间:2023-10-16

我加载obj模型,并尝试使用Android NDK:用OpenGL ES渲染它们

class ObjModel{
public:
    ObjModel();
    ~ObjModel();
    int numVertex, numNormal,numTexCoord, numTriange;
    float *vertexArray;
    float *normalArray;
    float *texCoordArray;
    unsigned short *indexArray;
    void loadModel(string fileName);
};
model->loadModel(filename);
glVertexPointer(3, GL_FLOAT, 0,  &(model->vertexArray[0]));
glNormalPointer(GL_FLOAT, 0,  &(model->normalArray[0]));
glDrawElements(GL_TRIANGLES, model->numTriange, GL_UNSIGNED_SHORT,
                 &(model->indexArray[0]));

模型没有完全渲染,我只看到它的一部分。我检查了数组中的数据,它们得到了正确的解析。我认为唯一的问题可能是通过争论。我做得对吗?

希望这能有所帮助!我想你只是错过了数字3!

glDrawElements(GL_TRIANGLES, 3 * model->numTriange, GL_UNSIGNED_SHORT,
             &(model->indexArray[0]));