Shader para cambiar la paleta

Antiguamente, los gráficos de ordenador solían usar color indexado. Es decir en lugar de guardar los valores de rojo, verde y azul de cada píxel, lo que se guardaba era una referencia a uno de los colores de una paleta. Dicha paleta podía ser fija o variable, pero siempre era de una pequeña cantidad de posiciones. Con esto la imagen ocupaba mucha menos memoria debido a que se necesitaban muchos menos bits por píxel.
Esto era una limitación, ya que sólo se podían mostrar en pantalla tantos tonos como posiciones tuviera la paleta. Pero permitió algunos efectos curiosos en aquellos ordenadores que permitían cambiar los colores de la paleta. Como el que pongo a continuación, extraido de: http://www.markferrari.com/


La imagen, en realidad es estática, lo único que hace es ir variando los colores de la paleta, con lo que cambia el color de los píxeles que están referenciados.
Otra utilidad era la reutilización de sprites en los juegos multijugador. De tal forma que a cada jugador se le asignaba el mismo sprite pero con los colores de la paleta diferentes.
Persiguiendo conseguir esta funcionalidad para el juego que tengo en desarrollo, busqué la forma de hacerlo fácilmente en Godot. Pero no encontré que pudiera manejar las imágenes de esta forma. Así que he hecho un pequeño shader que sustituye unos colores por otros.
Es muy básico, pero hace su trabajo.
Podéis encontrarlo aquí si deseáis usarlo:

Comentarios

Entradas populares de este blog

Shader CRT

Cómo puede el juego saber cuándo fue instalado (Android)