使用SpriteBatch中指定的颜色.使用自定义着色器绘制
本文关键字:自定义 绘制 颜色 SpriteBatch 使用 | 更新日期: 2023-09-27 17:50:38
通常当你做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();
}
}
你需要检索通过顶点着色器的颜色,并在计算最终输出时使用它:
float4 NoEffects(float4 color : COLOR0, float2 coords : TEXCOORD0) : COLOR0
{
return tex2D(s0, coords) * color;
}
你可以使用一个EffectParameter来传递一个值给你的效果。
http://msdn.microsoft.com/en-us/library/bb976060.aspx