屏幕外渲染器中的Qt3D透明度

时间:2018-05-31 07:37:27

标签: qt transparency qt3d

我正在使用Qt3D与此offscreen renderer的组合,并修改了框架图以包含背景图像,如here

不幸的是,使用QPhongAlphaMaterial为背景图像上绘制的对象添加透明度只会令人不满意。

这是结果:

this is the result

这里你看不到的是整个圆形部分实际上是透明的,即渲染器为整个像素写入了对象的透明度值,而不是在背景上透明地添加它。

这就是渲染对象的透明度:

enter image description here

这就是背景:

enter image description here

框架图有两个分支:一个用于背景图像,首先处理,一个用于对象。我为包含QRenderStateSet的对象添加了QBlendEquation,其中混合函数设置为add,并且QBlendEquationArguments的源RGB和alpha设置为1,目标RGB和alpha设置为1减去源alpha。

任何想法如何解决这个问题?

(对于任何想知道的人,我从T-Less dataset拍摄了图像并编写了一个程序来创建6D姿势估计的地面实况数据)

1 个答案:

答案 0 :(得分:1)

this question类似,正在渲染的纹理格式需要设置为RGB8_UNorm而不是RGBA8_UNorm,即没有Alpha通道。