summaryrefslogtreecommitdiff
path: root/src/addons/GifMaker/godot-gdgifexporter/gdgifexporter/lookup_similar.shader
blob: 061466192e92d4ccaa4a60d59aba4272b289bbf0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
shader_type canvas_item;
render_mode unshaded;

uniform sampler2D lut;

void fragment() {
	vec4 color = texture(TEXTURE, UV);
	vec4 similar = texture(lut, vec2(0.5 / 256.0, 0.5));
	float index = 0.0;
	if (color.a > 0.0) {
		float dist = distance(color.xyz, similar.xyz);
		for (int i = 1; i < 256; i++) {
			vec4 c = texture(lut, vec2((float(i) + 0.5) / 256.0, 0.5));
			float d = distance(color.xyz, c.xyz);
			if (d < dist) {
				dist = d;
				index = float(i) / 255.0;
			}
		}
	}
	COLOR = vec4(vec3(index), 1.0);
}