Spec-Zone.ru › Qt 5.14

Тип QML Displace

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

Заявление об импорте: import QtGraphicalEffects 1.14
С: 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 в канале red — это полностью красный цвет (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.14/qml-qtgraphicaleffects-displace.html

Spec-Zone.ru

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