【发布时间】:2012-10-22 06:31:14
【问题描述】:
所以,glGenerateMipMap 很棒。我想知道几件事:
- 假设纹理图像是通过glTexSubImage2D改变的,对glGenerateMipMap的另一个调用是--足够/需要/不需要?
- 假设最终用户应该能够即时“启用/禁用 mip-maps”,当然 GL_TEXTURE_MIN_FILTER 必须根据 mipmap 进行相应设置。但是,之前生成的 mip-map 仍保留在 GPU VRAM 中,对吗? - 可以“提示”驱动程序删除这些吗?我是否必须重新上传原始纹理图像(但现在不再将 min-filtering 设置为 mipmap)以清除包含先前生成但现在不需要的 mip-map 的内存?
背景——在其他也需要对上述问题有更多见解的用例中,我还想“跟踪应用程序消耗的大约 GPU VRAM”(出于各种原因,例如可扩展的任意纹理/ vertex streaming) --- 通过跟踪应用程序填充的 GL 缓冲区以及上传的纹理(确保它只是一个近似值但足够好)。跟踪它们的 mip-maps 也是必要的,因此知道如何清除它们或它们何时被当前的 GL 实现清除将非常有用。
【问题讨论】: