有数据的纹理和没有数据的纹理消耗相同数量的内存吗?

Does a texture with data and a texture with no data consume the same amount of memory?

在我的应用程序中,我创建纹理,渲染它们并延迟读取它们,直到 CPU 绝对需要为止。

我想知道(但我仍然不知道如何)鉴于我猜测并监控消耗的 GPU 内存,对 readPixels() 的调用是否会通过传输数据来减轻 GPU 的内存消耗CPU?或者在我破坏纹理之前,内存是否仍然被占用?

readPixels只是复制数据。它不会将其从 GPU 中移除。

不传递数据的纹理(传递 null)占用的内存量与不传递数据的纹理相同。浏览器只是为您用零填充纹理。

纹理停止使用内存的唯一方法是使用 gl.deleteTexture 将其删除。您还需要删除对它的所有引用(将它与它仍然存在的任何纹理单元解除绑定,并将它从任何帧缓冲区附件中删除或删除它所附加的帧缓冲区)。