Добавление цветов (цветов) вместе, как Paint (синий + желтый = зеленый и т. д.)

Я делаю игру для iOS, используя библиотеки cocos2d.

Допустим, у вас есть два объекта с двумя отдельными цветами, определенными в RGB как

Blue:    0,0,255
Yellow:  255,255,0

Я хочу добавить синий и желтый, чтобы получился зеленый.

Чтобы еще больше усложнить ситуацию, предположим, что Синий объект больше, чем Желтый объект (ради аргумента предположим, что соотношение равно 2:1), я добавляю в два раза больше синего, чем желтого — как Я правильно вычисляю этот новый (светло-зеленый) цвет.

Я понимаю, что LAB * Color Space полезен для такого рода «естественных цветов», но я не уверен, как его использовать, особенно в контексте объекта cocos2d, который (насколько мне известно) ограничен использованием RGB в своих цветовых схемах.

Буду очень признателен за практическую помощь в реализации этого. Огромное спасибо!

Обновление от 21/4: Таким образом, в LAB* синий+желтый ≠ зеленый (что имеет смысл, когда вы видите они находятся на противоположных концах одного и того же канала). На самом деле это довольно сложная проблема с небольшимбитомобсуждения SO. Кажется, что окончательный ответ — использовать метод Кубелки-Мунка, который использует часть программного обеспечения с открытым исходным кодом под названием Krita. Нигде не могу найти (ни формулы, ни самого кода).

В этом вопросеесть ссылка, которая использует HSL для работы по методу, аналогичному рисованию. Я попытаюсь посмотреть, работает ли это, и я сообщу результат здесь.

Тем временемесли кто-нибудь знает, как реализовать Kubelka-Munkили где я могу найти код для этого или другое решение, я буду очень и очень доволен!

6
задан Community 23 May 2017 в 12:32
поделиться