在iPhone3GS的iOS 5中,GLD元素取得了成功。但在iPhone5的iOS 6中,它会引发崩溃

在iPhone3GS的iOS 5中,GLD元素取得了成功。但在iPhone5的iOS 6中,它会引发崩溃,iphone,opengl-es,ios6,crash,exc-bad-access,Iphone,Opengl Es,Ios6,Crash,Exc Bad Access,我在iPhone3GS和iOS5.1上开发了一个OpenGLES2.0程序。它使用了gldrawerelementsOpenGl函数 在iPhone3GS中,此代码成功返回。但在iOS 6.0.2的iPhone 5中,抛出EXEC\u BAD\u访问 我不知道为什么。我称之为带索引的元素。小尺度网格数据在iPhone3GS和iPhone5中都得到了很好的处理。但iPhone5中的大规模网格数据是错误的 EXEC\u BAD\u访问被抛出“gleRunVertexSubmitARM” 给我看看窍门

我在iPhone3GS和iOS5.1上开发了一个OpenGLES2.0程序。它使用了
gldrawerelements
OpenGl函数

在iPhone3GS中,此代码成功返回。但在iOS 6.0.2的iPhone 5中,抛出
EXEC\u BAD\u访问

我不知道为什么。我称之为带索引的元素。小尺度网格数据在iPhone3GS和iPhone5中都得到了很好的处理。但iPhone5中的大规模网格数据是错误的

EXEC\u BAD\u访问
被抛出“
gleRunVertexSubmitARM

给我看看窍门

下面是代码。 帮帮我

glEnable(GL_深度_测试);
GlenableVertexAttributeArray(_位置插槽);
glvertexattributepointer(_positionSlot,3,GL_FLOAT,GL_FALSE,0,(void*)和mesh2->顶点[0][0]);//ES 2.0
GlenableVertexAttributeArray(_normalSlot);
glvertexattributepointer(_normalSlot,3,GL_FLOAT,GL_FALSE,0,(void*)和mesh->normals[0][0]);//ES 2.0

GLD元素(GL_三角形,网格2->faces.size()*3,GL_无符号,网格2->faces[0]。索引[0]);// 我已经解决了这个问题。所讨论的代码是完美的。我发现在其他源代码中,GLDISABLEVERTEXATTRIBARY不是在GLENABLEVERTEXATTRIBARY之后成对调用的。我修好了,跑得很好。
谢谢。

\u positionSlot和\u normalSlot与着色器的slot链接_positionSlot=GLGetAttriblLocation(程序,“a_位置”)_normalSlot=glGetAttribLocation(程序,“a_normal”);为什么法线来自其他网格,然后是verices和faces?我已经用mesh2中的原始法线数据重建了新法线,并将其保存到mesh。这段代码在iPhone3GS中运行良好,但在iPhone5中没有。
glEnable(GL_DEPTH_TEST);
glEnableVertexAttribArray(_positionSlot);
glVertexAttribPointer(_positionSlot, 3, GL_FLOAT, GL_FALSE ,0, (void*)&mesh2->vertices[0][0]); // ES 2.0

glEnableVertexAttribArray(_normalSlot);
glVertexAttribPointer(_normalSlot, 3, GL_FLOAT, GL_FALSE ,0, (void*)&mesh->normals[0][0]); // ES 2.0

glDrawElements(GL_TRIANGLES, mesh2->faces.size()*3,GL_UNSIGNED_SHORT, &mesh2->faces[0].indices[0]); // <= Crash in iPhone5.