OpenGL中的快速纹理设置

时间:2011-01-24 14:14:56

标签: opengl rendering artificial-intelligence textures

我需要在OpenGL中渲染影响力图。目前,我有100 x 100四边形渲染,使用设定的颜色来表示地图上每个点的影响。我被建议将渲染方法改为一个带有纹理的四边形,然后允许渲染管道以速度接管。

基本测试表明glTexSubImage2D对于每帧设置10,000个纹素而言太慢。你有什么建议吗?每帧创建一个全新的纹理会更好吗?我的影响力图是标准化的浮点数(0.0到1.0),并且转换为灰度颜色(1.0f =白色)。

谢谢:D

1 个答案:

答案 0 :(得分:2)

您目前是否分别更新10000个纹素中的每一个,使用10000个glTexSubImage2D调用?

只需在RAM中使用一个100x100灰度浮点纹理(10000浮点数组),直接更新值,然后通过一次glTexImage2D调用将整个数据发送到GPU。您也可以使用缓冲区对象来允许在后台进行传输,但由于您没有移动大量数据,因此它应该是不必要的。