Displace QML Type
指定された変位マップに従って、ソース項目のピクセルを移動します。詳細...
| Import Statement: | import Qt5Compat.GraphicalEffects |
| Since: | QtGraphicalEffects 1.0 |
| Inherits: |
プロパティ
- cached : bool
- displacement : real
- displacementSource : variant
- source : variant
詳細説明
| 出典 | 変位ソース | 適用されたエフェクト |
|---|---|---|
|
|
|
例
以下の例は、このエフェクトを適用する方法を示しています。
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.





