我不能用颜色着色器给我的精灵着色。这是问题所在:
左图来自 XNA,右图是 form gimp。彩色精灵仍然有一些蓝色像素。蓝色用于传递色调。我认为缩放或抗锯齿会搞砸。这是我的代码:
float4 PixelShaderFunction(float2 coords: TEXCOORD0) : COLOR0
{
float4 color = tex2D(s0, coords);
float3 white = {1, 1, 1};
float3 colorTint = { 0.3f, 0, 0 };
if(color.a)
{
if(color.r < 0.1 && color.g < 0.1 && color.b > 0.1)
{
color.rgb = lerp(white, colorTint.rgb, 1 - color.b);
color.a = 1;
}
}
return color;
}
编辑:看起来将采样器状态设置为“SamplerState.PointClamp”是我的解决方案,但也许有人可以告诉我这里发生了什么?