Хорошо. Итак, у меня есть игра, над которой я работаю, с кучей цветных частиц. Каждый из них получает свой собственный цвет, но все они близки к определенному оттенку.
Чтобы объяснить это лучше, я использую цветовое пространство HSV, и у меня есть глобальная переменная, которая циклически изменяется от 0 до 360 (H), и каждая из конкретных частиц добавляет или вычитает случайное количество из этого.
Я использую HSV, потому что это самый простой способ для меня переключаться между цветами, потому что вы можете просто изменить H.
Это выглядит очень красиво и все, однако частицы должны быть чистого света, который окрашен. Прямо сейчас все они - круги, окрашенные в тень, но позже я мог бы добавить эффекты свечения и другие методы затенения.
Проблема в том, что не все оттенки (я не связываюсь с H или V) равны по яркости, которую видят наши глаза, и это вызывает проблемы. Например, когда все они оттенков синего, вещи выглядят довольно темными.
Очевидно, что в шейдере мне нужно преобразовать эти цвета HSV в цвета RGB, и, выполнив некоторые математические расчеты, я быстро понял, что не так ... цвета не имели одинаковой яркости!
Насколько я понимаю, яркость примерно, (0.2126*color.r + 0.7152*color.g + 0.0722*color.b)
поэтому все выключено.
Является ли это способом получить его, чтобы я мог получать все различные цветовые оттенки (цвета на колесах), сохраняя высокую яркость? Возможно, мне следует работать с цветом другого типа, чем HSV, или, может быть, это формула, которая находит цвет в степени x на цветовом круге с яркостью y?
Спасибо большое!