OpenGL:如何更新矩形纹理的子图像?

时间:2011-09-07 19:24:34

标签: c++ c opengl

我正在尝试更新大的矩形纹理中的小方块。

我尝试使用glTexSubImage2D并将目标设置为GL_TEXTURE_RECTANGLE_ARB,但我遇到了问题。可能只是因为我不知道如何正确使用glTexSubImage2D。问题可能是因为我在更新子图像之前尝试不使用glTexImage2D将整个纹理加载到主存中?

有人能告诉我是否可以更新矩形纹理的子图像而无需将整个纹理读入主存储器?我看到glTexCopyTexSubImage2D ...仍然想知道这些方法是否适用于矩形纹理。

1 个答案:

答案 0 :(得分:0)

  1. 我非常确定你必须至少使用glTexImage2D上传一次全尺寸纹理。如果您在开始时无法访问整个图像,则甚至可以使用空白数组。

  2. glCopyTexSubImage2D并不像你想要的那样。它从"帧缓冲区复制特定部分"到纹理。但是,你想从主内存上传,对吗?

  3. 我没有看到任何理由说明这些方法无法支持矩形纹理,除非驱动程序损坏。

  4. 考虑到矩形纹理不像其他纹理那样使用[0..1]范围内的纹理坐标。相反,他们使用[0..Width]和[0..Height]范围。