我正在使用 LWJGL/OpenGL 学习和编程。我想分块渲染我的地图。为此,我为每个块创建一个 VAO 和 VBO 并上传和链接它们。
问题是,如果我渲染第一个块,那么接下来的 3 个块都将在上面渲染。如果我渲染第二个块,下面的 2 个块将被渲染在顶部。
这是我的应用程序的日志,描述了我如何设置 VAO:
Chunk: 0 0
Generate VBO: 1
Generate VAO: 1
Bind VAO: 1
Bind VBO: 1
Enable and set VertexAttribPointer
Bufferdata (Buffersize: 36864)
Bind VAO: 0
Chunk: 0 1
Generate VBO: 2
Generate VAO: 2
Bind VAO: 2
Bind VBO: 2
Enable and set VertexAttribPointer
Bufferdata (Buffersize: 1536)
Bind VAO: 0
Chunk: 1 0
Generate VBO: 3
Generate VAO: 3
Bind VAO: 3
Bind VBO: 3
Enable and set VertexAttribPointer
Bufferdata (Buffersize: 1536)
Bind VAO: 0
Chunk: 1 1
Generate VBO: 4
Generate VAO: 4
Bind VAO: 4
Bind VBO: 4
Enable and set VertexAttribPointer
Bufferdata (Buffersize: 64)
Bind VAO: 0
Draw
Bind VAO: 1
Set Unifoms
Draw Arrays
缓冲区大小符合预期。
对于绑定,我使用 glBindVertexArray() 和 glBindBuffer(GL_ARRAY_BUFFER, )
对于绘图,我使用 glDrawArrays()
我设置 VAO 的方式是错误的,还是您需要我的代码来解决我的问题?