Spec-Zone.ru › Qt 5.9

Тип 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/qt-5.9/qml-qtgraphicaleffects-displace.html

Spec-Zone.ru

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