是否有可能以某种方式使用QtGraphicalEffects
获得多个聚光灯?
透明渐变下方的方格部分是任何QML Item
类型的占位符。因此,最终结果可能是一个完整的场景,动画项目在效果下面运行。
我只能提出一个使用Image
类型的解决方案,其中4个Rectangle
类型锚定到父容器和Image
- 但是这种方法我任何时候场景中只能有一个聚光灯叠加
答案 0 :(得分:0)
我个人使用带有简单着色器的ShaderEffect
,当距离中心的距离增加时,输出会使输出变暗。这比使用纹理便宜,因为它不需要纹理。如果您想要多个聚光灯,只需创建着色器效果的多个实例。您可以对衰减进行参数化和设置动画,并为闪烁效果等内容添加颜色或可变强度等内容。
您必须将场景项渲染到纹理,您只需使用ShaderEffectSource
。然后你实际上需要隐藏场景,以显示它背后的黑色背景。然后,您必须将该纹理传递给每个着色器,这将“显示”靠近聚光灯中心的像素。如果您不想要完全黑色,可以使用不透明度来调整场景,但不能直接在场景项上,而是在父容器项上,以使纹理源完全不透明。