1

我加载 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]));

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

4

1 回答 1

2

希望这可以帮助!我认为您只是缺少数字 3!

glDrawElements(GL_TRIANGLES, 3 * model->numTriange, GL_UNSIGNED_SHORT,
             &(model->indexArray[0]));
于 2012-01-17T15:11:28.047 回答