LWJGL/OpenGL を使用して学習とプログラミングを行っています。マップをチャンクでレンダリングしたい。このために、チャンクごとに VAO と VBO を作成し、それらをアップロードしてリンクします。
問題は、最初のチャンクをレンダリングすると、次の 3 つのチャンクすべてがその上にレンダリングされることです。2 番目のチャンクをレンダリングすると、次の 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 の設定方法が間違っているのでしょうか、それとも問題を解決するために私のコードが必要ですか?