Ok. Quindi ho un gioco sul quale sto lavorando con un mucchio di particelle colorate. Ognuno di loro ottiene il proprio colore, tuttavia sono tutti vicini a una tonalità specifica.
Per spiegare meglio sto usando lo spazio colore HSV, e ho una variabile globale che va da 0-360 (H) e ciascuna delle particelle specifiche aggiunge o sottrae una quantità casuale da quella.
Uso HSV perché è il modo più semplice per scorrere i colori perché puoi semplicemente cambiare H.
Sembra molto bello e tutto, tuttavia si suppone che le particelle siano pura luce colorata. In questo momento sono solo dei cerchi colorati con l'ombra, ma in seguito potrei aggiungere effetti di bagliore e altre tecniche di ombreggiatura.
Il problema è che non tutte le sfumature (non scherzo con H o V) sono uguali per quanto riguarda la luminosità che i nostri occhi vedono, e questo causa problemi. Ad esempio, quando sono tutte sfumature di blu, le cose sembrano piuttosto scure.
Ovviamente nello shader devo convertire questi colori HSV in colori RGB e facendo un po 'di matematica ho visto rapidamente cosa non andava ... i colori non avevano la stessa luminanza!
A quanto ho capito, la luminanza è approssimativamente (0.2126*color.r + 0.7152*color.g + 0.0722*color.b)
ed è per questo che tutto è spento.
È un modo per ottenerlo in modo che io possa ancora ottenere tutti i diversi chroma (colori sui gradi delle ruote) mantenendo un'alta luminanza? Forse dovrei lavorare con un diverso tipo di colore rispetto a HSV, o forse la loro è una formula che trova un colore a gradi x sulla ruota dei colori con luminanza di y?
Grazie mille!