Проблема в области бленда openGL

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

Я хочу получить вашу помощь. вы можете написать мне по адресу [email protected]

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


person Community    schedule 07.06.2009    source источник
comment
Ваш метод звучит немного нестандартно. Не могли бы вы объяснить, почему вы пытаетесь это сделать? (Кроме того, в StackOverflow мы не пишем друг другу по электронной почте, мы отвечаем на этом сайте)   -  person Macke    schedule 07.06.2009
comment
Похоже, он или она привыкли к тому, как вы рисуете замаскированные спрайты с помощью BitBlt.   -  person Eric    schedule 02.08.2009


Ответы (2)


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

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

person Macke    schedule 07.06.2009
comment
привет, Маркус Линдблом, я новый пользователь как в stackoverflow, так и в openGL, может быть, я не очень четко описал свой вопрос, теперь я загрузил несколько изображений, которые помогают понять мои мысли. 1 изображение сзади, которое я нарисую, будет следующим: profile .imageshack.us/user/walking_snail/images/detail/#197/ 2. затем я нарисую изображение как маску для другого изображения profile.imageshack.us/user/walking_snail/images/detail/#192/ 3. теперь мне нужно нарисовать следующее изображение profile.imageshack.us/user/walking_snail/images /detail/#194/ что мне делать? - person ; 07.06.2009
comment
забудьте об этом, это пример окончательного результата: profile.imageshack .us/user/walking_snail/images/detail/#32/ да, может быть, вы знаете, что это игра Bejeweled из поп-шапки. Я хочу клонировать его, так как все ресурсы находятся в каталоге установки. Желаю получить больше помощи, большое спасибо! - person ; 07.06.2009

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

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

person Artur Soler    schedule 07.06.2009