【问题标题】:Photoshop PhotoFilter pixel MathPhotoshop PhotoFilter 像素数学
【发布时间】:2011-03-26 20:09:08
【问题描述】:

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

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

它似乎基本上是一种保持亮度的颜色。

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

有什么想法吗?

【问题讨论】:

  • 大概是想在相机镜头前复制彩色滤光片的效果?
  • 是的,确实是这样。我尝试在图像上方放置一个彩色图层,然后调整混合模式以产生类似的效果,但它永远不会相同。有什么想法吗?

标签: math shader pixel-shader


【解决方案1】:

过滤器(在光照下)是乘法的,如下所示:

red_filter = ( 1 , 0 , 0 ) * color

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

【讨论】:

  • 有一种名为“乘法”的混合模式正是以这种方式工作的。由于它总是会使图像变暗,因此您需要另一个单独的操作来恢复亮度。
  • 有人知道如何像 Photoshop 一样恢复亮度吗?
【解决方案2】:

这非常简单,但如果有人想要这个的 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();
    }

}

【讨论】:

  • 您分享的“非常简单”的代码用于乘法过滤器。照片滤镜更复杂
猜你喜欢
  • 2015-08-11
  • 1970-01-01
  • 2012-02-07
  • 1970-01-01
  • 2011-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-18
相关资源
最近更新 更多