Как использовать Blend, чтобы сделать многоугольник прозрачным? - PullRequest
0 голосов
/ 06 марта 2012

У меня есть приложение, которое показывает два полигона. Мне нужно сделать постепенно невидимым один из полигонов, но другой должен быть видимым. Я работаю с OpenGL ES 1.1. Я разрабатываю для Android, но я думаю, что другие платформы будут делать тот же код с некоторыми незначительными изменениями.

Как я могу это сделать?

Я знаю, что должен сделать это с помощью следующих функций:

    glEnable (GL_BLEND); 
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

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

1 Ответ

1 голос
/ 06 марта 2012

Похоже, правильные функции смешивания там, вызовите их, прежде чем рисовать ваш полупрозрачный многоугольник. Значение альфа обычно предоставляется с картой цветов или текстур (красный, зеленый, синий, альфа), а диапазон для альфа составляет от 0,0 (прозрачный) до 1,0 (непрозрачный) с учетом функции смешивания, приведенной выше.

Также обратите внимание, что полупрозрачные объекты чувствительны к порядку рендеринга: как правило, сначала вы должны нарисовать все ваши непрозрачные объекты, используя буфер глубины как обычно. Затем включите смешивание, установите буфер глубины только для чтения и нарисуйте полупрозрачные объекты задом наперед (сначала нарисуйте самый дальний от камеры). Таким образом, смешивание фрагментов происходит от самого дальнего к ближайшему.

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