locked
シェーダーのsaturate関数のコンパイルエラーについて RRS feed

  • 全般的な情報交換

  • xna4.0でsaturate関数を使うとコンパイル時にエラーが出るようです。
    エラー内容や症状的に↓の方のケースと同じ感じでしたので報告させていただきます。
    同じようにfxファイルのプロセッサーをDebugにしたらエラーは消えました。

    http://social.msdn.microsoft.com/Forums/ja-JP/wpappsja/thread/4191c184-46a2-4642-bb2e-82edfa194551#d2cfa8f7-d02d-4683-86cd-b98d7afcdf85

    単にこちらの間違いかもしれないので一応ソースを載せておきます。

    float4x4 World;
    float4x4 View;
    float4x4 Projection;

    float ShadowDensity;
    Texture ShadowTexture;

    sampler TextureSampler = sampler_state
    {
        Texture = (ShadowTexture);
        MinFilter = Linear;
        MagFilter = Linear;
        MipFilter = Linear;
        AddressU = Clamp;
        AddressV = Clamp;
    };


    void VS(
    float4 in_Position : POSITION0,
    float2 in_TexCoord:TEXCOORD0,
    out float4 out_Position:POSITION0,
    out float2 out_TexCoord:TEXCOORD0,
    out float3 out_Color:COLOR0)
    {
        float4x4 WorldViewProj = mul(mul(World, View), Projection);
        out_Position = mul(in_Position, WorldViewProj);
        out_TexCoord = in_TexCoord;
        out_Color = float3(0,0,0);
    }

    void  PS(
    float2 in_TexCoord: TEXCOORD0,
    out float4 out_Color:COLOR0)
    {
        float4 texColor = tex2D(TextureSampler,in_TexCoord);
        out_Color = float4(0,0,0,1);
        out_Color.a = saturate(ShadowDensity) * texColor.a;
    }


    technique ShadowTechnique
    {
        pass Pass1
        {
            VertexShader = compile vs_2_0 VS();
            PixelShader = compile ps_2_0 PS();
        }
    }
    2011年4月16日 14:51