Displace QML Type
Déplace les pixels de l'élément source selon la carte de déplacement indiquée. En savoir plus…
| Import Statement: | import Qt5Compat.GraphicalEffects |
| Since: | QtGraphicalEffects 1.0 |
| Inherits: |
Propriétés
- cached : bool
- displacement : real
- displacementSource : variant
- source : variant
Description détaillée
| Source | Source de déplacement | Effet appliqué |
|---|---|---|
|
|
|
Exemple
L'exemple suivant montre comment appliquer l'effet.
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
}
}Documentation sur les propriétés
cached : bool
Cette propriété permet de mettre en cache les pixels de sortie de l'effet afin d'améliorer les performances de rendu.
Chaque fois que les propriétés de la source ou de l'effet sont modifiées, les pixels du cache doivent être mis à jour. La consommation de mémoire augmente, car un tampon de mémoire supplémentaire est nécessaire pour stocker la sortie de l'effet.
Il est recommandé de désactiver le cache lorsque les propriétés de la source ou de l’effet sont animées.
Par défaut, la propriété est définie sur « false ».
displacement : real
Cette propriété définit l'échelle du décalage. Plus l'échelle est grande, plus le décalage des pixels est important. Une valeur de 0,0 n'entraîne aucun décalage.
La valeur varie de -1,0 (décalage maximal inversé, selon displacementSource) à 1,0 (décalage maximal, selon displacementSource). Par défaut, la propriété est définie sur 0.0 (aucun décalage).
| Exemples de résultats avec différentes valeurs de décalage | ||
|---|---|---|
|
|
|
| déplacement : -0,2 | déplacement : 0,0 | décalage : 0,2 |
displacementSource : variant
Cette propriété définit l'élément qui sera utilisé comme carte de déplacement. L'élément « displacementSource » est rendu dans le tampon de pixels intermédiaire. Les valeurs des composantes rouge et verte du résultat déterminent le déplacement des pixels par rapport à l'élément source.
Le format de la carte de déplacement est similaire à celui des cartes normales dans l’espace tangent, qui peuvent être créées avec la plupart des outils de modélisation 3D. De nombreux outils de traitement d’images prennent en charge la génération de cartes normales. La carte de déplacement pour cet effet peut également être un élément QML coloré de manière appropriée. Comme tout élément QML, il peut être animé. Il est recommandé que la taille de la carte de déplacement corresponde à celle de l’ source.
Les données de déplacement sont interprétées au format RGBA. Pour chaque pixel : le canal rouge stocke le déplacement sur l’axe x, et le canal vert stocke le déplacement sur l’axe y. Les canaux bleu et alpha sont ignorés pour cet effet.
En supposant qu’une valeur de 1,0 sur le canal rouge corresponde au rouge pur (0,0 correspondant à l’absence totale de rouge), cet effet considère qu’une valeur de 0,5 sur la composante d’un pixel n’entraîne aucun déplacement. Les valeurs supérieures à 0,5 déplacent les pixels vers la gauche, tandis que les valeurs inférieures à 0,5 les déplacent vers la droite. De la même manière, les valeurs du canal vert supérieures à 0,5 déplacent les pixels vers le haut, tandis que les valeurs inférieures à 0,5 les déplacent vers le bas. L'amplitude réelle du déplacement en pixels dépend de la propriété « displacement ».
source : variant
Cette propriété définit l'élément source des pixels qui vont être déplacés en fonction des données provenant de displacementSource.
Remarque : il n'est pas possible de faire en sorte que l'effet s'applique à lui-même, par exemple en définissant la source comme étant le parent de l'effet.
© 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.





