3

通常はSpriteBatch.Draw、色を指定できます。しかし、ここに問題があります。カスタムシェーダーを使用すると、渡された色が無視されSpriteBatch.Drawます...

どうすればそれを考慮に入れることができますか?つまり、色を正確にどのようにSpriteBatch.Draw渡すのですか? それがわかれば、シェーダーで使用できます。

これまでのところ私が持っているもの(関連部分):

float4 NoEffects(float2 coords: TEXCOORD0) : COLOR0
{
    return tex2D(s0, coords);
}

technique Default
{
    pass Pass1
    {
        PixelShader = compile ps_2_0 NoEffects();
    }
}
4

2 に答える 2

4

頂点シェーダーを通過した色を取得し、最終的な出力を計算するときにそれを使用する必要があります。

float4 NoEffects(float4 color : COLOR0, float2 coords : TEXCOORD0) : COLOR0
{
    return tex2D(s0, coords) * color;
}
于 2013-01-02T18:46:37.177 に答える
0

EffectParameter を使用して、効果に値を渡すことができます。

http://msdn.microsoft.com/en-us/library/bb976060.aspx

于 2013-01-02T18:34:31.237 に答える