OpenGL中glTexSubImage和glTexImage函数的区别

时间:2010-03-09 00:09:01

标签: opengl glteximage2d

这两个功能有什么区别? 任何表现差异?

谢谢..

2 个答案:

答案 0 :(得分:20)

使用glTexImage 创建纹理,然后使用glTexSubImage 更新其内容。更新纹理时,可以更新整个纹理,或仅更新它的子矩形。

创建一个纹理并更新它比创建它并重复删除效率要高得多,所以在这种意义上,如果你想要更新纹理,请始终使用glTexSubImage(在初始之后)创建)。

其他技术可适用于纹理更新。例如,有关详细信息,请参阅texture streaming上的这篇文章。

(最初,这篇文章建议使用glMapBuffer进行纹理更新 - 请参阅下面的讨论。)

答案 1 :(得分:1)

名称中带“sub”的gl函数不限于2次幂。正如gavinb指出的那样,你需要使用一次非子变量来设置整体尺寸,但我不同意重复调用非子变体比使用“sub”进行更新要慢 - GPU是只要您使用相同的纹理ID,就可以自由覆盖现有纹理。