2
我掙扎了一段時間,在我的xna遊戲中添加了一個fog效果。 我在文件(.Fx)中使用自定義着色器效果。 「PixelShaderFunction」的工作原理沒有錯誤。但問題是我所有的土地都以同樣的方式着色。 我認爲問題來自相機與型號之間距離的計算。如何計算xna上霧效應模型的距離?
float distance = length(input.TextureCoordinate - cameraPos);
這是我與「PixelShaderFunction」
// Both techniques share this same pixel shader.
float4 PixelShaderFunction(VertexShaderOutput input) : COLOR0
{
float distance = length(input.TextureCoordinate - cameraPos);
float l = saturate((distance-fogNear)/(fogFar-fogNear));
return tex2D(Sampler, input.TextureCoordinate) * lerp(input.Color, fogColor, l);
}
非常感謝!你的例子非常適合我的問題。 – 2013-04-02 06:54:22