Как нарисовать прозрачный многоугольник в OpenGL - PullRequest
5 голосов
/ 26 июня 2010

Мне нужна твоя помощь. Я знаю, что в openGL есть альфа, и это помогает мне рисовать многоугольник в прозрачном режиме, но я не знаю, как это сделать, что должно позволить opengGL рисовать этот многоугольник.

и спасибо за любую помощь.

Ответы [ 2 ]

15 голосов
/ 27 июня 2010

Все просто:

glEnable(GL_BLEND); //Enable blending.
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); //Set blending function.

Это основа, функция смешивания является базовой и должна подойти вам, но есть и другие.

Затем вы должны быть уверены, что ваш оконный / кадровый буфер содержит альфа-канал и что нарисованные полигоны также содержат альфа-информацию.

6 голосов
/ 18 февраля 2011

Это именно так, как говорит Матиас, но вы также должны помнить, что для того, чтобы получить «прозрачность», как предполагается, сначала должны быть нарисованы все непрозрачные примитивы в сцене, а прозрачные должны быть нарисованы вправильный порядок, от задней части Z-буфера к передней части.

Причина этого заключается в том, что OpenGL на самом деле не поддерживает прозрачность, он эмулирует ее посредством альфа-смешения, и поэтому, если новый объект рисуется за «прозрачным» примитивом после того, как он уже отрендерен,новый объект не будет виден через него.

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