首页 文章

Qt QML聚焦效果

提问于
浏览
1

有可能以某种方式使用 QtGraphicalEffects 获得多个聚光灯吗?

透明渐变下方的方格部分是任何类似QML Item 类型的占位符 . 因此最终结果可能是一个完整的场景,动画项目在效果下面运行 .

我只能想出一个使用 Image 类型的解决方案,其中4个 Rectangle 类型锚定到父容器和 Image - 但是通过这种方法我一次只能在场景上有一个聚光灯覆盖

Spotlight effect

我喜欢它,所以我可以在一个场景中混合使用多个聚光灯:
enter image description here

1 回答

  • 0

    我个人使用带有简单着色器的 ShaderEffect ,当距离中心的距离增加时,输出会使输出变暗 . 这比使用纹理便宜,因为它不需要纹理 . 如果您想要多个聚光灯,只需创建着色器效果的多个实例 . 您可以对衰减进行参数化和动画处理,还可以为闪烁效果等内容添加颜色或可变强度等内容 .

    您必须将场景项渲染到纹理,您只需使用 ShaderEffectSource . 然后你实际上需要隐藏场景,为了显示一个想要完全黑色的黑色背景,你可以使用不透明度调低场景,但不能直接在场景项目上,而是在父容器项目上,为了使纹理源完全不透明 .

相关问题