OpenGL прозрачные объекты поверх фонового изображения - PullRequest
0 голосов
/ 05 июня 2018

Из-за плохой производительности (высокая загрузка ЦП) в моем Qt3DOffscreenRenderer , который использует инфраструктуру Qt3D, я реализовал новый внеэкранный рендерер , использующий только / в основном OpenGL.

К сожалению, я не могу сделать объект, нарисованный поверх фонового изображения, прозрачным.Я включил смешивание и установил glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);.

Результат следующий:

enter image description here

Чего вы не можете видеть, так это того, что альфа пикселей логотипа Qt равен 0,5.

Для справки, это изображение без прозрачности:

enter image description here

Я просто хочу, чтобы логотип Qt был немного прозрачным, какИтак:

enter image description here

Мне удалось создать это изображение, используя этот пример и изменив его для использования функции смешивания, упомянутой выше, иальфа-значение 0,5 в шейдере.

Как этого добиться для закадрового рендерера?Я экспериментировал со многими параметрами, но мне не повезло.

1 Ответ

0 голосов
/ 06 июня 2018

Проблема была в том, что я установил внутренний формат текстуры QFramebufferObjectFormat на GL_RGBA32F, но он должен быть GL_RGB32F (т.е. без альфа-канала).

...