이것은 멍청한 질문 일 수 있습니다. 내가 이해 하듯이, glBindAttribLocation (..., AAA, ...)은 AAA가 고유 한 한 AAA의 위치 ID에 프로그램 내의 속성을 바인딩합니다. 나는 다음과 같은 코드가있는 경우 :GLES2 glBindAttribLocation()이 필요합니까?
glBindAttribLocation(..., 0, "XXX");
glBindAttribLocation(..., 1, "YYY");
이 위치 ID 0과 1에 내 두 개의 변수를 바인딩을 그때 부를 것이다 :
이glBindBuffer(GL_ARRAY_BUFFER, VBId);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, IBId);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(float) * 6, 0);
glEnableVertexAttribArray(0);
glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, sizeof(float) * 6, (void *) 0 + sizeof(float) * 3);
glEnableVertexAttribArray(1);
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);
는 지금까지 본인은의 ID를 0과 1은 glVertexAttribPointer()에 첫 번째 매개 변수로 전달됩니다.
위와 같이 glGetAttribLocation() 호출을 통해 위와 같이 속성의 위치 ID를 얻으면 리턴 된 ID가 0과 1 대신 5와 6이되므로 5를 전달할 수 있다고 가정하는 것이 안전합니까? glVertexAttribPointer() 및 glEnableVertexAttribArray() 대신 0 및 1 ??