Qt Quick 3D - 反射プローブの例

Qt Quick 3D での反射プローブの使い方を説明します。

この例では、反射プローブの機能をデモします。プローブがどのようにキューブマップをレンダリングするか、またモデルがどのようにこのキューブマップを使用して周囲を反射させるかに影響する、さまざまなプロパティを選択するパネルをユーザーに提供します。

シーン

シーンは、いくつかのモデル、2つのパーティクルシステム、ライトプローブ、2つの反射プローブで構成されています。シーンの中央には3つの球体と、床と壁の役割をする2つの立方体があります。シーン中央の2つのパーティクルシステムは、デフォルトでは無効になっていますが、設定パネルから有効にできます。これらは、パーティクルが反射プローブとどのように機能するかを示すために使用できます。1つ目の反射プローブは原点に配置され、もう1つの反射プローブは中央の球体とともに移動します。モデルは、周囲を反射しているとき、最も近い反射プローブによってキャプチャされたキューブマップを使用します。

設定パネル

反射マップの設定

ユーザーは、反射プローブが反射キューブマップをどのようにレンダリングするかを制御できます。選択した設定によって、パフォーマンスが大きく変わります。

Time Slicingは、反射マップの各面をレンダリングする頻度を制御します。たとえば、Individual Facesを選択すると、反射プローブはフレームごとに1つの面をレンダリングします。これによりパフォーマンスが向上しますが、品質が犠牲になります。

Refresh Modeは、反射プローブが反射マップ全体をレンダリングする頻度を制御します。First Frameを選択すると、反射プローブは反射マップを1回だけレンダリングします。これはパフォーマンスが向上しますが、アニメーションのあるシーンで使用すると望ましくない効果が生じます。

最後に、Reflection Map Qualityは、生成されたキューブマップの解像度をコントロールします。

反射プローブの設定

反射プローブのボックスサイズは、どのオブジェクトが反射プローブの内側にあるかを決定するために使用されます。オブジェクトがプローブの内側にある場合、このプローブによって生成されたマップが使用されます。ボックスサイズは視差補正にも使用されます。反射マップは、レンダリング時に無限に遠くにあるとみなされます。これは屋外のシーンでは有効ですが、屋内のシーンでは望ましくない効果が生じます。視差補正は、反射マップにボックスサイズとカメラ位置を考慮させます。視差補正を無効にすると、床が周囲をどのように反射するかに影響します。屋内シーンでは、屋内エリアと同じサイズの反射プローブを使用する必要があります。

プローブの位置は、シーン内でプローブを移動させるために使用します。また、プローブがどこからキューブマップをレンダリングするかにも影響します。

パーティクル設定

これらの設定は、反射プローブがパーティクルでどのように動作するかを示すために、シーンにいくつかのパーティクルを追加するために使用できます。3Dパーティクルとスプライトパーティクルの両方がリフレクションマップに表示されますが、3Dパーティクルのみがリフレクションマップを使用して周囲を反射できます。

モデルの設定

ユーザは、このモデルによってレンダリングされる反射に影響を与える球体で使用されるマテリアルの粗さを制御できます。また、反射を受け取るチェックボックスを使って、モデルが反射を受け取るかどうかを選択することもできます。

プロジェクト例 @ code.qt.io

このドキュメントに含まれるコントリビューションの著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。