SceneEnvironment QML Type
シーンのレンダリング方法を設定できます。詳細...
| Import Statement: | import QtQuick3D |
| Inherits: | |
| Inherited By: |
プロパティ
- antialiasingMode : enumeration
- antialiasingQuality : enumeration
- aoBias : real
- aoDistance : real
- aoDither : bool
- aoEnabled : bool
(since 6.5) - aoSampleRate : int
- aoSoftness : real
- aoStrength : real
- 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
- oitMethod : enumeration
(since 6.11) - probeExposure : real
- probeHorizon : real
- probeOrientation : vector3d
- scissorRect : rect
(since 6.5) - skyBoxCubeMap : QtQuick3D::CubeMapTexture
(since 6.4) - skyMaterial : QtQuick3D::SkyMaterial
(since 6.12) - skyboxBlurAmount : real
(since 6.4) - specularAAEnabled : bool
(since 6.4) - temporalAAEnabled : bool
- temporalAAMode : enumeration
(since 6.11) - temporalAAStrength : real
- tonemapMode : enumeration
(since 6.0)
詳細な説明
SceneEnvironment は、シーンのレンダリング方法に関する一連のグローバルプロパティを定義します。
注: 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 です。なお、SSGI もアンビエントオクルージョンを提供しており、パフォーマンスのオーバーヘッドは大きくなる可能性がありますが、多くの場合、より高品質な結果が得られます。SceneEnvironmentのアンビエントオクルージョンとExtendedSceneEnvironment のSSGIを同時に有効にしないようにしてください。
- クリアカラー、スカイボックス、画像ベースのライティング(IBL)。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 よりも処理負荷が高くなります。ビデオメモリの使用量が増加します。View3D アイテムで、Inline 以外のすべての renderMode でサポートされていますが、この手法では最初にテクスチャへのレンダリングが行われるため、renderMode が Underlay または Overlay の状態で SSAA を有効にすると、通常は必要のない中間テクスチャとレンダリングパスが使用されることになり、パフォーマンスの低下がより顕著になる可能性があります。 SSAAの使用は、renderModeがデフォルトの「Offscreen」の場合にのみ推奨されます。
マルチサンプリング
ジオメトリのエッジにスーパーサンプリングが適用され、より滑らかな輪郭が得られます。ただし、この手法はジオメトリ内部のマテリアルには影響を与えません。
長所:renderModeに関係なく、あらゆるView3D アイテムで機能します。エイリアシングが最も目立ちやすいジオメトリの輪郭に対して良好な結果をもたらします。高速なアニメーションでも問題なく動作します。パフォーマンスは、システム(GPU)の能力にのみ依存します。
デメリット:テクスチャや反射の問題には効果がない。ビデオメモリの使用量が増加する。性能の低いグラフィックスハードウェアでは処理負荷が高くなる可能性がある。renderModeに応じて、ウィンドウ単位または個々のView3D アイテムごとに制御可能。Underlay/Overlayにエフェクトを適用した場合や「オフスクリーン」を使用する場合、各View3D アイテムごとにMSAAを制御できる。 一方、エフェクトなしのUnderlay/OverlayやInlineを使用する場合は、MSAAはウィンドウ単位で制御されます。
注: エフェクト付きUnderlay/OverlayまたはOffscreen以外のrenderMode を持つView3D アイテムの場合、 マルチサンプリングは、QQuickWindow またはQQuickView のQSurfaceFormat を介してのみ有効にできます。これにより、そのウィンドウ内の2Dおよび3Dのすべてのコンテンツに影響が及びます。
プログレッシブアンチエイリアシング
このプロパティは、シーンに適用されるプログレッシブアンチエイリアシングを有効にし、そのレベルを設定します。
シーン内のすべてのコンテンツの動きが止まると、フレーム間でカメラがごくわずかに揺らされ、新しい各フレームの結果が前のフレームとブレンドされます。蓄積されるフレーム数が多いほど、仕上がりは美しくなります。
長所:シーン内のすべてのコンテンツが静止している場合に、優れた結果が得られます。
デメリット:視覚的な変化が発生している場合は効果が得られません。蓄積とブレンド処理が必要なため、処理負荷が高くなります。ビデオメモリの使用量が増加します。
注:プログレッシブ アンチエイリアシングは 現在、マルチビューレンダリングではサポートされておらず、VR/ARアプリケーションでは使用しないでください。
アンチエイリアシングの手法に関する詳細については、「アンチエイリアシングのベストプラクティス」を参照してください。
antialiasingQuality : enumeration
このプロパティは、シーンに適用されるアンチエイリアシングのレベルを設定します。動作は、使用されているantialiasingMode によって異なります。antialiasingMode プロパティがNoAA に設定されている場合、このプロパティは効果を発揮しません。
設定可能な値は以下の通りです:
| 定数 | 説明 |
|---|---|
SceneEnvironment.Medium | SSAA: アンチエイリアシングは1.2倍のスーパーサンプリング解像度を使用します。 MSAA: アンチエイリアシングは1ピクセルあたり2サンプルを使用します。 ProgressiveAA: アンチエイリアシングは最終画像の生成に2フレームを使用します。 |
SceneEnvironment.High | SSAA: アンチエイリアシングに1.5倍のスーパーサンプリング解像度を使用します。 MSAA: アンチエイリアシングにピクセルあたり4サンプルを使用します。 ProgressiveAA: アンチエイリアシングに最終画像の生成に4フレームを使用します。 |
SceneEnvironment.VeryHigh | SSAA: アンチエイリアシングでは、2.0倍のスーパーサンプリング解像度が使用されます。 MSAA: アンチエイリアシングでは、1ピクセルあたり8サンプルが使用されます。 ProgressiveAA: アンチエイリアシングでは、最終的な画像の生成に8フレームが使用されます。 |
デフォルト値はSceneEnvironment.High
aoBias : real
このプロパティは、近距離にあるオブジェクトにアンビエントオクルージョンが表示されないようにするカットオフ距離を定義します。値を大きくすると、アンビエントオクルージョンが表示されるまでに必要なオブジェクト間の距離が長くなります。
注: アンビエントオクルージョンの影が、本来影が生じるべきではないオブジェクトに現れる場合は 、値をわずかに大きくして、近距離での結果をクリップしてください。
デフォルト値は 0.0 です。
aoDistance : real
このプロパティは、アンビエントオクルージョンの影がオブジェクトからどの程度遠くまで広がるかを大まかに定義します。距離が大きくなるほど、パフォーマンスへの影響も大きくなります。
デフォルト値は 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 [since 6.5]
アンビエントオクルージョンを有効または無効にします。
デフォルト値はfalse であり、これはアンビエントオクルージョンが無効であることを意味します。
注: aoStrength またはaoDistance の値が 0の場合 、このプロパティをtrue に設定すると、アンビエントオクルージョンが有効になるよう、それらの値も適切に設定されます。
注: 視覚的に美しいスクリーンスペースアンビエントオクルージョンを実現するには 、aoStrength 、aoSoftness 、aoDistance 、aoDither 、aoBias 、aoSampleRate などの関連パラメータを慎重に調整する必要があります。
このプロパティは Qt 6.5 で導入されました。
aoStrength およびaoDistanceも参照してください 。
aoSampleRate : int
このプロパティは、パフォーマンスを犠牲にしてアンビエントオクルージョンの品質(グレーの階調を増やす)を決定します。
値は 2、3、または 4 のいずれかでなければなりません。デフォルト値は 2 です。
aoSoftness : real
このプロパティは、アンビエントオクルージョンシェーディングのエッジの滑らかさを定義します。
値は 0.0 から 50.0 の範囲で指定する必要があります。デフォルト値は 50.0 です。
ここでは、デフォルト値のaoDistance と最大値のaoStrength を適用した例を示します:
| aoSoftness:50 | aoSoftness 25 |
|---|---|
|
|
注: 視覚的に美しいスクリーンスペース・アンビエントオクルージョンを実現するには 、aoStrength 、aoSoftness、aoDistance 、aoDither 、aoBias 、aoSampleRate などの関連パラメータを慎重に調整する必要があります。
aoStrength およびaoDistanceも参照してください 。
aoStrength : real
このプロパティは、適用されるアンビエントオクルージョンの量を定義します。アンビエントオクルージョンは、近似的なグローバルイルミネーションの一種であり、オブジェクトが互いに接近している場合に、方向性のない自己影を発生させます。 値を 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 の renderMode を使用している場合、このモードは効果を持ちません。 |
SceneEnvironment.Color | シーンは、clearColor プロパティで指定された色でクリアされます。View3D が、ポストプロセッシングを有効にしていない状態で renderMode として Underlay または Overlay を使用している場合、このモードは効果を持ちません。 |
SceneEnvironment.SkyBox | シーンはクリアされず、代わりにスカイボックスまたはスカイドームがレンダリングされます。スカイボックスは、lightProbe プロパティで定義されたHDRIマップを使用して定義されます。 |
SceneEnvironment.SkyBoxCubeMap | シーンはクリアされず、代わりにスカイボックスまたはスカイドームがレンダリングされます。スカイボックスは、skyBoxCubeMap プロパティで定義されたキューブマップを使用して定義されます。 |
SceneEnvironment.SkyMaterial | シーンはクリアされず、代わりにスカイボックスまたはスカイドームがレンダリングされます。スカイボックスは、skyMaterial プロパティで定義されたSkyMaterial によって生成されたキューブマップからサンプリングされます。(Qt 6.12以降) |
デフォルト値は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 [since 6.5]
このプロパティは、レンダラーのデバッグツールを設定するために使用されるDebugSettings オブジェクトを指定します。SceneEnvironment は生成時に、自身に関連付けられたDebugSettings オブジェクトを自動的に作成するため、通常、DebugSettings をカスタムで設定する必要はありません。
ワイヤーフレームモードを有効にしてシーンをレンダリングする例:

メッシュの法線ベクトルを可視化する場合:

スペキュラー照明の寄与を可視化:

このプロパティは Qt 6.5 で導入されました。
DebugSettingsも参照してください 。
depthPrePassEnabled : bool
この機能を有効にすると、レンダラーは不透明オブジェクトに対してZプリパスを実行します。つまり、メインのレンダリングパスに対するドローコールを発行する前に深度バッファを事前に埋めるため、単純なシェーダーを使用し、カラー書き込みを無効にしてこれらのオブジェクトをレンダリングします。
これはシーンの内容によってはパフォーマンスを向上させることができます。通常、オブジェクトの重なりが多く、フラグメントシェーディングの処理負荷が高いシーンでこの効果が得られます。一方で、レンダラーは不透明オブジェクトに対してフロント・トゥ・バックソートを実行しており、それ自体が不要なフラグメントシェーディングの削減に寄与しているため、Zプリパスが常に大幅なパフォーマンス向上をもたらすとは限らない点に留意する必要があります。
モバイルや組み込みシステムで一般的なタイル型レンダリングアーキテクチャを採用しているGPUでは、この設定をfalse に設定することを推奨します。
デフォルト値はfalse です。
注: 深度テストが無効になっている場合、この プロパティは効果を持ちません。
depthTestEnabled : bool
デフォルト値は `true` です。デフォルトでは、レンダラーはシーン内のオブジェクトを `opaque ` または `semi-transparent` のいずれかに分類します。opaque リストに含まれるオブジェクト(関連するマテリアルを持つサブメッシュ)は、深度テストと深度書き込みが有効な状態で最初にレンダリングされ、半透明領域のない一般的な3Dオブジェクトに対して最適なZカリングを提供します。semi-transparent リスト内のオブジェクトは、深度書き込みが無効化された状態でレンダリングされますが、深度テストは有効なままです(不透明なオブジェクトとの比較のため)。また、背面から前面への順序(中心点からカメラまでの距離に基づいてソートされた順序)でレンダリングされます。 これにより、node opacity 、あるいはマテリアル内の色やテクスチャマップによって、表面に半透明領域を含む 3D オブジェクトに対して、正しいブレンド(「透け感」)が可能になります。
このプロパティが「false 」に設定されている場合、Z バッファへの書き込みや Z バッファに対するテストは行われず、深度テストもスキップされ、完全に不透明なオブジェクトを含め、すべてのオブジェクトが「背面から前面」の順に一度にレンダリングされます。
このプロパティを `false ` に設定する必要が生じることはめったにないはずです。不透明なオブジェクトがごくわずかである場合や、単一の「背面から前面へ」ソートされたパスの方がパフォーマンスが向上するような変換が施されている場合など、2段階のアプローチによるメリットがほとんどないことが分かっているシーンでは、この設定が有用となる場合があります。
注: このプロパティをfalse に設定すると 、特定のシーンでレンダリングエラーが発生する可能性があります。また、カスタムマテリアルやエフェクトにおけるシャドウ、アンビエントオクルージョン、SCREEN_TEXTURE 、DEPTH_TEXTURE などの一部の機能は、深度バッファの使用を有効にしないと正しく動作しません。
注:この フラグは 、深度バッファや深度・ステンシルバッファの有無を制御するものではありません。この設定をfalse に設定した場合でも、これらのバッファは割り当てられる可能性があります。
effects : List<QtQuick3D::Effect>
このプロパティには、ビューポート全体に適用される後処理エフェクトの一覧が含まれています。各エフェクトの結果は次のエフェクトに渡されるため、順序が重要です。
注: 技術的な理由により 、同じ「Effect 」ノードをリストに複数回追加することはサポートされておらず、予期しない結果となる場合があります。
fog : QtQuick3D::Fog [since 6.5]
このプロパティが有効なFog オブジェクトに設定されると、レンダラーの組み込みフォグ機能の設定に使用されます。
デフォルト値は null であり、これはフォグがないことを意味します。これは、enabled が false に設定された Fog オブジェクトを指定することと同等です。

このプロパティは Qt 6.5 で導入されました。
「Fog」も参照してください 。
lightProbe : QtQuick3D::Texture
このプロパティは、標準のライトの代わりに、あるいはそれに加えて、シーンの照明に使用される画像を定義します。
画像は、高ダイナミックレンジ画像(HDR)または事前に生成されたキューブマップであることが推奨されます。プリベイクを行うことで、フィルタリングやミップマップ生成に時間を費やす必要がなくなるため、実行時のパフォーマンスが大幅に向上します。 ソースが .hdr またはその他の画像の場合、GPU ベースの前処理は画像ファイルの読み込み後に実行時に実行されるため、特に組み込みハードウェアやモバイルハードウェアでは、時間がかかる可能性があります。そのため、ここに記載されているように、アプリケーションでは遅くともビルド時に .hdr 画像を前処理することを強く推奨します。
注: このプロパティと組み合わせて、sourceItem を使用したテクスチャを使用することは サポートされていません。動的なQt Quick コンテンツのすべてのミップレベルを事前にフィルタリングすることは、パフォーマンスへの影響があるため、通常、実用上は合理的ではありません。
画像ベースのライティングに関する詳細については、「画像ベースのライティングの使用」を参照してください。
注: このプロパティが有効なテクスチャに設定されている場合、ライトプローブテクスチャは 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 キーを押すと、次のような結果になります。ここで使用しているシーンにはライトがないため、すべての 3D モデルが完全に黒く表示されることに注意してください。


lightProbeは、通常、画像ファイル(主に.hdrや.ktx)からデータを取得するTextureインスタンスと組み合わせて使用されますが、メモリ内のprocedurally generated image data を使用するTextureに関連付けることも理にかなっています。 その代表的な例として、QtQuick3D のHelpersモジュールに含まれるProceduralSkyTextureData によって画像データが生成されるテクスチャが挙げられます:
backgroundMode: SceneEnvironment.SkyBox
lightProbe: Texture {
textureData: ProceduralSkyTextureData {
}
}これにより、手続き的に生成されたHDRスカイボックステクスチャが得られ、これはスカイボックスとしても、イメージベースライティング(IBL)用としても使用されます:

関連項目として、 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 」も参照してください 。
oitMethod : enumeration [since 6.11]
このプロパティは、順序独立透過(OIT)方式を保持します。このプロパティを有効な OIT 方式に設定すると、レンダラーは透過ピクセルを正しい深度順でレンダリングします。
指定可能な値は次のとおりです。
| 定数 | 説明 |
|---|---|
SceneEnvironment.OITNone | OITが無効になります。 |
SceneEnvironment.OITWeightedBlended | 順序独立透過性を近似します。 |
SceneEnvironment.OITLinkedList | 正確な順序非依存透過。 |
デフォルトはNone で、順序非依存の透明度はオフになっています。
重み付きブレンド
これは、順序非依存透過の近似処理です。透過フラグメントはオフスクリーンバッファにレンダリングされ、各フラグメントにはカメラからの距離に基づいて重み付けが適用されます。 その後、各ピクセルの重み付けを解除してから、このバッファがバックバッファにブレンドされます。この方法は、すべてのフラグメントに対して「ソースオーバー」の合成ルールに従うわけではなく、結果は正しい結果とは異なりますが、古いハードウェアでも動作し、他のより厳密な方法よりも高速です。
リンクリスト
これは正確な順序非依存透過処理です。透過フラグメントはレンダリングパスで連結リストに描画され、深度順にソートされた後、合成パスでブレンドされます。
注: GLES 3.1 以下のデバイスでは、OIT は MSAA と併用できない場合があります。そのようなデバイスで OIT を使用したい場合は、MSAA を使用しないことをお勧めします。
注:順序 独立透過は、ソースオーバー(Source-Over)のブレンドモードにのみ適用されます。シーンに他のブレンドモードを持つオブジェクトが含まれている場合、OITは無効になります。
このプロパティは Qt 6.11 で導入されました。
probeExposure : real
このプロパティは、ライトプローブから放出される光の量を変更します。トーンマッピングの一部は露出マッピングであり、このプロパティは、ライトプローブ内の光の値がどのようにトーンマッピングされるかを調整します。
デフォルトでは、露出は 1.0 に設定されています。
注: tonemapMode がSceneEnvironment.TonemapModeNone に設定されている場合、この プロパティは効果を発揮しません。
「 lightProbe 」、「probeHorizon 」、および「probeOrientation 」も参照してください 。
probeHorizon : real
このプロパティを値を大きく設定して定義すると、環境の下半分が暗く(黒く)なり、照明が主に画像の上部から来るように強制されます(その結果、下半分からの特定の反射が除去されます)。このプロパティは、地面からのライトプローブの反射を遮ってしまうようなグラウンドプレーンを考慮する場合に役立ちます。 これは、ライトプローブの寄与がシーンの内容を考慮せずに画像から直接得られるため、必要となります。
probeHorizon プロパティの想定値の範囲は 0.0 から 1.0 です。この範囲外の値は、想定範囲内にクリップされます。
デフォルトでは、`probeHorizon` は 0.0 に設定されており、これは調整なしでライトプローブ全体が使用されることを意味します。
注: probeHorizonプロパティは マテリアルの照明にのみ影響し、スカイボックスのレンダリングには影響しません。
関連項目 :lightProbe 、probeExposure 、およびprobeOrientationも参照してください 。
probeOrientation : vector3d
このプロパティは、ライトプローブの向きを定義します。向きは、x軸、y軸、z軸に対するオイラー角(度単位)で定義されます。
注:この値は 、lightProbe テクスチャに設定されたテクスチャの回転やオフセットと組み合わせて、lightProbe テクスチャのサンプリング方法を補完するものです。
「 lightProbe 」、「probeHorizon 」、および「probeExposure 」も参照してください 。
scissorRect : rect [since 6.5]
このプロパティは、左上隅が [0, 0] にある、ビュー座標系上のシザー矩形を定義します。
このプロパティは Qt 6.5 で導入されました。
skyBoxCubeMap : QtQuick3D::CubeMapTexture [since 6.4]
このプロパティは、背景モードが「SkyBoxCubeMap 」の場合にスカイボックスとして使用されるキューブマップを定義します。
このプロパティは Qt 6.4 で導入されました。
skyMaterial : QtQuick3D::SkyMaterial [since 6.12]
このプロパティは、IBL やシーンの背景として使用される、手続き型で GPU 駆動の空モデルを定義します。
このプロパティは Qt 6.12 で導入されました。
「 backgroundMode 」および「lightProbe 」も参照してください 。
skyboxBlurAmount : real [since 6.4]
このプロパティは、backgroundMode プロパティにSceneEnvironment.SkyBox を設定した場合に、スカイボックスをどの程度ぼかすかを決定します。デフォルト値は0.0 で、これはぼかしが適用されないことを意味します。
有効な値の範囲は 0.0 から 1.0 までであり、それ以外の値はこの範囲にクリップされます。
このプロパティは Qt 6.4 で導入されました。
specularAAEnabled : bool [since 6.4]
このプロパティを有効にすると、スペキュラーエイリアシングが軽減されます。スペキュラーエイリアシングは、多くの場合、明るい点として現れ、カメラを動かした際にちらつくことがあります。
デフォルト値は false です。
| スペキュラーAAを無効化 | スペキュラーAAを有効にする |
|---|---|
|
|
このプロパティは Qt 6.4 で導入されました。
temporalAAEnabled : bool [default: false]
このプロパティを有効にすると、時間的アンチエイリアシングが使用されます。
フレーム間でカメラが非常にわずかに揺らされ、新しい各フレームの結果が前のフレームとブレンドされます。
注: antialiasingMode がMSAAに設定されている場合、時間的 アンチエイリアシングは効果を発揮しません。
注: ProgressiveAAを使用する場合 、シーンのアニメーション中は時間的アンチエイリアシングが適用されます。シーンが静止状態になると、ProgressiveAA が引き継ぎますが、これは「temporalAAMode 」が「SceneEnvironment.TAADefault」に設定されている場合に限られます。つまり、「temporalAAMode 」が「SceneEnvironment.TAAMotionVector」に設定されている場合、ProgressiveAA は効果を発揮しません。
長所:カメラの揺れにより、そうでなければ見逃されていた細部を捉えることができる。パフォーマンスへの影響が少ない。
デメリット:高速で移動するオブジェクトでは、1フレーム分のゴースト現象が発生します。
注: 現在、マルチビューレンダリングでは時間的 アンチエイリアシングはサポートされておらず、VR/ARアプリケーションでは使用しないでください。
temporalAAMode : enumeration [since 6.11]
時間的アンチエイリアシングモードを設定します。時間的アンチエイリアシングは、複数のフレームにわたる情報をブレンドすることで、ちらつきやエイリアシングを軽減します。
| 定数 | 説明 |
|---|---|
SceneEnvironment.TAADefault | 現在のフレームと前のフレームをブレンドして、基本的な時間フィルタリングを行います。 |
SceneEnvironment.TAAMotionVector | モーションベクトルを使用してフレーム間のピクセルの動きを追跡し、アニメーションシーンで優れた画質を実現します。 |
デフォルトは「SceneEnvironment.TAADefault 」です。
注:時間的アンチエイリアシング(Temporal AA)は 、高速で移動するオブジェクトや急激なカメラの動きにおいて、ゴーストのようなアーティファクトを引き起こす場合があります。
注: 一定のフレームレートで最適に機能します 。フレームレートの変動があると、効果が低下します。
このプロパティは Qt 6.11 で導入されました。
temporalAAStrength : real [default: 0.3]
このプロパティは、時間軸方向の動きの量(アンチエイリアシング)を変更します。これは、temporalAAEnabled プロパティがtrueの場合にのみ効果があります。
「temporalAAEnabled」も参照してください 。
tonemapMode : enumeration [since 6.0]
このプロパティは、レンダリング前に色がどのようにトーンマッピングされるかを定義します。Qt Quick の3Dにおけるすべてのレンダリングは線形色空間で行われるため、多くの場合、表示不可能な色値が生成される可能性があります。tonemapModeは、色を表示可能な範囲に再マッピングするために使用される手法を決定します。
デフォルト値はSceneEnvironment.TonemapModeLinear
| Constant | 説明 |
|---|---|
SceneEnvironment.TonemapModeNone | All トーンマッピングはバイパスされます。このモードは、ポストプロセッシングエフェクトを実行する際に役立ちます。 |
SceneEnvironment.TonemapModeLinear | 線形トーンマッピングが適用されます。色にはガンマ補正が施され、sRGB 色空間で返されます。 |
SceneEnvironment.TonemapModeAces | Academy Color Encoding System によるトーンマッピングが適用されます。 |
SceneEnvironment.TonemapModeHejlDawson | Hejl-Dawson トーンマッピングが適用されます。 |
SceneEnvironment.TonemapModeFilmic | フィルム調のトーンマッピングが適用されます。 |
これらの異なるモードの例については、ExtendedSceneEnvironment を参照してください。
注: 後処理エフェクトを使用する場合 、ほとんどのエフェクトは、トーンマッピングされていないリニアな色データを想定しています。Effect タイプを介して実装された、アプリケーションが提供するカスタムエフェクトについては、Qt 6.5 以降、エフェクトは線形カラーデータで動作すると安全に想定でき、チェーンの最後のエフェクトの出力に対してトーンマッピングが自動的に実行されることを知っておくことが重要です。 トーンマッピングを完全にカスタマイズする必要がある場合は、SceneEnvironment.TonemapModeNone の値を設定して組み込みのトーンマッパーを無効にし、代わりにチェーンの最後のエフェクトで色値に適切な調整を行うことを検討してください。 これは、ExtendedSceneEnvironment の組み込みエフェクトには適用されません。これらのエフェクトは、環境でどの組み込みエフェクトの組み合わせが有効になっているかに関係なく、適切なトーンマッピングを自動的に処理するためです。
このプロパティは Qt 6.0 で導入されました。
© 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.








