J'ai récemment résolu un problème qui a empêché mon éclairage de travailler dans une application iOS OpenGL ES:Multiple Vertex buffers OpenGL ES sur iOS
je résolu le problème en remplaçant
glEnable(GL_DEPTH_TEST);
glGenVertexArraysOES(1, &_vertexArray);
glBindVertexArrayOES(_vertexArray);
glGenBuffers(1, &_vertexBuffer);
glBindBuffer(GL_ARRAY_BUFFER, _vertexBuffer);
glBufferData(GL_ARRAY_BUFFER, loader.currentCountOfVerticies * sizeof(GLfloat) * 3, arrayOfVerticies, GL_STATIC_DRAW);
glEnableVertexAttribArray(GLKVertexAttribPosition);
glVertexAttribPointer(GLKVertexAttribPosition, 3, GL_FLOAT, GL_FALSE, 12, BUFFER_OFFSET(0));
glGenVertexArraysOES(1, &_normalArray);
glBindVertexArrayOES(_normalArray);
glGenBuffers(1, &_normalBuffer);
glBindBuffer(GL_ARRAY_BUFFER, _normalBuffer);
glBufferData(GLKVertexAttribNormal, loader.currentCountOfNormals * sizeof(GLfloat) * 3,loader.arrayOfNormals , GL_STATIC_DRAW);
glEnableVertexAttribArray(GLKVertexAttribNormal);
glVertexAttribPointer(GLKVertexAttribNormal, 3, GL_FLOAT, GL_FALSE, 12, BUFFER_OFFSET(0));
glBindVertexArrayOES(0);
avec
glEnable(GL_DEPTH_TEST);
glGenVertexArraysOES(1, &_vertexArray);
glBindVertexArrayOES(_vertexArray);
glGenBuffers(1, &_vertexBuffer);
glBindBuffer(GL_ARRAY_BUFFER, _vertexBuffer);
glBufferData(GL_ARRAY_BUFFER, total * sizeof(GLfloat), mergedArray, GL_STATIC_DRAW);
glEnableVertexAttribArray(GLKVertexAttribPosition);
glVertexAttribPointer(GLKVertexAttribPosition, 3, GL_FLOAT, GL_FALSE, 24, BUFFER_OFFSET(0));
glEnableVertexAttribArray(GLKVertexAttribNormal);
glVertexAttribPointer(GLKVertexAttribNormal, 3, GL_FLOAT, GL_FALSE, 24, BUFFER_OFFSET(12));
glBindVertexArrayOES(0);
Combinaison du tableau de sommets et de norma ls à un seul tableau GLfloat
et en passant ce tableau à un seul tampon. Cela a résolu mon problème, mais je ne comprends pas pourquoi. À ma connaissance, j'aurais pu utiliser 2 tampons?
Il semble que vous n'avez pas de réponse à votre question initiale, encore. –
duplication possible de [l'éclairage GL ES 2.0 ne fonctionne pas dans l'application iOS] (http://stackoverflow.com/questions/14103464/open-gl-es-2-0-lighting-not-working-in-ios-app –
Par souci de propreté (et même si cela signifie sacrifier le représentant que je pourrais gagner;)) Je vous suggère de supprimer cette question, car j'ai copié ma réponse (soi-disant correcte) à la question initiale, qui n'était pas t résolu du tout. –