Está bem. Então, eu tenho um jogo no qual estou trabalhando com um monte de partículas coloridas. Cada um deles tem sua própria cor, no entanto, todos estão próximos de um tom específico.
Para explicar melhor, estou usando o espaço de cores HSV e tenho uma variável global que varia de 0 a 360 (H) e cada uma das partículas específicas adiciona ou subtrai uma quantidade aleatória disso.
Eu uso o HSV porque é a maneira mais fácil de percorrer as cores, porque você pode mudar H.
Parece muito bom e tudo, no entanto, as partículas devem ser pura luz colorida. No momento, tudo o que são são círculos coloridos com a sombra, mas mais tarde eu poderia adicionar efeitos de brilho e outras técnicas de sombreamento.
O problema é que nem todas as tonalidades (eu não mexo com H ou V) são iguais quanto ao brilho que nossos olhos vêem, e isso causa problemas. Por exemplo, quando todos eles são tons de azul, as coisas parecem bem escuras.
Obviamente, no shader, tenho que converter essas cores HSV em cores RGB e, ao fazer algumas contas, rapidamente vi o que estava errado ... as cores não tinham a mesma luminância!
Pelo que entendi, a luminância é mais (0.2126*color.r + 0.7152*color.g + 0.0722*color.b)
ou menos e é por isso que tudo está desligado.
É uma maneira de obtê-lo para que eu ainda possa obter todos os cromas diferentes (cores nos graus das rodas), mantendo uma alta luminância? Talvez eu deva trabalhar com um tipo de cor diferente do HSV, ou talvez seja uma fórmula que encontre uma cor no grau x na roda de cores com luminância de y?
Muito obrigado!