我正在尝试使用 lwjgl(java OpenGL 绑定)渲染基本模型。我试图用我记得的东西尽可能多地用我自己的知识来做到这一点。我创建了一个像这样的vbo:
int verticesVBO = GL15.glGenBuffers ( );
vboIDs.add ( verticesVBO );
FloatBuffer verticesData = bufferFromData ( vertices );// Custom Method
GL15.glBindBuffer ( GL15.GL_ARRAY_BUFFER , verticesVBO );
GL15.glBufferData ( GL15.GL_ARRAY_BUFFER , verticesData , GL15.GL_STATIC_DRAW );
GL20.glVertexAttribPointer(0, 3, GL11.GL_FLOAT, false, 0, 0);// Binds the vbo to the bound vao
if(( error = GL11.glGetError()) != GL11.GL_NO_ERROR) System.err.println(GLU.gluErrorString(error));
我对索引缓冲区对象已经了解了这么多:
int indicesVBO = GL15.glGenBuffers ( );
vboIDs.add ( verticesVBO );
IntBuffer indicesData = bufferFromData ( indices );
GL15.glBindBuffer ( GL15.GL_ELEMENT_ARRAY_BUFFER , indicesVBO );
GL15.glBufferData ( GL15.GL_ELEMENT_ARRAY_BUFFER , indicesData , GL15.GL_STATIC_DRAW );
//Problem Here
if(( error = GL11.glGetError()) != GL11.GL_NO_ERROR) System.err.println(GLU.gluErrorString(error));
我遇到的问题是我不知道将索引缓冲区绑定到 vao 的方法。对于包含我知道要使用的顶点数据的 vbo,GL20.glVertexAttribPointer(0, 3, GL11.GL_FLOAT, false, 0, 0);
但我记得索引缓冲区的行为不同。这是一个学习过程,所以请以建设性的态度提出您的批评。