目录
三种非常简单且容易实现的滤镜效果。
黑白
黑白:也就是灰度图,需要将像素着色器中R、G、B三个颜色分量用同一个灰度值Grey来表示,计算公式如下:
Grey = 0.114 * R + 0.567 *G + 0.299 * B;
//灰度化
void Grey(inout float4 color)//color通过为采样器获取的纹理信息,为(R、G、B、A)格式
{
color.rgb = 0.114 * color.r + 0.567 * color.g + 0.299 * color.b;
}
原图
黑白效果
复古
复古:计算公式如下,其中,r、g、b为原来的三个颜色分量,R、B、G为新的输出的三颜色分量。
R = 0.393 * r + 0.769 * g + 0.189 * b;
G = 0.349 * r + 0.686 * g + 0.168 * b;
B = 0.272 * r + 0.534 * g + 0.131 * b;
//复古
void Retro(inout float4 color)
{
float r = color.r;
float g = color.g;
float b = color.b;
color.r = 0.393 * r + 0.769 * g + 0.189 * b;
color.g = 0.349 * r + 0.686 * g + 0.168 * b;
color.b = 0.272 * r + 0.534 * g + 0.131 * b;
}
复古效果
反色
反色:与原像素值互补,计算公式如下:
Iverse = 1.0f-color.rbg;
//反色
void Inverse(inout float4 color)
{
color.rgb = 1.0 - color.rgb;
}
反色效果