0

我有一个考虑光线方向的法线贴图着色器,我想加强效果。这是用于计算模型的任何给定像素的亮度的线:

float3 N = (2.0 * (tex2D(NormalMapSampler, Tex))) - 1.0;

它强制值保持在 0 和 1 之间,这就是我想要的。但是,我想在不使用舍入的情况下增加高于 0.5 的值并减少低于 0.5 的值,以便在模型面向光源的一侧和模型的非面向光源的一侧之间产生更显着的差异。我可以用什么来实现这一目标?

4

1 回答 1

0

该公式生成的向量值介于 -1 和 1 之间。我认为您想要的没有多大意义,但您可以增加 z 坐标:

float3 N = (2.0 * (tex2D(NormalMapSampler, Tex))) - 1.0;
N.z *= 2; //or any other value
N = normalize(N);

因子越高,法线贴图的影响越小。对于 0 和 1 之间的值,它会增加。

于 2013-10-05T08:20:53.097 回答