Auf dieser Seite

Displace QML Type

Verschiebt die Pixel des Quellelements entsprechend der angegebenen Verschiebungskarte. Mehr...

Import Statement: import Qt5Compat.GraphicalEffects
Since: QtGraphicalEffects 1.0
Inherits:

Item

Eigenschaften

Ausführliche Beschreibung

QuelleVerschiebungsquelleAngewandter Effekt

Schwarzer Käfer auf einem Blatt

Verschiebungskarte mit roten und grünen Farbverläufen

Käfer mit angewendetem Verdrängungseffekt

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

Käfer nach innen verschoben

Käfer ohne Hubraum

Käfer nach außen verschoben

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.