En esta página

Displace QML Type

Mueve los píxeles del elemento de origen de acuerdo con el mapa de desplazamiento dado. Más...

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

Item

Propiedades

Descripción detallada

FuenteFuente de desplazamientoEfecto aplicado

Ejemplo

El siguiente ejemplo muestra cómo aplicar el efecto.

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
    }
}

Documentación de propiedades

cached : bool

Esta propiedad permite almacenar en caché los píxeles de salida del efecto para mejorar el rendimiento del renderizado.

Cada vez que se cambian las propiedades de la fuente o del efecto, los píxeles de la caché deben actualizarse. El consumo de memoria se incrementa, ya que se requiere un buffer extra de memoria para almacenar la salida del efecto.

Se recomienda desactivar la caché cuando se animen la fuente o las propiedades del efecto.

Por defecto, la propiedad está establecida en false.

displacement : real

Esta propiedad define la escala para el desplazamiento. Cuanto mayor sea la escala, mayor será el desplazamiento de los píxeles. El valor establecido a 0.0 no provoca ningún desplazamiento.

El valor oscila entre -1.0 (desplazamiento máximo invertido, según displacementSource) y 1.0 (desplazamiento máximo, según displacementSource). Por defecto, la propiedad está ajustada a 0.0 (sin desplazamiento).

Ejemplos de salida con diferentes valores de desplazamiento

desplazamiento: -0.2 desplazamiento: 0.0 desplazamiento: 0.2

displacementSource : variant

Esta propiedad define el elemento que se va a utilizar como mapa de desplazamiento. El elemento displacementSource se renderiza en el búfer de píxeles intermedio. Los valores de los componentes rojo y verde del resultado determinan el desplazamiento de los píxeles desde el elemento fuente.

El formato del mapa de desplazamiento es similar al de los mapas normales del espacio tangente, que pueden crearse con la mayoría de las herramientas de modelado 3D. Muchas herramientas de procesamiento de imágenes incluyen el soporte para generar mapas normales. Alternativamente, el mapa de desplazamiento para este efecto también puede ser un elemento QML coloreado adecuadamente. Como cualquier elemento QML, puede animarse. Se recomienda que el tamaño del mapa de desplazamiento coincida con el tamaño de source.

Los datos de desplazamiento se interpretan en formato RGBA. Para cada píxel: el canal rojo almacena el desplazamiento del eje x, y el canal verde almacena el desplazamiento del eje y. Los canales azul y alfa se ignoran para este efecto.

Asumiendo que el valor 1.0 del canal rojo es completamente rojo (0.0 no tiene rojo en absoluto), este efecto considera que el valor 0.5 del componente del píxel no causa ningún desplazamiento. Los valores superiores a 0,5 desplazan los píxeles hacia la izquierda, mientras que los valores inferiores a 0,5 lo hacen hacia la derecha. De forma similar, los valores del canal verde por encima de 0,5 desplazan los píxeles hacia arriba, y los valores por debajo de 0,5 desplazan los píxeles hacia abajo. La cantidad real de desplazamiento en píxeles depende de la propiedad displacement.

source : variant

Esta propiedad define el elemento fuente para los píxeles que van a ser desplazados según los datos de displacementSource.

Nota: No se admite que el efecto se incluya a sí mismo, por ejemplo estableciendo source al padre del efecto.

© 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.