【问题标题】:Fast texel settting in OpenGLOpenGL中的快速纹理设置
【发布时间】:2011-06-14 13:19:05
【问题描述】:

我需要在 OpenGL 中渲染影响图。目前,我有 100 x 100 的四边形渲染,并使用一组颜色来表示地图上每个点的影响。有人建议我将渲染方法更改为带有纹理的四边形,然后让渲染管道加快速度。

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

谢谢 :D

【问题讨论】:

  • 您是调用glTexSubImage2D() 10000 次来更新10000 个纹素,还是调用一次来更新10000 个纹素?
  • 为什么这个标签是人工智能?
  • 它被标记为 AI,因为该技术是一个影响图。我认为 AI 可能会吸引一些人,他们会告诉我我做错了并在这方面积累经验。

标签: opengl rendering artificial-intelligence textures


【解决方案1】:

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

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

【讨论】:

  • 它似乎成功了。我正在对 glTexSubImage2D 进行 10,000 次调用,但它显然很差。在使用 glTexImage2D 发送新纹理之前将整个内容保存在 RAM 中可以更好地完成这项工作。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多