HLSL着色距离渐变

时间:2013-07-02 22:57:26

标签: xna hlsl

你好,当我尝试添加距离衰减时,我的HLSL代码无法正常工作。

我试过这个:

Output.Color = baseColor*(diffuseLightingFactor + xAmbient * (1 / xDistance));

和此:

diffuseLightingFactor *= 1 / xDistance;

xDistance是相机与模型之间的距离。

有人可以请求帮助,因为我对着色器很新,根本不知道。

提前致谢。

1 个答案:

答案 0 :(得分:0)

试试这个:

Output.Color = 
    float4(saturate(
        baseColor * ( (diffuseLightingFactor + xAmbient) * (1 / xDistance))
    ).rgb, 1);

这确保了alpha(透明度)始终为1,其他颜色介于0和1之间。我还在光照因子总和周围添加了括号,以便将雾因子应用于两者。