我在ios的Opengles代码中上传了一个带有以下模型加载器的模型。
http://bill.dudney.net/roller/objc/entry/wave_front_obj_textures_working
现在的问题是,当我想用这个模型加载器和下面的代码一起绘制一个立方体
const GLfloat floorVertices[] = {
-1.0, 1.0, 0.0, // Top left
-1.0, -1.0, 0.0, // Bottom left
1.0, -1.0, 0.0, // Bottom right
1.0, 1.0, 0.0 // Top right
};
glVertexPointer(3, GL_FLOAT, 0, floorVertices);
glEnableClientState(GL_VERTEX_ARRAY);
glRotatef(90.0, 0.0, 1.0, 0.0);
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
它在glDrawArrays(GL_TRIANGLE_FAN,0,4)上崩溃并出现EXC_BAD_ACCESS错误
我通过互联网搜索了这个问题,但不能简单解决或解释。这是另一个关于它的问题,但由于缺乏关于opengles的知识,我无法得到答案。
glDrawArrays crash with EXC_BAD_ACCESS
任何人都可以解决这个问题或者已经问过的问题的简单解释。提前谢谢
答案 0 :(得分:4)
这可能是因为其他顶点数组仍然被启用,而OpenGL的指针尚未被清除,导致OpenGL取消引用悬空指针。
使用OpenGL Frame Debugger或glGetIntegerv()查看是否启用了任何其他数组类型(COLOR_ARRAY,NORMAL_ARRAY,GL_TEXTURE_COORD_ARRAY)。