2011-01-24 76 views
0

我需要在OpenGL中渲染影响图。目前,我有100 x 100四边形以设定的颜色进行渲染,以表示地图上每个点的影响。我已经建议将我的渲染方法更改为具有纹理的一个四边形,然后让渲染管线以接管速度进行。快速纹理在OpenGL中设置

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

感谢:d

+0

您是否在调用`glTexSubImage2D()`10000次来更新10000个像素,或者一次更新10000个像素? – genpfault 2011-01-24 14:50:08

+0

为什么这个标签为人工智能? – ziggystar 2011-01-25 13:19:07

回答

2

你正在更新的每个单独的10000个纹理元素,与glTexSubImage2D 10000个电话?

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