Проблема в области смешивания openGL - PullRequest
0 голосов
/ 07 июня 2009

Сначала я рисую изображение на экране, затем рисую маску для рисунка, подобного этому: это круг с белым цветом посередине, а все остальное черное. Я использую glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); чтобы он отображал только белый кружок на заднем изображении. Затем мне нужно нарисовать другое изображение в той же позиции маски. Моя цель состоит в том, чтобы сделать это изображение нарисованным только там, где часть соответствует белому кругу. На самом деле я хочу нарисовать луну. И я должен сделать это непрозрачным. Что мне делать?

Я хочу получить вашу помощь. Вы можете написать мне на 500yearslater@gmail.com

Большое спасибо!

Ответы [ 2 ]

1 голос
/ 07 июня 2009

Просто поместите черный / белый в альфа-канал изображения луны? Это, наверное, самая разумная вещь, которую вы можете сделать, и она следует соглашению.

Или, если вы привержены своему подходу. рендеринг вашего черного / белого в альфа-часть буфера кадра (вероятно, он уже есть, если вы делаете то, что говорите, что делаете), затем используйте DST_ALPHA вместо SRC_ALPHA для следующего прохода Однако обычно это не так в OpenGL.

0 голосов
/ 07 июня 2009

Не знаю, правильно ли я понимаю вопрос, но не могли бы вы использовать только одно изображение с кружком и последним использованным изображением?

Если это не подходит, вы можете использовать буфер трафарета: установите его значение при рисовании второго изображения и рендеринг только на тех пикселях с этим значением в третьем изображении.

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