Photoshop Photo Filter像素数学

时间:2010-08-07 23:43:49

标签: math shader pixel-shader

有没有人在Photoshop中使用过滤器?编辑>调整>照片过滤器......

它产生了一个非常好的图像色调,我无法使用混合模式重现。有没有人知道这个过滤器背后的像素数学? - 所以我可以基于它构建着色器。

它似乎基本上是保持色彩的光度。

有变量:颜色,数量和保留亮度。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

过滤器(在光线下)是乘法的,如:

red_filter = ( 1 , 0 , 0 ) * color

我认为不存在任何混合模式,因为任何与该系统的透明覆盖都会使图像变暗到某种程度。

答案 1 :(得分:0)

这非常简单,但如果有人想要hlsl代码:

// Photoshop PhotoFilter style effect.

// Input filter color.
float4 FilterColor;

// Implicit texture sampler.
sampler TextureSampler : register(s0);

float4 PhotoFilter(float4 color : COLOR0, float2 texCoord : TEXCOORD0) : COLOR0
{
    return tex2D(TextureSampler, texCoord) * FilterColor;
}

technique GeneralEffect
{
    pass Pass1
    {
        PixelShader = compile ps_2_0 PhotoFilter();
    }

}