android - 无法使用 C++ 在 OpenGL ES 1.x 中绘制加载模型

标签 android c++ opengl-es qcar-sdk

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

关于android - 无法使用 C++ 在 OpenGL ES 1.x 中绘制加载模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8896951/

相关文章:

android - 如何使用 Gradle 将库与我的 Android 项目一起使用?

java - 服务未注册 : org. OpenUDID.OpenUDID_manager@2b038438

c++ - std :map 中的浮点键

iphone - 有没有任何工具可以将 PVR 纹理分割成一组图 block ?

android - OpenGL ES 2.0 渲染不正确

iphone - 硬件加速图像比较/搜索?

android - 以编程方式获取强调色(从模块)

android - MPAndroidChart 值与图例相交并从条形图上方删除 y 值

c++ - 为什么 const_cast 删除指针的 constness 而不是指向 const 的指针?

c++ - 如何在 Qt Creator 中包含 boost header 库