Displace
ImportStatement: import QtGraphicalEffects 1.0
Since: QtGraphicalEffects 1.0
Inherits: Item
Properties
cached :bool
displacement: real
displacementSource: variant
source :variant
DetailedDescription
源 | 位移源 | 影响 |
---|---|---|
|
|
|
实现代码:
importQtQuick 2.0
importQtGraphicalEffects 1.0
Item {
width: 300
height: 300
Image {
id: bug
source: "images/bug.jpg"
sourceSize: Qt.size(parent.width,parent.height)
smooth: true
visible: false
}
Rectangle {
id: displacement
color: Qt.rgba(0.5, 0.5, 1.0, 1.0)
anchors.fill: parent
visible: false
Image {
anchors.centerIn: parent
source:"images/glass_normal.png"
sourceSize: Qt.size(parent.width/2,parent.height/2)
smooth: true
}
}
Displace {
anchors.fill: bug
source: bug
displacementSource: displacement
displacement: 0.1
}
}
PropertyDocumentation
cached :bool
是否缓冲输出,缓冲会提高渲染效率,但消耗更多内存。每当源或者影响属性发生变化,缓冲都会更新。如果源或者影响属性是动态的,推荐关闭缓冲。默认为假。
displacement: real
位移值,更大的值表示像素的位移越大。0.0表示没有位移。值在-1.0(反向最大位移)到1.0(最大位移)之间。默认为0.0。
位移的影响 | ||
---|---|---|
|
|
|
displacement: -0.2 | displacement: 0.0 | displacement: 0.2 |
displacementSource: variant
用作位移映射的源。displacementSource被渲染入中间像素缓冲。图像上红色和绿色的像素组件决定像素的位移信息。位移映射类似于法线贴图的切线空间。能被3D建模工具创建,许多图片处理工具包含法线贴图功能。另外位移映射也能是一个具有相应颜色的QML元件。像其他QML远见那样,它也能动画化。位移映射的尺寸和源保持一致是被推荐的。
位移数据使用RGBA格式来解释。红色通道保存X轴位移,绿色通道保存Y轴位移,蓝色和ALPHA通道被忽略。假设完全的红色为1.0(0.0为无一点红色),那么0.5为没有一点位移。如果红色值比0.5高,则左移,如果红色值比0.5低,则右移。同样的,绿色通道的值高于0.5上移,低于0.5则下移。像素实际的位移计数,依赖于位移属性。
source :variant
用来位移的源实例。它不能影响自身,所以不能设置它的父到这个属性。