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