¿Cómo puedo simular una paleta de colores limitada (256) en OpenGL?

16

En Twitter, encontré esta captura de pantalla de un juego en desarrollo:

ingrese la descripción de la imagen aquí

La imagen en la parte superior parece estar sin ninguna limitación de color. Pero las otras dos imágenes en la parte inferior tienen una paleta de 256 colores.

Quiero lograr un efecto similar en mi juego (estoy usando OpenGL). ¿Como lo puedo hacer?

oxysoft
fuente
Relacionado: gamedev.stackexchange.com/questions/43294/…
Laurent Couvidou
¿Desea dibujar gráficos de la vieja escuela como 256 colores o desea que los gráficos de 24 bits parezcan gráficos de la vieja escuela? En otras palabras, ¿desea publicar el proceso o utilizar una paleta de 256 colores? Aquí le mostramos cómo hacer gráficos de 256 colores paletizados en WebGL
gman el

Respuestas:

32

Soy el creador de esa imagen.

La imagen de la derecha se representa con una textura de búsqueda de color. En el sombreador GLSL final, aplico el dither, luego convierto los valores RGB en enteros en el rango 0 <= x <40, los combino en un solo índice, luego busco el valor de color resultante en esta imagen:

tabla de consulta de color

La fila más baja es la paleta sin procesar.

La imagen a la izquierda se realiza únicamente en el sombreador reduciendo la muestra de los canales rojo y verde a 8 valores, y el canal azul a 4 valores después de aplicar el tramado, lo que da como resultado RGB332. También he jugado con 7 tonos rojos, 9 verdes y 4 azules, lo que da como resultado solo 252 colores, pero con un mayor énfasis en el verde, al que el ojo humano es el más sensible.

Muesca
fuente
6

Puede usar una tabla de búsqueda de gradación de color en un paso de postproceso como se describe aquí y probablemente aquí .

ingrese la descripción de la imagen aquí

Una vez que hayas implementado esto, todo lo que tendrás que hacer es hacer una captura de pantalla, superponer la textura de búsqueda encima de ella, luego editarla en un software de gráficos arbitrarios hasta que te guste, y luego recuperar la textura de búsqueda modificada nuevamente. Esto puede incluir o no reducir la tabla de búsqueda recuperada a un subconjunto de colores.

Al cargar la textura de búsqueda con la limitación de color en mente, solo asegúrese de deshabilitar todo el filtrado, para que no produzca colores adicionales.

Adán
fuente