Тип QML Displace
Перемещает пиксели элемента-источника в соответствии с заданным изображением смещения. Подробнее...
| Заявление об импорте: | import QtGraphicalEffects 1.0 |
| С момента: | QtGraphicalEffects 1.0 |
| Наследует: |
Свойства
- cached : bool
- displacement : real
- displacementSource : variant
- source : variant
Подробное описание
| Источник | DisplacementSource | Применяемый эффект |
|---|---|---|
Примечание: Этот эффект доступен при запуске с OpenGL.
Пример
Следующий пример демонстрирует, как применить эффект.
import QtQuick 2.0
import QtGraphicalEffects 1.0
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/archives/qt-5.11/qml-qtgraphicaleffects-displace.html