VBO에서이 문제가 발생합니다. 실제로 이해가되지 않습니다. 내 문제는 실수로 glVertexAttribPointer 메서드 호출 마지막 매개 변수를 변경하여 해결됩니다. 그래서 WHY이 갑자기 작동하는지 또는 이전 코드가 더 이상 작동하지 않는 이유에 대한 답변을 찾고 있습니다.glDrawElements VBO를 사용하는 EXC_BAD_ACCESS
구조체를 (단지는 OpenGL에 대한 더 나은 이해를 얻기 위해) :
typedef struct
{
float position[3];
float color[4];
} Vertex;
을 VBOs없이 : VBOs와
// Get pointers to the data
GLsizei stride = sizeof(Vertex);
const GLvoid *pCoords = &squareVertices[0].position[0];
const GLvoid *pColors = &squareVertices[0].color[0];
// Setup pointers to positions and colors
glVertexAttribPointer(positionSlot, 3, GL_FLOAT, GL_FALSE, stride, pCoords);
glVertexAttribPointer(colorSlot, 4, GL_FLOAT, GL_FALSE, stride, pColors);
// Draw
glDrawArrays(GL_TRIANGLES, 0, sizeof(squareVertices)/sizeof(Vertex));
(이 저에게 EXC_BAD_ACCESS를 제공)
// Stide
GLsizei stride = sizeof(Vertex);
// Setup pointers to positions and colors
glVertexAttribPointer(positionSlot, 3, GL_FLOAT, GL_FALSE, stride, 0);
glVertexAttribPointer(colorSlot, 4, GL_FLOAT, GL_FALSE, stride, (GLvoid*) (sizeof(float) * 3));
// Draw
glDrawElements(GL_TRIANGLES, sizeof(squareIndices)/sizeof(squareIndices[0]), GL_UNSIGNED_BYTE, 0);
실제적으로 유일한 차이점은 데이터에 대한 포인터가있는 glVertexAttribPointer
호출이며 현재는 고정 된 숫자입니다. 아무도 이것에 정성 들일 수 있습니까? 미리 감사드립니다.
와우! 그것은 빠른 anwser이었다. 정말 감사합니다. Cristal clear;) – polyclick