默认图片
SCREEN_TEXTURE 内建纹理
void fragment() {}
COLOR = textureLod(SCREEN_TEXTURE, SCREEN_UV, 0.0);
}
一个不可见的对象,因为它只是显示了背后的东西。
对其后面的对象进行亮点饱和度处理
uniform float brightness = .5;
uniform float contrast = .5;
uniform float saturation = .5;
void fragment() {
vec3 c = textureLod(SCREEN_TEXTURE, SCREEN_UV, 0.0).rgb;
c.rgb = mix(vec3(0.0), c.rgb, brightness);
c.rgb = mix(vec3(0.5), c.rgb, contrast);
c.rgb = mix(vec3(dot(vec3(0.2125, 0.7154 ,0.0721), c.rgb) ), c.rgb, saturation);
COLOR.rgb = c;
}
说明:
亮度 = 原像素亮度百分比
对比度 = (0.5-原像素)对比度百分比+原像素
饱和度(官方错误) = (dot(1,原像素)/3-原像素)饱和度百分比+原像素
饱和度(实际) = (dot((0.2125,0.7154,0.0721,原像素)-原像素)饱和度百分比+原像素
官方的饱和度虽然错了,但也有效果