我用的是qt3d offscreen renderer 并修改框架图以包含背景图像,如 here .
不幸的是,使用 QPhongAlphaMaterial 只是工作不尽如人意。
QPhongAlphaMaterial
这是结果:
这就是渲染对象在没有透明度的情况下的外观:
这是背景:
框架图有两个分支:一个用于背景图像,它首先被处理,另一个用于对象。我加了一个 QRenderStateSet 对于包含 QBlendEquation 混合函数设置为add和 QBlendEquationArguments 源rgb和alpha设置为1,目标rgb和alpha设置为1减去源alpha。
QRenderStateSet
QBlendEquation
QBlendEquationArguments
(对于任何想知道的人,我从 T-Less dataset 并编写了一个程序来创建用于6D姿态估计的地面真值数据)
类似于 this question ,需要将要渲染到的纹理的格式设置为 RGB8_UNorm 而不是 RGBA8_UNorm ,即没有alpha通道。
RGB8_UNorm
RGBA8_UNorm