Есть ли способ сделать всю сцену Android OpenGL ES прозрачной? - PullRequest
1 голос
/ 24 ноября 2011

Есть ли способ сделать прозрачной всю сцену Android OpenGL ES? Это было бы полезно для виджетов и обоев.

Здесь есть один специфичный для Android ответ здесь . Но я понимаю, что эта техника создает прозрачный фон, на котором можно рисовать прозрачные фигуры.

Я ищу способ сделать всю сцену прозрачной после ее отрисовки. Например, есть ли способ изменить альфа всего цветового буфера после прорисовки сцены?

Ответы [ 2 ]

3 голосов
/ 24 ноября 2011

Да, и это довольно просто. Вам необходимо смешать значения в цветовом буфере, покрыв весь вид квадратом, используя правильный цвет и функцию смешивания. Я думаю, что это поможет:

  • Нарисуй свою сцену как обычно
  • набор glBlendFunc(GL10.GL_ZERO, GL10.GL_SRC_COLOR)
  • Нарисуйте нетекстурированный цветной четырехугольник, который покрывает весь вид с (R, G, B, A) = (1,1,1, a), где a - желаемая непрозрачность

Это должно масштабировать альфа colorbuffer с a, который я думаю, что вы хотите.

0 голосов
/ 24 ноября 2011

Если вам может потребоваться API 14 (Android 4.0), то есть новый класс, который решает эту проблему: TextureView .В этом блоге разработчиков Android есть информация об этом.К сожалению, я не думаю, что есть простой способ сделать это в предыдущих версиях Android.

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