我知道使用DXT压缩是因为它节省了大量的内存和带宽。然而,DXT的质量并不是很好。通常使用DXT吗?是否使用其他压缩格式?通常使用raw (无压缩)格式吗?
我也读过关于OpenGL纹理压缩的文章,但我没有OpenGL 4.x的支持,只有BPTC 3.x的支持。
我知道这个问题没有一个完美的答案,但一些“指导原则”会非常有帮助。
发布于 2015-04-18 03:35:19
没有“通常”。它根据应用程序的不同而有所不同,许多游戏会让你选择是否想要压缩纹理或不用质量来换取性能。
关于DXT/S3TC质量的事情是,它随压缩器的不同而不同;这是存储预压缩纹理的格式存在的部分原因。显然,它节省了存储和加载时间,但如果离线完成,则可以提高压缩图像的质量(类似于使用比盒子过滤器更复杂的东西对mipmap进行预过滤)。
同样,纹理压缩算法并不适用于纹理的所有用途(特别是当尺寸不是4x4的倍数时)。你可以对法线贴图做的最糟糕的事情之一就是使用传统的DXT压缩它。你可能听说过"3Dc“压缩,它实际上只是DXT5的一种变体,它保持了法线贴图所需的某些属性,但对于传统图像来说完全不必要。
至于BC和DXT之间的区别,主要是由于图像质量和多功能性。BC1-3实际上和DXT1-5是一样的,只有BC6和BC7需要D3D10+级的硬件。GL所谓的BPTC (BC6H和BC7)将4x4压缩块划分为单独的颜色梯度,以根据需要改善图像质量(这可能就是P的来源)。
如果你有对BC6H和BC7的硬件支持,你会得到更好的图像质量和对sRGB和浮点纹理压缩的支持,但是你可以没有这些东西(所有的DX9游戏都是这样)。
https://stackoverflow.com/questions/29706542
复制相似问题