2016-11-08 17 views
1

Мне нужно нарисовать несколько «слоев» растровых изображений, которые полупрозрачны для FBO (для последующего чтения).Оказание слоев растровых изображений с альфой до FBO

Мой текущий подход - создать FBO, прикрепить к нему текстуру и использовать glTexSubImage2D для «рисования» растровых изображений в FBO, однако это не работает, поскольку glTexSubImage2D не рисует/не смешивает пиксели, а просто перепишите пиксели, находящиеся в настоящее время в текстуре.

Каков наилучший способ для этого?

ответ

2
  • Вы создаете FBO с чистой текстурой R, прикрепленной к окончательному результату.
  • Для каждого из растровых изображений вас:
    • Загрузить растровое изображение текстуры T (T и R и является различными текстуры).
    • Оформить квадрат с текстурой T с FBO с включенным и правильно настроенным GL_BLEND.

Конечный результат в том, что R имеет свои смешанные растровые изображения. Теперь вы можете прочитать его или использовать в других процессах текстурирования.

+0

Спасибо, это работает. Заключительный вопрос: мои слои могут иметь разный размер (следовательно, glTextSubImage2D), что означает, что в T. могут быть остатки предыдущего слоя. Какой лучший способ удостовериться, что у меня есть пустая текстура между рисованием каждого слоя? – monoceres

+0

Если размер шрифта текстуры: каждый раз создавайте новую текстуру или настраивайте свои квадратные и текстурные координаты так, чтобы они рисовали и отбирали только в/из соответствующей части FBO/текстуры. – ybungalobill

+0

Разработал это :) – monoceres

 Смежные вопросы

  • Нет связанных вопросов^_^