使用像素着色器部分着色精灵

时间:2013-09-23 10:40:27

标签: colors xna sprite hlsl pixel-shader

我不能用色彩着色器为我的精灵着色。这是问题所在:

enter image description here

左边的图像来自XNA,右边的图像是gimp。彩色精灵仍然有一些蓝色像素。蓝色用于传递色调。我认为scalling或anti-aliasing搞砸了。这是我的代码:

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”是我的解决方案,但也许有人可以告诉我这里发生了什么?

0 个答案:

没有答案