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