このページでは

Displace QML Type

指定された変位マップに従って、ソース項目のピクセルを移動します。詳細...

Import Statement: import Qt5Compat.GraphicalEffects
Since: QtGraphicalEffects 1.0
Inherits:

Item

プロパティ

詳細説明

出典変位ソース適用されたエフェクト

葉の上の黒いカブトムシ

赤と緑のグラデーションが施された変位マップ

変位エフェクトが適用されたビートル

例

以下の例は、このエフェクトを適用する方法を示しています。

import QtQuick
import Qt5Compat.GraphicalEffects

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 のデータに基づいて変位されるピクセルのソース項目を定義します。

注: エフェクトの親をソースとして設定するなど、エフェクト自体をソースに含めることはサポートされていません。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.