1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-02-22 13:33:13 +00:00
Pixelorama/src/Shaders/AutoInvertColors.shader
Manolis Papadeas 1b286a95ab Optimize AutoInvertColors shader
Not sure if that single if statement counts as branching code, but it's generally a good idea to avoid if statements in shader code, so I used step instead.
2021-05-22 16:08:11 +03:00

9 lines
267 B
GLSL

shader_type canvas_item;
void fragment() {
vec3 inverted = vec3(1.0) - COLOR.rgb;
vec3 screen_color = textureLod(SCREEN_TEXTURE, SCREEN_UV, 0.0).rgb;
float avg = (screen_color.r + screen_color.g + screen_color.b) / 3.0;
COLOR.rgb = inverted * step(avg, 0.5);
}