通常,当您执行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();
}
}
答案 0 :(得分:4)
您需要检索通过顶点着色器的颜色,并在计算最终输出时使用它:
float4 NoEffects(float4 color : COLOR0, float2 coords : TEXCOORD0) : COLOR0
{
return tex2D(s0, coords) * color;
}
答案 1 :(得分:0)
您可以使用EffectParameter将值传递给效果。