From 227095a4f710ac6afd43f0a7e8b296f188cf20be Mon Sep 17 00:00:00 2001 From: David Luevano Alvarado Date: Tue, 31 May 2022 21:11:46 -0600 Subject: add working gif maker --- .../gdgifexporter/lookup_similar.shader | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/addons/GifMaker/godot-gdgifexporter/gdgifexporter/lookup_similar.shader (limited to 'src/addons/GifMaker/godot-gdgifexporter/gdgifexporter/lookup_similar.shader') diff --git a/src/addons/GifMaker/godot-gdgifexporter/gdgifexporter/lookup_similar.shader b/src/addons/GifMaker/godot-gdgifexporter/gdgifexporter/lookup_similar.shader new file mode 100644 index 0000000..0614661 --- /dev/null +++ b/src/addons/GifMaker/godot-gdgifexporter/gdgifexporter/lookup_similar.shader @@ -0,0 +1,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); +} \ No newline at end of file -- cgit v1.2.3-54-g00ecf