Displace QML Type
Verschiebt die Pixel des Quellobjekts gemäß 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 | VerdrängungsQuelle | Angewandte Wirkung |
---|---|---|
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 } }
Dokumentation der Eigenschaft
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 erhöht sich, da für die Speicherung der Effektausgabe ein zusätzlicher Speicherplatz benötigt wird.
Es wird empfohlen, den Cache zu deaktivieren, wenn die Quelle oder die Effekteigenschaften animiert werden.
Standardmäßig ist die Eigenschaft auf false
eingestellt.
displacement : real |
Diese Eigenschaft definiert den Maßstab für die Verschiebung. Je größer der Maßstab, desto größer die Verschiebung der Pixel. Der Wert 0,0 bewirkt keine Verschiebung.
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 verschiedenen Verschiebungswerten | ||
---|---|---|
Verschiebung: -0.2 | Verschiebung: 0.0 | Verschiebung: 0.2 |
displacementSource : variant |
Diese Eigenschaft definiert das Element, das als Verschiebungskarte verwendet werden soll. Das displacementSource-Element wird in den Pixelzwischenpuffer gerendert. Die Werte der roten und grünen Komponente des Ergebnisses bestimmen die Verschiebung der Pixel gegenüber dem Quellelement.
Das Format für die Verschiebungskarte ähnelt den Tangentenraum-Normalkarten, die mit den meisten 3D-Modellierungswerkzeugen erstellt werden können. Viele Bildbearbeitungsprogramme unterstützen die Erstellung von Normal Maps. Alternativ kann die Verschiebungskarte für diesen Effekt auch ein QML-Element sein, das entsprechend eingefärbt ist. Wie jedes QML-Element kann es animiert werden. Es wird empfohlen, dass die Größe der Verschiebungskarte der Größe der source entspricht.
Die Verschiebungsdaten werden im RGBA-Format interpretiert. Für jedes Pixel speichert der rote Kanal die x-Achsenverschiebung und der grüne Kanal die y-Achsenverschiebung. Blau- und Alphakanäle werden bei diesem Effekt ignoriert.
Unter der Annahme, dass der Rotkanalwert 1,0 vollständig rot ist (0,0 hat überhaupt kein Rot), wird bei diesem Effekt der Pixelkomponentenwert 0,5 als keinerlei Verschiebung angesehen. Werte über 0,5 verschieben Pixel nach links, Werte unter 0,5 verschieben sie nach rechts. In ähnlicher Weise verschieben Grünkanalwerte über 0,5 die Pixel nach oben und Werte unter 0,5 die Pixel nach unten. Der tatsächliche Betrag der Verschiebung in Pixeln hängt von der Eigenschaft displacement ab.
source : variant |
Diese Eigenschaft definiert das Quellelement für die Pixel, die gemäß den Daten von displacementSource verschoben werden sollen.
Hinweis: Es wird nicht unterstützt, den Effekt sich selbst einschließen zu lassen, z. B. indem die Quelle auf das übergeordnete Element des Effekts gesetzt wird.
© 2025 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.