Glow
ImportStatement: import QtGraphicalEffects 1.0
Since: QtGraphicalEffects 1.0
Inherits: Item
Properties
cached :bool
color :color
fast : bool
radius :real
samples :int
source :variant
spread :real
transparentBorder: bool
DetailedDescription
默认的效果为产生一个高质量的发光图像。因此渲染速度可能不是最快的。当发光边缘需要严重软化时,渲染速度降低的格外严重。
如果我们需要快速的渲染速度,同时我们不需要尽可能高的视觉质量,我们能设置fast属性为真。
源 | 影响 |
---|---|
|
|
实例代码:
importQtQuick 2.0
importQtGraphicalEffects 1.0
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: 16
color: "white"
source: butterfly
}
}
PropertyDocumentation
cached :bool
是否缓冲输出,缓冲提高渲染效率,但消耗更多内存。每当源或影响属性发生变化,缓冲都会更新。当源和影响属性是动画时,推荐关闭缓冲,默认为假。
color :color
用于发光的RGBA颜色。默认为" white "
颜色变化的影响 | ||
---|---|---|
|
|
|
color: #ffffff | color: #00ff00 | color: #aa00ff00 |
radius: 8 | radius: 8 | radius: 8 |
samples: 16 | samples: 16 | samples: 16 |
spread: 0.5 | spread: 0.5 | spread: 0.5 |
fast : bool
是否选择模糊算法,以使发光有软化的效果。设置为真打开快速算法,设置为假产生高质量的结果。默认为假。
Fast的影响 | ||
---|---|---|
|
| |
fast: false | fast: true | |
radius: 16 | radius: 16 | |
samples: 24 | samples: 24 | |
color: #ffffff | color: #ffffff | |
spread: 0.3 | spread: 0.3 |
radius :real
半径定义了发光的软化。巨大的半径让发光显得更模糊。根据半径值设置足够的样品,才能保能视觉质量。值为0.0(无模糊)到inf。默认为0。
半径的影响 | ||
---|---|---|
|
|
|
radius: 0 | radius: 6 | radius: 12 |
samples: 24 | samples: 24 | samples: 24 |
color: #ffffff | color: #ffffff | color: #ffffff |
spread: 0 | spread: 0 | spread: 0 |
samples :int
当计算发光边缘软化值是,每个像素取多少个样品。越大的值表示越好的视觉质量,但渲染得更慢。推荐它的值为最大半径值得两倍。例如,如果半径为0~4之间变化,样品值取8。样品值在0到32之间,默认为0。
这个属性没有计划被动画化。改变这个属性将促使OpenGL着色器被重新编译。当fast属性设置为真,这个属性不产生影响。
source :variant
用来产生发光的源的组件实例。它不支持影响本身,所以不能设置父到source上。
spread :real
在源边缘附近多大尺寸的发光颜色被强化。值在0.0到1.0之间,默认为0.5。
Spread的影响 | ||
---|---|---|
|
|
|
spread: 0.0 | spread: 0.5 | spread: 1.0 |
radius: 8 | radius: 8 | radius: 8 |
samples: 16 | samples: 16 | samples: 16 |
color: #ffffff | color: #ffffff | color: #ffffff |
transparentBorder: bool
模糊在源实例边缘附近的行为,在源边缘是否受外部像素的影响。
如果属性为真,源外边的像素被解释为透明,这类似于OpenGL的clamp-to-border扩展行为,模糊扩展到源实例的外部。
如果属性为假,源外边的像素被解释为和边缘一个颜色,这类似于OpenGL的clamp-to-edge扩展行为,模糊不会扩展到源实例的外部。
默认为假。