Displace QML Type
Verschiebt die Pixel des Quellelements entsprechend der angegebenen Verschiebungskarte. Mehr...
| Import Statement: | import Qt5Compat.GraphicalEffects |
| Since: | QtGraphicalEffects 1.0 |
| Inherits: |
Eigenschaften
- cached : bool
- displacement : real
- displacementSource : variant
- source : variant
Ausführliche Beschreibung
| Quelle | Verschiebungsquelle | Angewandter Effekt |
|---|---|---|
|
|
|
Beispiel
Das folgende Beispiel zeigt, wie der Effekt angewendet wird.
import QtQuick
import Qt5Compat.GraphicalEffects
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
}
}Eigenschaftsdokumentation
cached : bool
Mit dieser Eigenschaft können die Ausgabepixel des Effekts zwischengespeichert werden, um die Rendering-Leistung zu verbessern.
Jedes Mal, wenn die Eigenschaften der Quelle oder des Effekts geändert werden, müssen die Pixel im Cache aktualisiert werden. Der Speicherverbrauch steigt, da für die Speicherung der Effekt-Ausgabe ein zusätzlicher Speicherpuffer benötigt wird.
Es wird empfohlen, den Cache zu deaktivieren, wenn die Eigenschaften der Quelle oder des Effekts animiert werden.
Standardmäßig ist die Eigenschaft auf „ false “ gesetzt.
displacement : real
Diese Eigenschaft legt den Skalierungsfaktor für die Verschiebung fest. Je größer der Skalierungsfaktor, desto größer ist die Verschiebung der Pixel. Bei einem Wert von 0,0 findet keine Verschiebung statt.
Der Wert reicht von -1,0 (invertierte maximale Verschiebung, gemäß displacementSource) bis 1,0 (maximale Verschiebung, gemäß displacementSource). Standardmäßig ist die Eigenschaft auf 0.0 (keine Verschiebung) eingestellt.
| Ausgabebeispiele mit unterschiedlichen Verschiebungswerten | ||
|---|---|---|
|
|
|
| Verschiebung: -0,2 | Verschiebung: 0,0 | Verschiebung: 0,2 |
displacementSource : variant
Diese Eigenschaft definiert das Element, das als Displacement-Map verwendet werden soll. Das Element „displacementSource“ wird in den Zwischenpixelpuffer gerendert. Die Werte der roten und grünen Komponenten aus dem Ergebnis bestimmen die Verschiebung der Pixel gegenüber dem Quellelement.
Das Format der Displacement-Map ähnelt dem der Normal-Maps im Tangentenraum, die mit den meisten 3D-Modellierungstools erstellt werden können. Viele Bildbearbeitungsprogramme bieten die Möglichkeit, Normal-Maps zu erstellen. Alternativ kann die Displacement-Map für diesen Effekt auch ein entsprechend eingefärbtes QML-Element sein. Wie jedes QML-Element kann es animiert werden. Es wird empfohlen, dass die Größe der Displacement-Map mit der Größe des „ source “ übereinstimmt.
Die Verschiebungsdaten werden im RGBA-Format interpretiert. Für jedes Pixel gilt: Der Rotkanal speichert die Verschiebung auf der x-Achse, und der Grünkanal speichert die Verschiebung auf der y-Achse. Der Blau- und der Alphakanal werden für diesen Effekt ignoriert.
Unter der Annahme, dass der Wert 1,0 im Rotkanal volles Rot darstellt (wobei 0,0 überhaupt kein Rot enthält), bewirkt bei diesem Effekt ein Wert von 0,5 in der Pixelkomponente keinerlei Verschiebung. Werte über 0,5 verschieben die Pixel nach links, Werte unter 0,5 verschieben sie nach rechts. In ähnlicher Weise verschieben Werte des Grünkanals über 0,5 die Pixel nach oben, während Werte unter 0,5 die Pixel nach unten verschieben. Der tatsächliche Verschiebungsbetrag in Pixeln hängt von der Eigenschaft „ displacement “ ab.
source : variant
Diese Eigenschaft definiert das Quellelement für die Pixel, die gemäß den Daten aus „ displacementSource “ verschoben werden sollen.
Hinweis: Es wird nicht unterstützt, dass der Effekt sich selbst einbezieht, beispielsweise durch Festlegen der Quelle auf das übergeordnete Element des Effekts.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.





