Spec-Zone.ru › Qt 5.12

Тип QML Displace

Перемещает пиксели элемента-источника в соответствии с заданной картой смещения. Подробнее...

Оператор импорта: import QtGraphicalEffects 1.12
С момента: 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

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.12/qml-qtgraphicaleffects-displace.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API