このページでは

DirectionalLight QML Type

シーン内の方向性ライトを定義します。詳細...

Import Statement: import QtQuick3D
Inherits:

Light

プロパティ

詳細説明

指向性ライトは、無限遠にある特定できない光源から一方向に光を放射します。これは、現実の世界における太陽光の働きに似ています。指向性ライトの照射範囲は無限であり、光の強さは弱まりません。

「castsShadow 」が有効になっている場合、影は光の方向と平行になります。

指向性ライトは実質的に位置を持たないため、移動させても何の影響もありません。光は常にライトのZ軸の方向に放射されます。

X軸またはY軸に沿ってライトを回転させると、光の照射方向が変わります。

指向性ライトのスケーリングが影響を与えるのは、以下の場合のみです:

  • Zスケールが負の値に設定されている場合、光は反対方向に放射されます。
  • いずれかの軸のスケールが 0 に設定されている場合、光はワールドの Z 軸に沿って放射されます。

    注: この場合、ライトの回転は 効果を持ちません。

簡単な例を見てみましょう:

import QtQuick
import QtQuick3D
View3D {
    anchors.fill: parent

    PerspectiveCamera { z: 600 }

    DirectionalLight {
    }

    Model {
        source: "#Sphere"
        scale: Qt.vector3d(4, 4, 4)
        materials: PrincipledMaterial {
            baseColor: "#40c060"
            roughness: 0.1 // make specular highlight visible
        }
    }
}

ここでは、DirectionalLightはデフォルトのwhite 色を使用し、DirectionalLightノードのZ軸の方向に光を放っています。

Z軸に沿って発光する方向性を示す緑色の円

X軸を中心に60度回転させると、次のようになります。Z軸の方向にまっすぐ光が放出されるのではなく、光は60度「下」を向くようになります:

DirectionalLight {
    eulerRotation.x: 60
}

陰影のついた緑色の円で、回転した指向性ライトを示しています

その他の使用例については、「Qt Quick 3D - ライトの例」を参照してください。

PointLight 、SpotLight 、およびShadow Mappingも参照してください 。

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

csmBlendRatio : real [since 6.8]

このプロパティは、カスケードの各段階の影を、前の段階の影とどの程度ブレンドするかを定義します。

範囲:[0.0, 1.0]

デフォルト値:0.05

このプロパティは Qt 6.8 で導入されました。

csmNumSplits : int [since 6.8]

このプロパティは、シャドウマップをレンダリングする際に、フラスタムを分割する回数を定義します。分割回数が「0」の場合、シャドウマップは、影を投射するオブジェクトおよび影を受けるオブジェクトすべてのバウンディングボックスを覆うようにレンダリングされます。

範囲:[0, 3]

デフォルト値:0

このプロパティは Qt 6.8 で導入されました。

関連項目 :csmSplit1 、csmSplit2 、およびcsmSplit3も参照してください 。

csmSplit1 : real [since 6.8]

このプロパティは、CSMが有効な場合に、シャドウマップの分割における最初のカスケードがどこで発生するかを定義します。

範囲:[0.0, 1.0]

デフォルト値:0.1

注:この プロパティは、DirectionalLight::csmNumSplits が0 よりも大きい場合にのみ使用されます。

このプロパティはQt 6.8で導入されました。

「 csmSplit2 」および「csmSplit3 」も参照してください 。

csmSplit2 : real [since 6.8]

このプロパティは、CSMが有効な場合に、シャドウマップ分割の2番目のカスケードがどこで発生するかを定義します。

範囲:[0.0, 1.0]

デフォルト値:0.25

注: この プロパティは、DirectionalLight::csmNumSplits が1 より大きい場合にのみ使用されます。

このプロパティはQt 6.8で導入されました。

「 csmSplit1 」および「csmSplit3 」も参照してください 。

csmSplit3 : real [since 6.8]

このプロパティは、CSM が有効な場合に、シャドウマップ分割の 3 番目のカスケードがどこで発生するかを定義します。

範囲:[0.0, 1.0]

デフォルト値:0.5

注: この プロパティは、DirectionalLight::csmNumSplits が2 より大きい場合にのみ使用されます。

このプロパティはQt 6.8で導入されました。

関連項目: ` csmSplit1 ` および `csmSplit2`。

lockShadowmapTexels : bool [since 6.9]

このプロパティを有効にすると、シャドウマップのテクセルがワールド内の位置で「固定」され、シャドウマップのテクセルサイズが大きくなる代償として、シャドウのエッジのちらつきが解消されます。これは、各カスケードに対して、均一なサイズでテクセルアラインされたシャドウマップを使用することで実現されます。

デフォルト値:false

このプロパティは Qt 6.9 で導入されました。

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