Прозрачность Qt3D в рендере за пределами экрана - PullRequest
0 голосов
/ 31 мая 2018

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

К сожалению, добавив прозрачностьдля объектов, нарисованных над фоновым изображением с помощью QPhongAlphaMaterial, работает только неудовлетворительно.

Это результат:

this is the result

Что выздесь не видно, что вся круговая часть фактически прозрачна, то есть средство визуализации записало значение прозрачности объекта для всего пикселя вместо прозрачного добавления его поверх фона.

Это то, чтовизуализированный объект выглядит без прозрачности:

enter image description here

И это фон:

enter image description here

Framegraph имеет две ветви: одну для фонового изображения, которое обрабатывается первой, и одну для объектов.Я добавил QRenderStateSet для объектов, которые содержат QBlendEquation с добавленной функцией наложения и QBlendEquationArguments с исходным RGB и альфа, установленным на 1, и целевым RGB и альфа, установленным на 1, минус исходный альфа.

Есть идеи, как решить эту проблему?

(Для всех, кто интересуется, я взял изображения из набора данных T-Less и написал программу для создания основополагающих данных для6D оценка позы)

1 Ответ

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

Подобно в этом вопросе , формат текстуры, для которой выполняется рендеринг, должен быть установлен на RGB8_UNorm, а не RGBA8_UNorm, т.е. без альфа-канала.

...