このページでは

Fog QML Type

シーンの霧の設定を指定します。詳細...

Import Statement: import QtQuick3D
Since: Qt 6.5
Inherits:

QtObject

プロパティ

詳細な説明

SceneEnvironment のfog プロパティが有効なFogオブジェクトに設定されると、そのプロパティを使用してフォグのレンダリングが構成されます。

霧の効果が施されたシーン

このタイプが提供するシンプルなフォグは、マテリアルによって実装されます。これはポストプロセッシング効果ではなく、つまり、View3D の出力でテクスチャを処理する追加のレンダリングパスは行われません。その代わりに、各レンダリング対象オブジェクト(Model のサブメッシュ)のフラグメントシェーダー内で、PrincipledMaterial またはシェーディングされたCustomMaterial を使用して実装されます。

フォグは、以下のプロパティによって設定されます:

たとえば、以下のスニペットでは、デフォルトのフォグパラメータを使用して、深度フォグ(高さフォグは除く)を有効にしています:

environment: SceneEnvironment {
    backgroundMode: SceneEnvironment.Color
    clearColor: theFog.color
    fog: Fog {
        id: theFog
        enabled: true
        depthEnabled: true
    }
}

Fogオブジェクトをインラインで定義する代わりに、id を使用してFogオブジェクトを参照することも可能です。また、ExtendedSceneEnvironment は親クラスであるSceneEnvironment からすべてのプロパティを継承しているため、ExtendedSceneEnvironment でもフォグを使用できます:

Fog {
    id: theFog
    enabled: true
    depthEnabled: true
}
environment: ExtendedSceneEnvironment {
    fog: theFog
}

「Qt Quick 3D - 簡単なフォグの例」および「Qt Quick 3D - シーンエフェクトの例」も参照してください 。

プロパティのドキュメント

color : color

霧の色。デフォルト値は「#8099b3」です

彩度がやや抑えられた青い霧が漂う情景

色を青みがかった色に変更した同じシーン:

青い霧が立ち込める情景

densityも参照してください 。

density : real

霧の量を制御します。実際には、0~1の範囲の乗数として機能します。デフォルト値は1.0です。この値を小さくすると、霧の効果の強さが弱まります。depthEnabled がtrueに設定されている場合にのみ適用されます。

画面上の視覚効果は、「ExtendedSceneEnvironment 」のトーンマッピングやグロー・ブルームなど、他のいくつかの設定の影響を受ける可能性があります。他のエフェクトが有効になっているか、またそれらの設定内容によっては、同じ密度値でも異なる結果になる場合があります。

密度を「0.95 」に設定したシーンの例:

霧の濃度が95パーセントのシーン

密度を0.15 に下げた同じシーン:

霧の濃度が15パーセントのシーン

「color」も参照してください 。

depthCurve : real

デフォルト値は 1.0 です。

depthEnabled がtrueに設定されている場合にのみ適用されます。

「depthEnabled」も参照してください 。

depthEnabled : bool

遠くに霧を表示するかどうかを制御します。デフォルト値は false です。

関連項目: heightEnabled 、enabled 、depthNear 、depthFar 、およびdepthCurve 。

depthFar : real

カメラからの終端距離。デフォルト値は 1000.0 です。depthEnabled が true に設定されている場合にのみ適用されます。

注: depthNear やdepthFarなどのプロパティによって適切な範囲を定義できるよう、カメラやモデルを含むシーンは 適切にセットアップされている必要があります。トランスフォームを事前に調整せずに、そのままインポートされたアセットを含むシーンで、常にフォグを有効にできるとは限りません。 例えば、このページに掲載されているSponzaモデルを使用したスクリーンショットは、glTFソースアセットから「balsam 」ツールによって生成されたインスタンス化されたSponzaコンポーネントに対し、手動で(100, 100, 100) の追加スケールを適用した後に生成されたものです。これにより、depthNear およびdepthFarの値を調整することで、見栄えの良い結果を得るのに十分なZ範囲が確保されました。

depthNear およびdepthEnabledも参照してください 。

depthNear : real

カメラからの開始距離。デフォルト値は 10.0 です。depthEnabled が true に設定されている場合にのみ適用されます。

例として、このシーンを見てみましょう。まずは depthNear の値を高く設定した場合です。

奥行きが深いシーン 霧に近い値

depthNearの値を小さくすると、霧が発生するカメラからの距離が短くなるため、実質的に霧がカメラに「近づく」ことになります:

奥行きが浅いシーン 霧に近い値

注: 深度NearやdepthFar などのプロパティによって適切な範囲が定義できるよう、カメラやモデルを含むシーンは 適切にセットアップされている必要があります。トランスフォームを事前に調整せずに、そのままインポートされたアセットを含むシーンで、常にフォグを有効にできるとは期待しないでください。 例えば、このページに掲載されているSponzaモデルを使用したスクリーンショットは、glTFソースアセットからbalsam ツールによって生成されたインスタンス化されたSponzaコンポーネントに、手動で(100, 100, 100) の追加スケールを適用した後に生成されたものです。これにより、depthNearおよびdepthFar の値を調整することで、見栄えの良い結果を得るのに十分なZ範囲が確保されました。

depthFar およびdepthEnabledも参照してください 。

enabled : bool

シーンにフォグを適用するかどうかを制御します。デフォルト値は false です。

この値を true に設定しない限り、深度フォグや高さフォグを有効にしても効果はありません。

depthEnabled およびheightEnabledも参照してください 。

heightCurve : real

高さフォグの強度を指定します。デフォルト値は 1.0 です。heightEnabled が true に設定されている場合にのみ適用されます。

「heightEnabled」も参照してください 。

heightEnabled : bool

高さのフォグを有効にするかどうかを制御します。デフォルト値は false です。

depthEnabled 、enabled 、leastIntenseY 、mostIntenseY 、およびheightCurveも参照してください 。

leastIntenseY : real

霧の濃度が最も薄くなる位置(Y座標)を指定します。デフォルト値は 10.0 です。heightEnabled が true に設定されている場合にのみ適用されます。

注:デフォルトでは 、この値はmostIntenseY よりも大きくなっています。この値がtrueである限り、フォグは上から下に向かってレンダリングされます。この値がmostIntenseY よりも小さい場合、フォグは下から上に向かってレンダリングされます。

注: Qt Quick の3Dシーンでは、Y軸は 上向きを指します。

この図は、高さフォグが有効(深度フォグは無効)で、leastIntenseY が、フォグが Sponza シーンの下部周辺にのみ広がるように設定されたシーンを示しています。

leastIntenseY の霧の値が低いシーン

leastIntenseYの値を大きくすると、シーン内のより高いY位置から霧が広がるようになるため、霧の広がり範囲が上方向へ広がります。(Y軸は上向きであることを忘れないでください)

leastIntenseY の霧の値が高いシーン

注: 深度フォグと同様に 、leastIntenseY およびmostIntenseY によって適切な Y 座標範囲が定義できるよう、シーンは適切にセットアップされている必要があります。トランスフォームを事前に調整せずに、そのままインポートされたアセットを含むシーンで、常にフォグを有効にできるとは期待しないでください。 例えば、このページにあるSponzaモデルを使用したスクリーンショットは、glTFソースアセットからbalsam ツールによって生成されたSponzaコンポーネントをインスタンス化した後、手動で(100, 100, 100) の追加スケールを適用して生成されたものです。

「 mostIntenseY 」および「heightEnabled 」も参照してください 。

mostIntenseY : real

霧が最も濃い位置(Y座標)を指定します。デフォルト値は0です。heightEnabled がtrueに設定されている場合にのみ適用されます。

注:デフォルトでは、 この値はleastIntenseY よりも小さい値になっています。この状態では、霧は上から下に向かってレンダリングされます。この値がleastIntenseY よりも大きい場合、霧は下から上に向かってレンダリングされます。

注: Qt Quick 3D シーンでは、Y 軸は 上向きです。

注: 深度フォグと同様に 、leastIntenseY および mostIntenseY によって適切な Y 座標範囲が定義できるよう、シーンは適切にセットアップされている必要があります。トランスフォームを事前に調整せずに、そのままインポートされたアセットを含むシーンで、常にフォグを有効にできるとは期待しないでください。 例えば、このページに掲載されているSponzaモデルを使用したスクリーンショットは、glTFソースアセットから「balsam 」ツールによって生成されたSponzaコンポーネントをインスタンス化した後、手動で(100, 100, 100) のスケールを追加適用して生成されたものです。

「 leastIntenseY 」および「heightEnabled 」も参照してください 。

transmitCurve : real

光透過効果の強さ。デフォルト値は 1.0 です。transmitEnabled が true に設定されている場合にのみ適用されます。

transmitEnabled : bool

霧に光の透過効果があるかどうかを制御します。デフォルト値は false です。

© 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.