作者:billy
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处
属性介绍
-
cached : alias
使用缓存效果输出像素,可以提高渲染性能。每次更改源或效果属性时,都必须更新缓存中的像素。会增加内存消耗,因为存储效果输出需要额外的内存缓冲区。所以我们建议在源属性或效果属性设置动画时禁用缓存。默认为 false -
color : alias
用于发光的 RGBA 颜色值。默认情况下,该属性为 “white” -
radius : alias
半径定义光晕的柔和度。半径越大,光晕的边缘越模糊。根据半径值,样本值应设置为足够大,以确保视觉质量。理想的模糊是通过选择采样和半径来实现的,即 采样 = 1 + 半径 * 2。默认情况下,该值为 floor(samples / 2) -
samples : alias
在完成模糊计算时每个像素采集的采样数。值越大,质量越好,但渲染速度越慢。默认情况下,该值为 9。注意:此属性不触发动画。更改此属性可能会导致重新编译基础 OpenGL 着色器 -
source : alias
生成的光晕源的源项。注意:不支持让效果包含自身 -
spread : alias
在源边附近光晕颜色的大部分增强程度。值的范围为 0.0 到 1.0。默认情况下,该属性设置为 0.5。注意:该实现针对中、低排列值进行了优化。根据来源的不同,接近 1.0 的排列值可能会产生视觉上不对称的结果 -
transparentBorder : alias
确定效果是否具有透明边框。设置为 true 时,项目的外部将填充透明边,使源纹理外部的采样使用透明而不是边缘像素。如果没有此属性,具有不透明边缘的图像将不会获得模糊边缘。默认情况下,该属性设置为 true。如果源已具有透明边,则将其设置为 false,以使模糊速度加快一点
注意事项
- Glow 支持 OpenGL 渲染
- Glow 效果会模糊源的 alpha 通道,并使用颜色对其着色,然后将其放置在源的后面,从而在对象周围产生光晕
- Glow 是通过使用高斯模糊来实时模糊图像创建的。执行实时模糊是一项成本高昂的操作。在高端图形硬件上,即使采样数适中,全屏高斯模糊也只能以 60 fps 的速度运行
不同数值效果展示
官方示例
import QtQuick 2.12
import QtGraphicalEffects 1.12
Item {
width: 300
height: 300
Rectangle {
anchors.fill: parent
color: "black"
}
Image {
id: butterfly
source: "images/butterfly.png"
sourceSize: Qt.size(parent.width, parent.height)
smooth: true
visible: false
}
Glow {
anchors.fill: butterfly
radius: 8
samples: 17
color: "white"
source: butterfly
}
}