現在、XNAゲームのエフェクトファイルの言語「HLSL」を学習しています。でも; SpriteBatchにエフェクトを適用する問題に遭遇しました。
私のエフェクトファイルは次のようになり、レンダリングされたテクスチャが白になります。:]
float4 PSFunction(float2 coord : TEXCOORD0) : COLOR0
{
return float4(0, 0, 0, 1); // Return a white pixel
}
technique Sample
{
pass pass0
{
PixelShader = compile ps_2_0 PSFunction();
}
}
次の引数でSpriteBatchを開始すると、正常に機能しています。
SpriteBatch.Begin(0, null, null, null, null, SampleEffect);
でも; SpriteBatch.Beginメソッドは複数の効果を受け入れません。したがって、私はやろうとしました
SampleEffect.CurrentTechnique.Passes[0].Apply();
電話する前に
SpriteBatch.Begin();
しかし、何も起こらなかったので、私はいくつかの異なる方法を試しました。そのような
SampleEffect.CurrentTechnique.Passes["pass0"].Apply();
しかし、それでも機能しませんでした。そこで、object.ReferenceEquals関数を使用して、エフェクトが正しいGraphicsDeviceにアタッチされていることを確認しましたが、それは正しいgraphicsDeviceと同等でした。私は何が間違っているのですか?SpriteBatchに複数のエフェクトをアタッチするにはどうすればよいですか?
よろしくお願いします、ラスムス:]