Тип QML Displace
Перемещает пиксели элемента-источника в соответствии с заданным смещением карты. Подробнее...
| Заявление импорта: | import QtGraphicalEffects 1.15 |
| С момента: | 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 полностью красное (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.15/qml-qtgraphicaleffects-displace.html