在 DX10 中,通常的做法是通过将 Y 值放在绿色通道中,将 X 值放在 alpha 中来压缩法线贴图,并应用 DXT5 压缩(然后在着色器中重建 Z 分量)。Vulkan中对应的格式是什么?我能找到的最接近的是 VK_FORMAT_BC5_UNORM_BLOCK,它是带有 DXT5 的无符号 RG 通道。这是等价的吗?如果是这样,您会将其存储为 R: X 和 G: Y 还是相反(是否重要)?还是有更新的压缩格式做得更好?
问问题
24 次
1 回答
1
DXT5在 DX10 中更名为 BC3。Vulkan 的等效压缩纹理格式遵循 DX10+ 命名约定。这VK_FORMAT_BC3_UNORM_BLOCK
正是您习惯使用的。
话虽如此,十年前使用 DXT5/BC3 制作法线贴图已经过时,即使在 DX10 时代也是如此。现在处理这个问题的常用方法是使用 BC5 来存储 X 和 Y 分量,在着色器中生成 Z。对于相同的纹理尺寸,您可以获得更好的质量。
但更现代的等价物是将BC7 与 2 通道分离编码模式一起使用。虽然这需要更先进的压缩机。
于 2022-02-20T18:34:15.603 回答