0
저는 IBO가있는 VBO를 가지고 있는데, 예를 들어 두 번째 삼각형을 렌더링하고 다음 렌더링 단계에서 세 번째 삼각형을 렌더링하려고합니다. OpenGL은 VBO의 일부만 렌더링합니다.
나는 두 번째 삼각형 경악을 렌더링하는 올바른 방법이glDrawArrays(GL_TRIANGLES,
3, // indexArray[3] is start
3); // take 3 indices (from index 3..5 --> second triangle)
그것은 최초의 삼각형 잘 작동 전화를 생각합니다. 그러나 다른 삼각형을 렌더링하고자 할 때 VBO의 매개 변수가 올바르게 해석되지 않습니다. 내가 제대로 렌더링
glDrawElements(GL_TRIANGLES, VBO.length, GL_UNSIGNED_INT, 0);
개체를 호출 할 때
내 VAO의 정의는이
glGenVertexArrays(1, out VAO);
glBindVertexArray(VAO);
glBindBuffer(GL_ARRAY_BUFFER, VBO.V_ID);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, VBO.E_ID);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 2, GL_FLOAT, false, 12 * sizeof(float), 0);
glBindAttribLocation(shaderID, 0, "InUV");
glEnableVertexAttribArray(1);
glVertexAttribPointer(1, 4, GL_FLOAT, true, 12 * sizeof(float), 2 * sizeof(float));
glBindAttribLocation(shaderID, 1, "InColor");
glEnableVertexAttribArray(2);
glVertexAttribPointer(2, 3, GL_FLOAT, true, 12 * sizeof(float), 6 * sizeof(float));
glBindAttribLocation(shaderID, 2, "InNormal");
glEnableVertexAttribArray(3);
glVertexAttribPointer(3, 3, GL_FLOAT, false, 12 * sizeof(float), 9 * sizeof(float));
glBindAttribLocation(shaderID, 3, "InVertex");
glBindVertexArray(0);
것 같습니다.
잘못된 방법으로 glDrawArrays를 사용합니까? 또는 VBO의 한 특정 삼각형을 렌더링하는 다른 방법이 있습니까 ???