gpt4 book ai didi

opengl - JOGL VBO,替代 glDrawElements

转载 作者:行者123 更新时间:2023-12-04 05:31:02 25 4
gpt4 key购买 nike

这个问题不太可能对任何 future 的访客有帮助;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于互联网的全局受众。如需帮助使这个问题更广泛适用,visit the help center .




8年前关闭。




我在渲染期间运行以下代码

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 ?

最佳答案

这段代码

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

必须改为
gl.glDrawArrays(GL.GL_TRIANGLES, 0, mNumOfIndices);

(由 Dnu_12 提供)

关于opengl - JOGL VBO,替代 glDrawElements,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12626810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com