gpt4 book ai didi

java - JOGL - 在大型数组缓冲区上调用 glMapBuffer 后性能低下

转载 作者:行者123 更新时间:2023-12-01 13:36:37 25 4
gpt4 key购买 nike

我遇到了一个奇怪的问题,我想更新包含大约五十万个元素(顶点)的数组缓冲区,因此我调用 glMapBuffer(...),对某些元素进行一些操作元素并调用 glUnmapBuffer(...),但从那时起,即使我偶尔执行此操作,我的程序也会变慢。这是代码

        gl.glBindBuffer(gl.GL_ARRAY_BUFFER, VBOVertices[0]);

ByteBuffer verticesByteBuffer = gl.glMapBuffer(gl.GL_ARRAY_BUFFER, gl.GL_WRITE_ONLY);

FloatBuffer verticesBuffer = verticesByteBuffer.asFloatBuffer();

for(int i=0;i<verticesToBeChanged.size();i++) {
int vertexId = verticesToBeChanged.get(i);
verticesBuffer.position(vertexId*8);
verticesBuffer.put(vertices[vertexId].position.x);
verticesBuffer.put(vertices[vertexId].position.y);
verticesBuffer.put(vertices[vertexId].position.z);
}
gl.glUnmapBuffer(gl.GL_ARRAY_BUFFER);

我做错了什么还是这就是大数据集的工作原理?我无法使用 glMapBufferRange(...) 方法,因为它在 JOGL 中不存在。

最佳答案

关于java - JOGL - 在大型数组缓冲区上调用 glMapBuffer 后性能低下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21222465/

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