Displace QML Type

Verschiebt die Pixel des Quellobjekts gemäß der angegebenen Verschiebungskarte. Mehr...

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

Item

Eigenschaften

Ausführliche Beschreibung

QuelleVerdrängungsQuelleAngewandte 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.