SceneEnvironment QML Type
シーンのレンダリング方法を設定します。詳細...
Import Statement: | import QtQuick3D |
Inherits: | |
Inherited By: |
プロパティ
- antialiasingMode : enumeration
- antialiasingQuality : enumeration
- aoBias : float
- aoDistance : float
- aoDither : bool
- aoEnabled : bool
(since 6.5)
- aoSampleRate : int
- aoSoftness : float
- aoStrength : float
- backgroundMode : enumeration
- clearColor : color
- debugSettings : QtQuick3D::DebugSettings
(since 6.5)
- depthPrePassEnabled : bool
- depthTestEnabled : bool
- effects : List<QtQuick3D::Effect>
- fog : QtQuick3D::Fog
(since 6.5)
- lightProbe : QtQuick3D::Texture
- lightmapper : Lightmapper
- probeExposure : float
- probeHorizon : float
- probeOrientation : vector3d
- scissorRect : rect
(since 6.5)
- skyBoxCubeMap : QtQuick3D::CubeMapTexture
(since 6.4)
- skyboxBlurAmount : float
(since 6.4)
- specularAAEnabled : bool
(since 6.4)
- temporalAAEnabled : bool
- temporalAAStrength : float
- tonemapMode : enumeration
(since 6.0)
詳細説明
SceneEnvironment は、シーンがどのようにレンダリングされるべきかのグローバルプロパティのセットを定義します。
Note: QtQuick3D .Helpers モジュールは、SceneEnvironment を継承し、その上に多くの組み込みエフェクトを追加するExtendedSceneEnvironment タイプを提供します。
SceneEnvironment またはExtendedSceneEnvironment を使用するには、View3D のenvironment property を、これらの型のインスタンスに関連付けます。オブジェクトは、例えばこのようにインラインで宣言できます:
View3D { environment: SceneEnvironment { antialiasingMode: SceneEnvironment.MSAA tonemapMode: SceneEnvironment.TonemapModeFilmic backgroundMode: SceneEnvironment.SkyBox lightProbe: Texture { source: "panoramic_hdri_background.hdr" } } }
あるいは、環境オブジェクトを個別に定義することもできます。このオブジェクトは、1つ以上のView3D オブジェクトから参照することができます。今回はExtendedSceneEnvironment を使用したコード例です:
ExtendedSceneEnvironment { id: myEnv vignetteEnabled: true } View3D { width: parent.width / 2 environment: myEnv } View3D { width: parent.width / 2 x: parent.width / 2 environment: myEnv }
機能の概要
- アンチエイリアス設定。このトピックの概要については、「アンチエイリアシングのベストプラクティス」を参照してください。関連するプロパティはantialiasingMode,antialiasingQuality,specularAAEnabled,temporalAAEnabled,temporalAAStrength です。また、ExtendedSceneEnvironment を使用する場合は、fxaaEnabled を使用する方法もあります。
- スクリーン空間アンビエントオクルージョン。関連するプロパティはaoEnabled,aoStrength,aoBias,aoDistance,aoDither,aoSampleRate,aoSoftness です。
- クリアカラー、スカイボックス、イメージベースライティング。IBLの詳細については、「イメージベースライティングを使う」を参照してください。関連するプロパティはbackgroundMode,clearColor,lightProbe,probeExposure,probeHorizon,probeOrientation,skyboxBlurAmount,skyBoxCubeMap です。
- トーンマッピング。tonemapMode は、グラフィックスパイプラインの最後でハイダイナミックレンジのカラー値を0~1の範囲に変換するために使用されるトーンマッピング方法を設定します。ExtendedSceneEnvironment は、トーンマッピング計算を調整するために使用できるwhitePoint やsharpnessAmount などの追加のプロパティをいくつか提供しています。
- デプスバッファの設定。関連するプロパティはdepthPrePassEnabled,depthTestEnabled です。
- ポストプロセス効果。ExtendedSceneEnvironment で提供されるビルトイン・ポストプロセッシング・エフェクトに加えて、アプリケーションはEffect タイプを介して独自のカスタム・エフェクトを提供することができます。effects プロパティはEffect インスタンスのリストです。
- マテリアルのワイヤーフレームモードや特定のカラーコントリビューションのみのレンダリングなど、ビジュアライゼーションの設定をデバッグします。これは、debugSettings プロパティから参照されるDebugSettings オブジェクトによって制御されます。これらの設定のほとんどは、DebugView アイテムがシーンに追加されたときに、インタラクティブに制御することもできます。
- フォグの設定。フォグを有効にするには、fog プロパティに適切に設定されたFog オブジェクトを設定します。
- ライトマップのベイク設定。シーン内のいくつかのモデルにプリベイクされたライトマップが使用されている場合、lightmapper プロパティに設定されたLightmapper オブジェクトは、ベイクプロセス中に使用される設定を定義します。
- シザーの設定。ビューポートとは異なるシザーを適用するには、scissorRect プロパティを設定します。
ExtendedSceneEnvironmentも参照してください 。
プロパティ ドキュメント
antialiasingMode : enumeration |
このプロパティは、シーンのレンダリング時に適用されるアンチエイリアス モードを制御します。
設定可能な値は次のとおりです:
定数 | 説明 |
---|---|
SceneEnvironment.NoAA | アンチエイリアスは適用されない。 |
SceneEnvironment.SSAA | スーパーサンプル・アンチエイリアスが適用されます。 |
SceneEnvironment.MSAA | マルチサンプル・アンチエイリアスが適用される。 |
SceneEnvironment.ProgressiveAA | プログレッシブ・アンチエイリアスが適用される。 |
デフォルト値はSceneEnvironment.NoAA
です。
スーパーサンプリング
シーンは高い解像度でレンダリングされ、実際の解像度にスケールダウンされます。
長所:高品質。ジオメトリのシルエットだけでなく、すべてのシーンコンテンツをアンチエイリアスする。
短所:通常、MSAAより高価。ビデオメモリ使用量が増える。Inline を除くすべての renderMode でView3D アイテムでサポートされていますが、この技法は最初にテクスチャにレンダリングすることを意味するため、Underlay または Overlay の renderMode で SSAA を有効にすると、通常は必要ない中間テクスチャとレンダー パスが使用されることになり、パフォーマンス コストが顕著になる可能性があります。レンダーモードがデフォルトの Offscreen の場合のみ、SSAA を使用することをお勧めします。
マルチサンプリング
ジオメトリのエッジがスーパーサンプリングされ、より滑らかなシルエットになります。ただし、このテクニックはジオメトリ内部のマテリアルには影響しません。
長所レンダリングモードに関係なく、View3D アイテムで動作します。エイリアシングが最も目立つジオメトリシルエッ トで良い結果が得られます。パフォーマンスは、純粋にシステム(GPU)の能力に依存します。
短所:テクスチャや反射の問題には役立たない。ビデオメモリ使用量が増える。性能の低いグラフィックハードウェアで使用するには高価になる可能性がある。renderModeに応じて、ウィンドウごと、または個々のView3D アイテムごとに制御できます。エフェクトが適用されたUnderlay/OverlayまたはOffscreenを使用する場合、MSAAはView3D アイテムごとに制御できます。一方、エフェクトなしのUnderlay/OverlayまたはInlineを使用すると、MSAAはウィンドウごとに制御されます。
注: エフェクト付きUnderlay/OverlayまたはOffscreen以外のrenderMode を持つView3D アイテムでは、マルチサンプリングはQQuickWindow またはQQuickView のQSurfaceFormat を介してのみ有効にできます。これは、そのウィンドウ内の2Dと3Dの両方のすべてのコンテンツに影響します。
プログレッシブ・アンチエイリアス
このプロパティは、シーンに適用されるプログレッシブ・アンチエイリアスのレベルを有効化し、設定します。
シーンのすべてのコンテンツが動きを止めたとき、カメラはフレーム間でごくわずかに揺れ、それぞれの新しいフレームの結果が前のフレームとブレンドされます。フレームを積み重ねるほど、結果は見栄えが良くなる。
長所シーン内のすべてのコンテンツが静止している場合に素晴らしい結果をもたらす。
短所:視覚的な変化が起きている場合は効果がない。蓄積とブレンドが必要なため、コストがかかる。ビデオメモリ使用量が増える。
注: プログレシング・アンチエイリアシングは、現在マルチビュー・レンダリングではサポートされていません。
アンチエイリアシングの方法については、アンチエイリアシングのベストプラクティスを参照してください。
antialiasingQuality : enumeration |
このプロパティは、シーンに適用されるアンチエイリアスのレベルを設定します。動作は使用するantialiasingMode に依存します。antialiasingMode プロパティがNoAA
に設定されている場合、このプロパティは影響しません。
可能な値は次のとおりです:
定数 | 説明 |
---|---|
SceneEnvironment.Medium | SSAA:アンチエイリアシングは1.2倍のスーパーサンプリング解像度を使用します。 MSAA: 。 ProgressiveAA:最終画像に 2 フレームを使用。 |
SceneEnvironment.High | SSAA:アンチエイリアシングは 1.5 倍のスーパーサンプリング解像度を使用。 MSAA: 。 ProgressiveAA:最終画像に4フレームを使用。 |
SceneEnvironment.VeryHigh | SSAA:アンチエイリアシングは 2.0 倍のスーパーサンプリング解像度を使用。 MSAA: 。 ProgressiveAA:最終画像に8フレームを使用。 |
デフォルト値はSceneEnvironment.High
aoBias : float |
このプロパティは、オブジェクトが近距離でアンビエントオクルージョンを示すのを防ぐカットオフ距離を定義します。値が高いほど、アンビエントオクルージョンが見られるまでに必要なオブジェクト間の距離が長くなります。
注意: 影がないはずのオブジェクトにアンビエントオクルージョンの影が見える場合は、値を少し大きくして近い結果を切り取ります。
デフォルト値は0.0です。
aoDistance : float |
このプロパティは、アンビエントオクルージョンの影がオブジェクトからどの程度遠くまで広がるかを定義します。距離が離れるほど、パフォーマンスへの影響が大きくなります。
デフォルト値は5.0です。
写真はデフォルトのaoSoftness と最大のaoStrength :
aoDistanceの5 | aoDistanceが1の場合 |
---|---|
注意: 画面空間のアンビエントオクルージョンを視覚的に見栄えよくするには、aoStrength 、aoSoftness 、 aoDistance 、aoDither 、aoBias 、aoSampleRate などの関連パラメーターを慎重に調整する必要があります。
aoStrength およびaoSoftnessも参照して ください。
aoDither : bool |
このプロパティを有効にすると、アンビエントオクルージョンのシャドウバンドのエッジを散乱させ、滑らかさを向上させます(時々、明らかなパターン化されたアーティファクトが発生する危険性があります)。
注意: カメラのクリッピングプレーン間の距離が非常に大きいと、アンビエントオクルージョンに問題が発生することがあります。アンビエントオクルージョンに奇妙なバンディングが表示される場合は、カメラのclipFar プロパティをコンテンツに近くなるように調整してみてください。
デフォルト値はfalse
です。
PerspectiveCamera.clipFar およびOrthographicCamera.clipFarも参照してください 。
aoEnabled : bool |
アンビエントオクルージョンを有効または無効にします。
デフォルト値はfalse
で、これはアンビエント・オクルージョンが無効であることを意味します。
注: aoStrength またはaoDistance が 0 の場合、このプロパティをtrue
に設定すると、それらの値も適切に設定され、アンビエント・オクルージョンが有効になります。
注意: 視覚的に見栄えの良いスクリーン空間のアンビエント・オクルージョンを得るには、aoStrength,aoSoftness,aoDistance,aoDither,aoBias,aoSampleRate など、関連する多くのパラメータを慎重に調整する必要があります。
このプロパティは Qt 6.5 で導入されました。
aoStrength とaoDistanceも参照して ください。
aoSampleRate : int |
このプロパティは、パフォーマンスを犠牲にして、アンビエントオクルージョンの品質(より多くのグレーのシェード)を定義します。
値は2、3、または4でなければなりません。デフォルト値は 2 です。
aoSoftness : float |
このプロパティは、アンビエントオクルージョンのシェーディングのエッジの滑らかさを定義します。
値は0.0から50.0の間でなければなりません。デフォルト値は50.0です。
写真はデフォルトのaoDistance と最大のaoStrength :
aoSoftnessの50 | aoSoftnessの25 |
---|---|
注意: 視覚的に美しいスクリーン空間のアンビエントオクルージョンを得るには、aoStrength 、aoSoftness、aoDistance 、aoDither 、aoBias 、aoSampleRate など、関連する多くのパラメータを注意深く調整する必要があります。
aoStrength およびaoDistanceも参照して ください。
aoStrength : float |
このプロパティは、アンビエントオクルージョンの適用量を定義します。アンビエントオクルージョンとは、近似グローバルイルミネーションの一種で、オブジェクトが近くにある場合に、無指向性のセルフシャドウを引き起こします。値を100にすると完全な暗闇の影になり、値を下げると影が薄く見えます。値を0にするとアンビエントオクルージョンを完全に無効にし、シーンにレンダリングされる3Dオブジェクトの視覚的リアリズムを犠牲にする代わりにパフォーマンスを向上させます。
0以外の値は、パフォーマンスに同じ影響を与えます。
デフォルト値は0.0です。最大値は 100.0 です。
値 0 は、aoEnabled を false に設定するのと同じです。
写真はデフォルトのaoSoftness とaoDistance :
aoStrengthが0(AO無効) | aoStrengthが100の場合 | aoStrengthが50 |
---|---|---|
注意: 視覚的に見栄えの良いスクリーン空間のアンビエントオクルージョンを得るには、aoStrength、aoSoftness 、aoDistance 、aoDither 、aoBias 、aoSampleRate など、関連する多くのパラメータを慎重に調整する必要があります。
aoEnabled,aoDistance,aoSoftnessも参照して ください。
backgroundMode : enumeration |
このプロパティは、シーンの背景をクリアするかどうか、またどのようにクリアするかを制御します。
注意: View 3Dをバックアップするカラーバッファのクリアは、常に行われるわけではありません。renderMode プロパティによっては、View3D がそれ自体でクリアを実行しないことがあり、その場合、SceneEnvironment.Transparent
とSceneEnvironment.Color
は何の効果もありません。デフォルトのOffscreen
render mode (テクスチャへのレンダリング)のみが、すべてのクリアモードをサポートしています。Underlay
モードでは、QQuickWindow::setColor() またはWindow.color を使用して、Qt Quick シーンのクリアカラーを制御します。SkyBox は、実際のジオメトリの描画を意味するため、扱いが異なります。
定数 | 説明 |
---|---|
SceneEnvironment.Transparent | シーンを透明にします。これは、別のアイテムの上に3Dコンテンツをレンダリングするのに便利です。このモードは、View3D がポストプロセッシングを有効化せずに、Underlay または Overlay のレンダーモードを使用している場合には効果がありません。 |
SceneEnvironment.Color | シーンは、clearColor プロパティで指定された色でクリアされます。このモードは、View3D がポストプロセッシングを有効化せずに Underlay または Overlay の renderMode を使用している場合には影響しません。 |
SceneEnvironment.SkyBox | シーンはクリアされず、代わりにスカイボックスまたはスカイドームがレンダリングされます。スカイボックスは、lightProbe プロパティで定義された HDRI マップを使用して定義されます。 |
SceneEnvironment.SkyBoxCubeMap | シーンはクリアされず、代わりにスカイボックスまたはスカイドームがレンダリングされます。スカイボックスは、skyBoxCubeMap プロパティで定義されたキューブマップを使用して定義されます。 |
デフォルト値はSceneEnvironment.Transparent
次の例を見てください。Suzanneモデルはbalsam
ツールでプリプロセスされ、glTF Sample Modelsリポジトリから取得されます。
import QtQuick import QtQuick3D import QtQuick3D.Helpers Item { width: 1280 height: 720 View3D { id: v3d anchors.fill: parent environment: ExtendedSceneEnvironment { backgroundMode: SceneEnvironment.SkyBox lightProbe: Texture { source: "00455_OpenfootageNET_field_low.hdr" } glowEnabled: true glowStrength: 1.25 glowBloom: 0.25 glowBlendMode: ExtendedSceneEnvironment.GlowBlendMode.Additive } DirectionalLight { } Suzanne { scale: Qt.vector3d(50, 50, 50) z: -500 } PerspectiveCamera { id: camera } WasdController { controlledObject: camera } } }
DirectionalLight に加えてイメージベースのライティングを使用し、ライトプローブテクスチャをスカイボックスとして使用すると、次のようになります:
ライトプローブがない場合はどうなりますか?
backgroundMode: SceneEnvironment.Transparent
ここでは、背景はView3D ではなく、2D および 3D シーンをホストするQQuickWindow またはQQuickView によって提供されます。照明はDirectionalLight のみに基づいています。
固定のクリアカラーを使用:
backgroundMode: SceneEnvironment.Color clearColor: "green"
lightProbe,QQuickWindow::setColor(),Window::color,View3Dも参照してください 。
clearColor : color |
このプロパティは、backgroundMode プロパティにSceneEnvironment.Color
を使用する場合に、ビューポートをクリアするために使用される色を定義します。
デフォルト値はQt::black
backgroundModeも参照。
debugSettings : QtQuick3D::DebugSettings |
このプロパティは、レンダラーのデバッグ ツールを設定するために使用されるDebugSettings
オブジェクトを指定します。構築中、SceneEnvironment はそれ自体に関連付けられたDebugSettings オブジェクトを自動的に作成するため、カスタムDebugSettings を設定する必要は通常ありません。
ワイヤフレームモードを有効にしてシーンをレンダリングした例:
メッシュの法線ベクトルの可視化:
鏡面照明の寄与を視覚化する:
このプロパティは Qt 6.5 で導入されました。
DebugSettingsも参照してください 。
depthPrePassEnabled : bool |
つまり、メインのレンダリングパスの描画コールを発行する前に、深度バッファを事前に満たすために、単純なシェーダと色の書き込みを無効にしてレンダリングします。
これにより、シーンの内容によってはパフォーマンスが向上します。一般的に、多くのオブジェクトが重なり、高価なフラグメントシェーディングがあるシーンで、このメリットがあります。同時に、レンダラーが不透明オブジェクトの前面から背面へのソート を実行し、それ自体が不要なフラグメントシェーディングを減らすのに役立 つので、Z-prepass が常に大きな改善をもたらすわけではないことは注 目しておく価値があります。
モバイルや組み込みシステムで一般的なタイル型レンダリングアーキ テクチャを使用する GPU では、これをfalse
に設定すること を推奨します。
デフォルト値はfalse
です。
注意: 深度テストが無効の場合、このプロパティは影響しません。
depthTestEnabled : bool |
デフォルト値はtrue
です。デフォルトでは、レンダラーはシーン内のオブジェクトをopaque
またはsemi-transparent
として分類します。opaque
リストのオブジェクト(関連するマテリアルを持つサブメッシュ)は、深度テストと深度書き込みを有効にして最初にレンダリングされ、半透明領域を持たない典型的な 3D オブジェクトに最適な Z カリングを提供します。semi-transparent
リストのオブジェクトは、奥行き書き込みを無効にしてレンダリングされますが、奥行きテストは有効のまま(不透明なオブジェクトに対してテストするため)、奥から手前の順番で(カメラからの中心点の距離に基づいてソートされます)レンダリングされます。これにより、node opacity 、またはマテリアルのカラーマップやテクスチャマップによって、表面に半透明の領域がある3Dオブジェクトを正しくブレンド(「シースルー」)することができます。
このプロパティをfalse
に設定すると、Z バッファの書き込みとテストは行われず、深度テストはスキップされ、完全に不透明なオブジェクトを含むすべてのオブジェクトが一度にレンダリングされ、背面から前面にソートされます。
このプロパティをfalse
に設定することは、ほとんど必要ないはずです。このプロパティは、不透明なオブジェクトが非常に少ないか、前から後ろへソートされたパスが1回で済むように変形されているため、2ラウンドのアプローチではほとんどメリットがないことがわかっているシーンで役立ちます。
注意: このプロパティをfalse
に設定すると、特定のシーンでレンダリングエラーが発生することがあります。さらに、カスタムマテリアルやエフェクトのシャドウ、アンビエントオクルージョン、SCREEN_TEXTURE
、DEPTH_TEXTURE
などの一部の機能は、深度バッファの使用を有効にしないと正しく動作しません。
注意: このフラグは、深度バッファまたは深度ステンシルバッファの存在を制御するものではありません。このフラグがfalse
に設定されていても、そのようなバッファが割り当てられることがあります。
effects : List<QtQuick3D::Effect> |
このプロパティには、ビューポート全体に適用されるポスト処理エフェクトのリストが含まれます。各エフェクトの結果は次のエフェクトに送られるので、順序は重要です。
注意: 技術的な理由により、同じEffect ノードをリストに複数回追加することはサポートされておらず、予期しない結果をもたらします。
fog : QtQuick3D::Fog |
lightProbe : QtQuick3D::Texture |
このプロパティは、標準的なライトの代わりに、または標準的なライトに加えて、シーンを照らすために使用されるイメージを定義します。
この画像は、ハイダイナミックレンジ画像か、事前に生成されたキューブマップであることが望ましいです。プリベイクすることで、フィルタリングやミップマップ生成に時間がかからないため、実行時のパフォーマンスが大幅に向上します。ソースが.hdrやその他の画像の場合、GPUベースの前処理は画像ファイルを読み込んだ後の実行時に行われるため、特に組み込み機器やモバイルハードウェアでは時間がかかる可能性があります。そのため、.hdr 画像の前処理は、遅くともビルド時に行うことを強く推奨します。
注意: このプロパティとsourceItem を組み合わせたテクスチャの使用はサポートされていません。動的な Qt Quick コンテンツに対して、すべての mip レベルを事前にフィルタリングすることは、パフォーマンスへの影響から、実際には一般的に妥当ではありません。
イメージベースのライティングの詳細については、「イメージベースのライティングを使用する」を参照してください。
注意: ライトプローブテクスチャは、プロパティが有効な Texture に設定されている場合、backgroundMode に関係なくライティングに使用されます。ただし、backgroundMode がSceneEnvironment.SkyBox
に設定されている場合、このテクスチャはシーン背景をスカイボックスとしてレンダリングするためにも使用されます。
以下の例は、以下のシーンの環境でbackgroundMode を変えて生成したものです。このシーンには、DirectionLight、PointLight 、SpotLight がありません。すべてのライティングは、パノラマ HDRI イメージに基づいています。
import QtQuick import QtQuick3D import QtQuick3D.Helpers Item { width: 1280 height: 720 View3D { id: v3d anchors.fill: parent environment: ExtendedSceneEnvironment { backgroundMode: SceneEnvironment.SkyBox lightProbe: Texture { source: "00455_OpenfootageNET_field_low.hdr" } tonemapMode: SceneEnvironment.TonemapModeFilmic sharpnessAmount: 0.4 glowEnabled: true glowStrength: 1.25 glowBloom: 0.25 glowBlendMode: ExtendedSceneEnvironment.GlowBlendMode.Additive } Node { scale: Qt.vector3d(100, 100, 100) Sponza { } Suzanne { y: 1 scale: Qt.vector3d(0.5, 0.5, 0.5) eulerRotation.y: -90 } } PerspectiveCamera { id: camera y: 100 } WasdController { controlledObject: camera } } }
上記の環境での結果:
backgroundMode をSceneEnvironment.Transparent
に切り替えると、次のようになります:
ここでは、3Dシーンのライティングは前と同じです。つまり、マテリアルは前と同じようにライティング計算でライトプローブを使用しますが、スカイボックスはレンダリングされません。背景は白です。これは、2Dと3DシーンをホストするQQuickWindow のデフォルトのクリアカラーだからです。
lightProbeプロパティの値をデフォルトのnullに戻すことは有効です。これにより、以前関連付けられていたテクスチャの割り当てが解除されます。例えば、Deleteキーを使って、スカイボックスを使ったイメージベースのライティングと、背景のクリアカラーを固定したイメージベースのライティングなしを動的に切り替えてみましょう:
environment: ExtendedSceneEnvironment { id: env backgroundMode: SceneEnvironment.SkyBox lightProbe: iblTex tonemapMode: SceneEnvironment.TonemapModeFilmic sharpnessAmount: 0.4 glowEnabled: true glowStrength: 1.25 glowBloom: 0.25 glowBlendMode: ExtendedSceneEnvironment.GlowBlendMode.Additive } Texture { id: iblTex source: "00455_OpenfootageNET_field_low.hdr" } focus: true Keys.onDeletePressed: { if (env.backgroundMode == SceneEnvironment.SkyBox) { env.backgroundMode = SceneEnvironment.Color; env.clearColor = "green"; env.lightProbe = null; } else { env.backgroundMode = SceneEnvironment.SkyBox; env.lightProbe = iblTex; } }
Deleteキーを押すと、次のようになります。Deleteキーを押すと、次のような結果になります。ここで使用したシーンにはライトがないため、すべての3Dモデルが真っ黒に見えることを覚えておいてください。
lightProbeは、イメージファイル(一般的に.hdrや.ktx)からデータを取得するTextureインスタンスと組み合わせて使用するのが一般的ですが、インメモリ(procedurally generated image data )を使用するTextureと関連付けるのも理にかなっています。この典型的な例は、画像データがQtQuick3D.Helpers モジュールからProceduralSkyTextureData によって生成される Texture です:
backgroundMode: SceneEnvironment.SkyBox lightProbe: Texture { textureData: ProceduralSkyTextureData { } }
これにより、プロシージャル生成されたHDRスカイボックステクスチャが得られ、スカイボックスとしても、画像ベースのライティングにも使用できるようになりました:
backgroundMode 、Using Image-Based Lighting、Pre-generating IBL cubemap、probeExposure 、probeHorizon 、probeOrientation 、ProceduralSkyTextureDataも参照してください 。
lightmapper : Lightmapper |
このプロパティが有効な Lightmapper オブジェクトに設定されている場合、ライトマップをベイクする際に、そのオブジェクトで指定された設定が考慮されます。
デフォルト値はNULLで、これはすべてのベイク関連設定にデフォルト値を使用することを意味します。
ライトマップをベイクする方法の詳細については、Lightmapper ドキュメントを参照してください。
ライトマップがアプリケーションに関係なく、ベイクされたライティングが生成されない場合、このプロパティと関連オブジェクトは実際には何の役にも立ちません。
Model::usedInBakedLighting,Model::bakedLightmap,Light::bakeMode,Lightmapperも参照して ください。
probeExposure : float |
このプロパティは、ライトプローブが発する光の量を変更します。トーンマッピングの一部は露出マッピングであり、このプロパティは、ライトプローブの光の値がどのようにトーンマッピングされるかを調整します。
デフォルトでは、露出は1.0に設定されています。
注意: このプロパティは、tonemapMode がSceneEnvironment.TonemapModeNone
に設定されている場合、効果を持ちません。
lightProbe,probeHorizon,probeOrientationも参照してください 。
probeHorizon : float |
このプロパティは、値を大きくして定義すると、環境の下半分に暗さ(黒)を追加し、照明が主に画像の上部から来るようにします(そして、下半分からの特定の反射を取り除きます)。このプロパティは、地面からのライトプローブの反射を不明瞭にする効果を持つグランドプレーンを考慮するのに便利です。これは、ライトプローブの寄与が、シーンの内容を考慮することなく画像から直接来るために必要である。
probeHorizonプロパティの期待値範囲は0.0~1.0です。この範囲外の値は、期待される範囲にクランプされます。
デフォルトでは、probeHorizonは0.0に設定されており、これはライトプローブ全体が調整なしで使用されることを意味します。
注意: probeHorizonプロパティはマテリアルのライティングにのみ影響し、スカイボックスのレンダリングには影響しません。
lightProbe,probeExposure,probeOrientationも参照してください 。
probeOrientation : vector3d |
このプロパティは、ライトプローブの向きを定義します。向きは、x、y、z 軸のオイラー角(度)で定義されます。
Note: この値は、lightProbe テクスチャに設定されたテクスチャの回転やオフセットと組み合わせて、lightProbe テクスチャのサンプリング方法を補強します。
lightProbe 、probeHorizon 、probeExposureも参照してください 。
scissorRect : rect |
このプロパティは、左上隅を [0, 0] とするシザー矩形をビュー座標で定義します。
このプロパティは Qt 6.5 で導入されました。
skyBoxCubeMap : QtQuick3D::CubeMapTexture |
このプロパティは、背景モードがSkyBoxCubeMap
の時にスカイボックスとして使用されるキューブマップを定義します。
このプロパティは Qt 6.4 で導入されました。
skyboxBlurAmount : float |
このプロパティは、backgroundMode プロパティにSceneEnvironment.SkyBox
を使用する場合に、スカイボックスをどの程度ぼかすかを決定します。デフォルト値は0.0
で、これはぼかしがないことを意味します。
使用可能な値の範囲は 0.0 から 1.0 で、その他の値はすべてこの範囲にクランプされます。
このプロパティは Qt 6.4 で導入されました。
specularAAEnabled : bool |
このプロパティを有効にすると、スペキュラエイリアシングが緩和されます。スペキュラエイリアシングは、明るいドットの形で見えることが多く、カメラを動かしたときにちらつくことがあります。
デフォルト値はfalseです。
スペキュラAA無効 | スペキュラ AA 有効 |
---|---|
このプロパティは Qt 6.4 で導入されました。
temporalAAEnabled : bool |
このプロパティを有効にすると、一時的なアンチエイリアシングが使用されます。
カメラはフレーム間でわずかに揺れ、それぞれの新しいフレームの結果は前のフレームとブレンドされます。
注: antialiasingMode が MSAA の場合、テンポラル・アンチエイリアスは効果を持ちません。
注: ProgressiveAAantialiasingMode と組み合わせた場合、シーンがアニメーションするときはtemporalAAが使用され、アニメーションが停止するとProgressiveAAが使用されます。
長所:長所:カメラが揺れ動くため、他の方法では失われる本当のディテールが見つかる。
短所:動きの速いオブジェクトはワンフレームのゴーストを引き起こす。
注意: テンポラル・アンチエイリアシングは現在マルチビュー・レンダリングではサポートされていないため、VR/ARアプリケーションでは使用しないでください。
temporalAAStrength : float |
このプロパティは、時間的な動き(アンチエイリアス)の量を変更します。これは、temporalAAEnabled プロパティがtrueの場合にのみ効果があります。
temporalAAEnabledも参照してください 。
tonemapMode : enumeration |
このプロパティは、レンダリング前の色のトーンマップ方法を定義します。Qt Quick 3D のレンダリングはすべて線形色空間で行われるため、多くの場合、表示不可能な色値が生成されます。tonemapMode は、表示可能な範囲に色を再マッピングするために使用される手法を決定します。
デフォルト値はSceneEnvironment.TonemapModeLinear
一定です。 | 説明 |
---|---|
SceneEnvironment.TonemapModeNone | すべてのトーンマッピングがバイパスされます。このモードは、ポスト処理エフェクトを実行するときに便利です。 |
SceneEnvironment.TonemapModeLinear | リニアトーンマッピングが適用されます。色はガンマ補正され、sRGB色空間で返されます。 |
SceneEnvironment.TonemapModeAces | Academy Color Encoding System トーンマッピングが適用されます。 |
SceneEnvironment.TonemapModeHejlDawson | Hejl-Dawson トーンマッピングが適用されます。 |
SceneEnvironment.TonemapModeFilmic | Filmic トーンマッピングが適用されます。 |
これらの異なるモードの例については、ExtendedSceneEnvironment を参照してください。
注意: ポストプロセッシングエフェクトを使用する場合、ほとんどのエフェクトはトーンマッピングされていないリニアカラーデータを想定しています。アプリケーションから提供され、Effect タイプを介して実装されたカスタムエフェクトでは、Qt 6.5 以降のエフェクトは、リニアカラーデータで動作することを前提としており、トーンマッピングはチェーンの最後のエフェクトの出力で自動的に実行されることを知っておくことが重要です。トーンマッピングを完全にカスタマイズする必要がある場合は、SceneEnvironment.TonemapModeNone
の値を設定して内蔵のトーンマッパーを無効にし、代わりにチェーンの最後のエフェクトのカラー値で適切な調整を行うことを検討してください。これは、ExtendedSceneEnvironment の組み込みエフェクトには適用されません。なぜなら、これらのエフェクトは、組み込みエフェクトのどのような組み合わせが環境で有効になっているかに関係なく、自動的に適切なトーンマッピングを行うからです。
このプロパティは Qt 6.0 で導入されました。
本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。