Тип QML Displace
Перемещает пиксели элемента-источника в соответствии с заданной картой смещения. Подробнее...
| Заявление об импорте: | import QtGraphicalEffects 1.14 |
| С: | QtGraphicalEffects 1.0 |
| Наследует: |
Свойства
- cached : bool
- displacement : real
- displacementSource : variant
- source : variant
Подробное описание
| Источник | DisplacementSource | Применяемый эффект |
|---|---|---|
Примечание: Этот эффект доступен при работе с OpenGL.
Пример
Следующий пример демонстрирует применение эффекта.
import QtQuick 2.12
import QtGraphicalEffects 1.12
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
}
} Документация по свойствам
cached : bool
Это свойство позволяет кэшировать выходные пиксели эффекта для повышения производительности отрисовки.
Каждый раз при изменении свойств источника или эффекта пиксели в кэше должны обновляться. Потребление памяти увеличивается, так как требуется дополнительный буфер памяти для хранения выходных данных эффекта.
Рекомендуется отключать кэширование при анимации свойств источника или эффекта.
По умолчанию свойство установлено в false.
displacement : real
Это свойство определяет масштаб смещения. Чем больше масштаб, тем больше смещение пикселей. Значение 0.0 приводит к отсутствию смещения.
Значение варьируется от -1.0 (инвертированное максимальное смещение, согласно displacementSource) до 1.0 (максимальное смещение, согласно displacementSource). По умолчанию свойство установлено в 0.0 (без смещения).
| Примеры вывода с различными значениями смещения | ||
|---|---|---|
| displacement: -0.2 | displacement: 0.0 | displacement: 0.2 |
displacementSource : variant
Это свойство определяет элемент, который будет использоваться в качестве карты смещения. Элемент displacementSource отрисовывается в промежуточном буфере пикселей. Красное и зеленое компоненты результата определяют смещение пикселей из элемента-источника.
Формат карты смещения похож на карты нормалей в пространстве касательных, которые можно создавать с помощью большинства 3D-моделирующих инструментов. Многие инструменты обработки изображений поддерживают генерацию карт нормалей. Кроме того, карта смещения для этого эффекта также может быть элементом QML, который окрашен должным образом. Как и любой элемент QML, он может быть анимирован. Рекомендуется, чтобы размер карты смещения соответствовал размеру source.
Данные смещения интерпретируются в формате RGBA. Для каждого пикселя: красный канал хранит смещение по оси x, а зеленый канал — смещение по оси y. Синий и альфа-каналы для этого эффекта игнорируются.
Предполагая, что значение 1.0 в канале red — это полностью красный цвет (0.0 — отсутствие красного), этот эффект рассматривает значение компонента пикселя 0.5 как отсутствие смещения. Значения выше 0.5 смещают пиксели влево, а значения ниже 0.5 — вправо. Аналогичным образом, значения зеленого канала выше 0.5 смещают пиксели вверх, а значения ниже 0.5 — вниз. Фактическая величина смещения в пикселях зависит от свойства displacement.
source : variant
Это свойство определяет элемент-источник для пикселей, которые будут смещаться в соответствии с данными из displacementSource.
Примечание: Нельзя позволять эффекту включать себя, например, устанавливая source в родителя эффекта.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qml-qtgraphicaleffects-displace.html