D'accord. J'ai donc un jeu sur lequel je travaille avec un tas de particules colorées. Chacun d'eux a sa propre couleur mais ils sont tous proches d'une teinte spécifique.
Pour expliquer cela, j'utilise mieux l'espace colorimétrique HSV, et j'ai une variable globale qui passe de 0 à 360 (H) et chacune des particules spécifiques ajoute ou soustrait une quantité aléatoire de cela.
J'utilise HSV parce que c'est le moyen le plus simple pour moi de faire défiler les couleurs car vous pouvez simplement changer H.
Cela a l'air très agréable et tout, mais les particules sont censées être de la lumière pure colorée. Pour le moment, ce ne sont que des cercles colorés avec l'ombre, mais plus tard, je pourrais ajouter des effets d'éclat et d'autres techniques d'ombrage.
Le problème est que toutes les nuances (je ne joue pas avec H ou V) ne sont pas égales en ce qui concerne la luminosité que nos yeux voient, ce qui pose des problèmes. Par exemple, quand tous sont des nuances de bleu, les choses semblent assez sombres.
Évidemment, dans le shader, je dois convertir ces couleurs HSV en couleurs RVB et en faisant quelques calculs, j'ai rapidement vu ce qui n'allait pas ... les couleurs n'avaient pas la même luminance!
Si je comprends bien, la luminance est à peu près (0.2126*color.r + 0.7152*color.g + 0.0722*color.b)
ce qui explique pourquoi tout est éteint.
Est-ce un moyen de l'obtenir pour que je puisse toujours obtenir tous les différents chrominances (couleurs sur les degrés des roues) tout en maintenant une luminance élevée? Peut-être devrais-je travailler avec un type de couleur différent de HSV, ou peut-être que leur formule trouve une couleur au degré x sur la roue chromatique avec une luminance de y?
Merci beaucoup!