为什么 GLSL 着色器将深色变为绿色

问题描述 投票:0回答:1

这是我的 GLSL 着色器,用于输入纹理数据。

vec3 ExtractColor(vec3 Color, float LumaMask)
{
    float Luma = dot(Color, vec3(1));
    float ColorMask = exp(-Luma * 2 * PI / LumaMask);
    Color = mix( Color, vec3(Luma), ColorMask);
    return vec3(Color / dot(Color, vec3(1.0)));                 
}

我面临的问题是,当颜色非常接近黑色或明亮时,它会转换为绿色。

glsl
1个回答
0
投票

这里 vec3(Luma) 值被用作新的颜色值,因此请尝试以下操作。

改变

Color = mix( Color, vec3(Luma), ColorMask);

Color = mix(Color, Color, ColorMask);
© www.soinside.com 2019 - 2024. All rights reserved.