12

这两个功能有什么区别?有什么性能差异吗?

谢谢..

4

2 回答 2

24

您使用创建纹理glTexImage,然后使用更新其内容glTexSubImage。当你更新纹理时,你可以更新整个纹理,或者只是它的一个子矩形。

创建一个纹理并更新它比创建它并重复删除它要高效得多,因此从这个意义上说,如果您有要更新的纹理,请始终使用glTexSubImage(在初始创建之后)。

其他技术可能适用于纹理更新。例如,请参阅这篇关于纹理流的文章以获取更多信息。

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

于 2010-03-09T00:26:26.557 回答
0

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

于 2010-03-09T00:29:18.267 回答