Spec-Zone.ru › Qt 5.13

Тип QML Displace

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

Заявление об импорте: import QtGraphicalEffects 1.13
С момента: 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.13/qml-qtgraphicaleffects-displace.html

Spec-Zone.ru

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