Как настроить смешивание для наложения аддитивных цветов? - PullRequest
11 голосов
/ 26 декабря 2008

Возможно ли в opengl настроить смешивание для достижения аддитивного наложения цветов?

Красный + зеленый = желтый, голубой + пурпурный = белый и т. Д. (См. диаграмма )

Ответы [ 2 ]

17 голосов
/ 26 декабря 2008
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE);

должен это сделать.

Посмотрите полное описание glBlendFunc

РЕДАКТИРОВАТЬ: Старая ссылка на учебник кажется мертвым (403 запрещено). Wayback'd .

5 голосов
/ 29 декабря 2008

Простое аддитивное смешивание достигается с помощью glBlendFunc (GL_ONE, GL_ONE). Вам необходимо учитывать тот факт, что диапазон цветовых значений OpenGL ограничен [0,1], а значения больше 1 будут ограничены до 1, поэтому добавление ярких цветов может не дать физически правильно смешанных цветов. Если вы хотите достичь этого, вам придется добавлять и масштабировать цвета в вашем собственном программном обеспечении, а не в OpenGL, или писать шейдерную программу, которая делает это во время рендеринга.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...