0

我正在尝试压缩我的法线贴图纹理,所以我使用的是 ASTC 4x4。

它对其他纹理(又名漫反射)完全有效,但法线贴图的质量损失太大。

有没有办法直接提高法线贴图的 ASTC 质量?

我尝试使用 -normal-psnr 标志,但它使我的纹理变灰(而不是正常的蓝色)

ASTC法线贴图:

在此处输入图像描述

PNG法线贴图:

在此处输入图像描述

4

1 回答 1

0

在参考编码器中使用法线模式压缩法线贴图将法线贴图存储为 X+Y 贴图。X 存储在 R 通道中(并在 G 和 B 中重复),Y 存储在 A 通道中,这就是它看起来灰色的原因。您需要在着色器中重建 Z;基于完整的法线应该是单位长度的事实,您不需要存储它,这为压缩器提供了更多可用于提高质量的位。

vec3 normal;
normal.xy = texture(sampler, uv).ra;
normal.xy = normal.xy * 2.0 - 1.0;
normal.z = sqrt(1 - dot(normal.xy, normal.xy));

我倾向于发现 5x5 块 (5.12bpp) 的法线看起来不错,但比这低得多的比特率开始出现质量问题。

于 2018-11-21T21:51:12.880 回答