我读到,将mipmaps存储在与纹理相同的文件中,并同时加载基础图像和mipmaps是常见的做法。另一方面,从存储空间(HDD或SSD(读取比使用更靠近CPU的存储器慢得多;OpenGL和Vulkan等图形API允许您使用专用图形卡生成mipmap。
所以我想知道在运行时使用显卡生成mipmap是否真的会更快,而不是浪费时间等待虚拟内存读取。此外,如果在运行时必须动态加载和卸载纹理,允许其他操作在从存储空间加载时继续,答案会改变吗?
也许这不是你想要的答案,但从渲染性能的角度来看,这是常见的,IMO建议压缩纹理(使用GPU上支持的任何东西(,在这种情况下,你通常会生成MIP映射链并"离线"压缩。
假设您可以实现2~8bpp的压缩结果(即,在32bpp源的原始大小的1/16到1/4之间(,则压缩将很容易抵消较小MIP映射级别添加到纹理的1/3开销。
此外,在实践中,可能会在GPU上被限制为仅使用2x2盒滤波器进行下采样,从质量角度来看,这可能是次优的。
我假设您没有考虑可能"动态"生成的内容,例如反射的环境贴图等,在这种情况下,纹理压缩实际上不是一个选项