summaryrefslogtreecommitdiff
path: root/src/addons/GifMaker/godot-gdgifexporter/gdgifexporter/lookup_similar.shader
diff options
context:
space:
mode:
authorDavid Luevano Alvarado <david@luevano.xyz>2022-05-31 21:11:46 -0600
committerDavid Luevano Alvarado <david@luevano.xyz>2022-05-31 21:11:46 -0600
commit227095a4f710ac6afd43f0a7e8b296f188cf20be (patch)
treee2f7e6a323ca4cad92b6a6012ed01a1afaf517fa /src/addons/GifMaker/godot-gdgifexporter/gdgifexporter/lookup_similar.shader
parentbd197168c39551c3456099ed2a39375a8442483f (diff)
add working gif maker
Diffstat (limited to 'src/addons/GifMaker/godot-gdgifexporter/gdgifexporter/lookup_similar.shader')
-rw-r--r--src/addons/GifMaker/godot-gdgifexporter/gdgifexporter/lookup_similar.shader22
1 files changed, 22 insertions, 0 deletions
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