Okay. Así que tengo un juego en el que estoy trabajando con un montón de partículas de colores. Cada uno de ellos tiene su propio color, sin embargo, todos están cerca de un tono específico.
Para explicar eso mejor, estoy usando el espacio de color HSV, y tengo una variable global que va de 0 a 360 (H) y cada una de las partículas específicas suma o resta una cantidad aleatoria de eso.
Utilizo HSV porque es la forma más fácil para mí de recorrer los colores porque puedes cambiar H.
Esto se ve muy bien y todo, sin embargo, se supone que las partículas son luz pura coloreada. En este momento, todos son círculos coloreados con la sombra, pero más tarde podría agregar efectos de brillo y otras técnicas de sombreado.
El problema es que no todos los tonos (no me meto con H o V) son iguales en cuanto al brillo que ven nuestros ojos, y esto causa problemas. Por ejemplo, cuando todos ellos son tonos de azul, las cosas se ven bastante oscuras.
Obviamente, en el sombreador, tengo que convertir estos colores HSV a colores RGB y, haciendo algunos cálculos, rápidamente vi lo que estaba mal ... ¡los colores no tenían la misma luminosidad!
Según tengo entendido, la luminancia es más o menos, (0.2126*color.r + 0.7152*color.g + 0.0722*color.b)
por eso todo está apagado.
¿Es su forma de obtenerlo para que pueda obtener todos los diferentes croma (colores en los grados de las ruedas) mientras mantengo una alta luminosidad? ¿Tal vez debería trabajar con un tipo de color diferente al HSV, o tal vez sea una fórmula que encuentre un color en grado x en la rueda de colores con luminancia de y?
¡Muchas gracias!