From 7cf87ac142bc732b35c779949634be17b7b51bb6 Mon Sep 17 00:00:00 2001 From: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com> Date: Fri, 22 Nov 2024 18:01:29 +0200 Subject: [PATCH] Slightly optimize IndexedToRGB.gdshader Multiply the index by 255.0 only once, instead of dividing and multiplying it again --- src/Shaders/IndexedToRGB.gdshader | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Shaders/IndexedToRGB.gdshader b/src/Shaders/IndexedToRGB.gdshader index b86caa1a8..1ca167744 100644 --- a/src/Shaders/IndexedToRGB.gdshader +++ b/src/Shaders/IndexedToRGB.gdshader @@ -7,14 +7,14 @@ uniform sampler2D palette_texture : filter_nearest; uniform sampler2D indices_texture : filter_nearest; void fragment() { - float index = texture(indices_texture, UV).r; + float index = texture(indices_texture, UV).r * 255.0; if (index <= EPSILON) { // If index is zero, make it transparent COLOR = vec4(0.0); } else { float n_of_colors = float(textureSize(palette_texture, 0).x); - index -= 1.0 / 255.0; - float index_normalized = ((index * 255.0)) / n_of_colors; + index -= 1.0; + float index_normalized = index / n_of_colors; if (index_normalized + EPSILON < 1.0) { COLOR = texture(palette_texture, vec2(index_normalized + EPSILON, 0.0)); }