从NASA数据渲染地形时的Opengl性能问题

时间:2013-12-29 02:59:34

标签: c++ performance opengl 3d frame-rate

我尝试使用here中的数据渲染地形。每个文件包含1x1平方。每个广场有1201 * 1201点(高度)。

不幸的是,我的性能问题很严重。渲染大约10万点fps~30时,渲染全方形时大约有0.5 - 3.0 fps ......悲剧......

我花了整整5天时间,我不知道怎么能加速它。对于显卡来说是不是太多了,或者它可能与我的司机有关?我在两台计算机上检查了它,但每台计算机上都有radeon HD。我的台式电脑非常好 - 4核,8GB内存,radeon HD 4850 1GB,SSD,所以这不是因为旧硬件。

你有什么想法吗?也许我应该在driver / opengl中切换一些选项?

我做了很基本的事情:

GLenum mode = GL_TRIANGLE_STRIP;

glBindVertexArray(_vao);

//pass data
glUniformMatrix4fv(_mvp_loc, 1, GL_FALSE, &mvp[0][0]);  
glUniform2f(_part_pos_loc, _longitude, _latitude);

//draw
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, DETAILS_LEVEL[levelOfDetails]);
glDrawElements(mode, DETAILS_COUNT[levelOfDetails], GL_UNSIGNED_INT, (void*)0);

glBindVertexArray(0);

我的顶点着色器也很简单。

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题(几天后就解决了)! 我希望我的答案可以节省一天的时间: - )。

这是由于两件事造成的:

  • Hyper-V - 禁用后fps增加了约7倍(谁会猜测,它可能是超级v?)
  • GL_SHORT - 我将此类型用于顶点,当我用GL_FLOAT替换它时,fps增加了几次! (可能GL_SHORT引起了一些转换)