OK. Ich habe also ein Spiel, an dem ich mit ein paar farbigen Partikeln arbeite. Jeder von ihnen bekommt seine eigene Farbe, aber sie sind alle nahe an einem bestimmten Farbton.
Um dies besser zu erklären, verwende ich den HSV-Farbraum und habe eine globale Variable, die von 0 bis 360 (H) wechselt, und jedes der spezifischen Partikel addiert oder subtrahiert eine zufällige Menge davon.
Ich benutze HSV, weil es für mich der einfachste Weg ist, durch Farben zu blättern, weil Sie einfach H ändern können.
Das sieht sehr gut aus und alles, aber die Partikel sollen reines Licht sein, das gefärbt ist. Im Moment sind alles Kreise, die mit dem Farbton gefärbt sind, aber später könnte ich Glüheffekte und andere Schattierungstechniken hinzufügen.
Das Problem ist, dass nicht alle Schattierungen (ich lege mich nicht mit H oder V an) gleich sind, was die Helligkeit betrifft, die unsere Augen sehen, und dies verursacht Probleme. Wenn zum Beispiel alle Blautöne sind, sehen die Dinge ziemlich dunkel aus.
Natürlich muss ich im Shader diese HSV-Farben in RGB-Farben konvertieren und beim Rechnen schnell erkennen, was falsch war ... die Farben hatten nicht die gleiche Leuchtdichte!
Soweit ich weiß, ist (0.2126*color.r + 0.7152*color.g + 0.0722*color.b)
die Luminanz ungefähr so hoch, weshalb alles ausgeschaltet ist.
Ist dies ein Weg, um es zu bekommen, damit ich immer noch all die verschiedenen Farbsättigungen (Farben auf den Rädern Grad) erhalten kann, während ich eine hohe Leuchtdichte beibehalte? Vielleicht sollte ich mit einer anderen Art von Farbe als HSV arbeiten, oder vielleicht ist es eine Formel, die eine Farbe im Grad x auf dem Farbkreis mit einer Luminanz von y findet?
Vielen Dank!
Antworten:
HCY könnte besser für Ihre Bedürfnisse sein. Laut der HSL- und HSV-Seite von Wikipedia ist das Problem, das Sie mit HSV haben - dass dasselbe "V" mit unterschiedlichen Farbtönen nicht der menschlichen Wahrnehmung entspricht - mit HSL ähnlich, aber HCY könnte Ihren Bedürfnissen entsprechen - dem "Y" in HCY steht für "Luma":
HCY wird auf der Wikipedia-Seite als "luma / chroma / hue" beschrieben. Auf dieser Seite wird anscheinend die Kurzform "HCY" verwendet, und es wird gezeigt, wie sie in und aus RGB konvertiert wird.
quelle