在DX10中,通常的做法是将Y值放在绿色通道中,X值放在alpha中,然后应用DXT5压缩(Z分量随后在着色器中重建)来压缩普通地图。Vulkan中对应的格式是什么?我能找到的最接近的是VK_FORMAT_BC5_UNORM_BLOCK,它是带有DXT5的无符号RG通道。这是等同的吗?如果是这样的话,你会把它存储成R: X和G: y还是反过来(这重要吗)?还是有新的压缩格式做得更好?
发布于 2022-02-20 18:34:15
DXT5为在BC3中重命名为DX10。Vulkan的等效压缩纹理格式遵循DX10+命名约定。因此,VK_FORMAT_BC3_UNORM_BLOCK正是您习惯使用的。
尽管如此,十年前,使用DXT5 5/BC3绘制普通地图已经过时了,甚至在DX10时代也是如此。目前常用的处理方法是使用BC5存储X和Y组件,在着色器中生成Z。同样的纹理尺寸,你会得到更好的质量。
但更现代的等效方法是使用2通道,独立编码模式的BC7。虽然这需要更先进的压缩机。
https://stackoverflow.com/questions/71194551
复制相似问题