0

我是像素弯曲的新手。

我正在用 as3 编程。我想做一个绿屏校准器。我已经设法使用着色器过滤器(通过在线搜索)将一个 rgb(Hex) 颜色 alpha 变为 0:

{
    input image4 src;
    output pixel4 dst;

    parameter float3 keyColor0;

    parameter float tolerance
    <
        minValue: 0.0;
        maxValue: 3.0;
        defaultValue: 0.02;
    >;

    parameter float ramp
    <
        minValue: 0.0;
        maxValue: 1.0;
        defaultValue: 0.005;
    >;

     parameter float gamma
    <
        minValue: 0.0;
        maxValue: 10.0;
        defaultValue: 1.00;
    >;

    void
    evaluatePixel()
    {
        dst = sampleNearest(src,outCoord());
        float diff = length( dst.rgb - keyColor0);
        if ( diff < tolerance )
        {
            dst.a = 0.0;
        } else if ( diff < tolerance + ramp )
        {
            dst.a = pow( (diff - tolerance) / ramp, gamma );
        }            
    }
}

但是,我想做的是给它两种 rgb 颜色,它将使两种给定 rgb(Hex) 颜色之间的所有颜色也设置为 alpha 0。

例如,我从图像中选择一系列颜色。它是一组不同的绿色,然后我通过使用 HSV 从一组颜色中找到最小值和最大值。

使用最小值和最大值,我想将两种颜色之间的所有颜色设置为 alpha 0。

谢谢

4

0 回答 0