2

レンダリング中に次のコードを実行しています

if (fUseVBO) {
            gl.glBindBuffer(GL.GL_ARRAY_BUFFER, VBOTexCoords[0]);
            // Set The TexCoord Pointer To The TexCoord Buffer
            gl.glTexCoordPointer(2, GL.GL_FLOAT, 0, 0);
            gl.glBindBuffer(GL.GL_ARRAY_BUFFER, VBOVertices[0]);
            // Set The Vertex Pointer To The Vertex Buffer
            gl.glVertexPointer(3, GL.GL_FLOAT, 0, 0);
        } else {
            // Specifies the location and data format of an array of vertex
            // coordinates to use when rendering.
            gl.glVertexPointer(3, GL.GL_FLOAT, 0, mVerticesBuffer);
            // Set The Vertex Pointer To Our TexCoord Data
            gl.glTexCoordPointer(2, GL.GL_FLOAT, 0, mTextureBuffer);
        }

        gl.glDrawElements(GL.GL_TRIANGLES, mNumOfIndices,
                        GL.GL_UNSIGNED_SHORT, mIndicesBuffer);

この方法では、テクスチャ座標と頂点に VBO があり、レンダリングするたびにインデックス バッファーを渡します。(オブジェクトの頂点、テクスチャ座標、およびインデックスがあります)

gl.glDrawElements メソッドを次のコードに置き換えようとしました

gl.glDrawArrays(GL.GL_TRIANGLES, 0, vertexCount); 

しかし、それはオブジェクトを適切にレンダリングしませんでした。

glDrawElements を取り除くには?

4

1 に答える 1

3

このコード

gl.glDrawArrays(GL.GL_TRIANGLES, 0, vertexCount); 

に変更する必要があります

gl.glDrawArrays(GL.GL_TRIANGLES, 0, mNumOfIndices);

(Dnu_12 提供)

于 2012-09-29T12:49:45.533 に答える