0

できるだけ多くのパフォーマンスを得るために、VAO と Mapped VBO を一緒に使用しています。現在、私の VBO はこの形式 VCVCVCVCVCVCVC でインターリーブされているため、3 つの float の頂点と 4 つの float の色があります。

私の問題は、ストライドとオフセットが正しい場合でも、色を認識しないことです。この問題は、VAO を実装したときに発生し始めました。

コードのインポート部分: VBO のマッピングと VAO の作成

すべてをバインドする:

glBindVertexArray(vaoHandel);

glBindBuffer(GL_ARRAY_BUFFER, vboHandel);
glBufferData(GL_ARRAY_BUFFER, NumberOfIndecies << 2, GL_STATIC_DRAW);

glVertexAttribPointer(0, 3, GL_FLOAT, false, 7<<2, 0<<2);
glEnableVertexAttribArray(0);
glVertexAttribPointer(1, 4, GL_FLOAT, false, 7<<2, 3<<2);
glEnableVertexAttribArray(1);

マッピング部分:

ByteBuffer dataBuffer = glMapBuffer(GL_ARRAY_BUFFER, GL_WRITE_ONLY, NumberofIndecies << 2, null);
FloatBuffer vboData = dataBuffer.order(ByteOrder.nativeOrder()).asFloatBuffer();

VBO のビルド:

build(vboData);
vboData.flip();

マッピング解除:

glUnmapBuffer(GL_ARRAY_BUFFER);

バインド解除:

glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindVertexArray(0);

それは、VBO と VAO の構築とマッピングでした。レンダリング:

glBindVertexArray(vaoHandel);

glDrawArrays(GL_QUADS, 0,  capacity);                   

glDisableVertexAttribArray(0);
glDisableVertexAttribArray(1);

glBindVertexArray(0);

もう一度要約すると、私の問題は、COLORSが機能せず、表示されないことです。私が描いている QUADS が表示されますが、それらはWHITEです。私が入れている色を確認した後、明らかにREDです。

4

0 に答える 0