Auf dieser Seite

DirectionalLight QML Type

Definiert eine gerichtete Lichtquelle in der Szene. Mehr...

Import Statement: import QtQuick3D
Inherits:

Light

Eigenschaften

Ausführliche Beschreibung

Das gerichtete Licht strahlt aus einer nicht identifizierbaren Quelle, die sich unendlich weit entfernt befindet, in eine Richtung. Dies entspricht der Funktionsweise des Sonnenlichts in der Realität. Ein gerichtetes Licht hat eine unendliche Reichweite und nimmt nicht ab.

Wenn „ castsShadow “ aktiviert ist, verlaufen die Schatten parallel zur Lichtrichtung.

Ein gerichtetes Licht hat praktisch keine Position, daher hat das Verschieben des Lichts keinerlei Auswirkungen. Das Licht wird immer in Richtung der Z-Achse des Lichts ausgestrahlt.

Das Drehen des Lichts um seine X- oder Y-Achse verändert die Richtung der Lichtabstrahlung.

Das Skalieren eines gerichteten Lichts hat nur in den folgenden Fällen Auswirkungen:

  • Wenn die Z-Skalierung auf einen negativen Wert gesetzt ist, wird das Licht in die entgegengesetzte Richtung ausgestrahlt.
  • Wenn die Skalierung einer beliebigen Achse auf 0 gesetzt ist, wird das Licht entlang der Z-Achse der Welt ausgestrahlt.

    Hinweis: Das Drehen des Lichts hat dann keine Auswirkung.

Schauen wir uns ein einfaches Beispiel an:

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
        }
    }
}

Hier verwendet das „DirectionalLight“ die Standardfarbe „ white “ und strahlt in Richtung der Z-Achse des „DirectionalLight“-Knotens.

Grüner Kreis, der die Lichtrichtung entlang der Z-Achse anzeigt

Eine Drehung um 60 Grad um die X-Achse würde zu folgendem Ergebnis führen. Anstatt direkt in Richtung der Z-Achse zu strahlen, zeigt das Licht nun um 60 Grad „nach unten“:

DirectionalLight {
    eulerRotation.x: 60
}

Grüner Kreis mit Schattierung, der ein gedrehtes Richtungslicht darstellt

Weitere Anwendungsbeispiele finden Sie unter „Qt Quick 3D – Lights Example“.

Siehe auch „ PointLight “, „ SpotLight “ und „Shadow Mapping“.

Dokumentation der Eigenschaften

csmBlendRatio : real [since 6.8]

Diese Eigenschaft legt fest, zu welchem Anteil der Schatten einer Kaskade mit dem vorherigen verschmolzen werden soll.

Bereich: [0.0, 1.0]

Standardwert: 0.05

Diese Eigenschaft wurde in Qt 6.8 eingeführt.

csmNumSplits : int [since 6.8]

Diese Eigenschaft legt fest, in wie viele Teile der Sichtkegel beim Rendern der Schattenkarte unterteilt werden soll. Die Angabe „Keine Unterteilung“ bedeutet, dass die Schattenkarte so gerendert wird, dass sie den Begrenzungsrahmen aller Objekte abdeckt, die Schatten werfen bzw. empfangen.

Bereich: [0, 3]

Standardwert: 0

Diese Eigenschaft wurde in Qt 6.8 eingeführt.

Siehe auch csmSplit1, csmSplit2 und csmSplit3.

csmSplit1 : real [since 6.8]

Diese Eigenschaft legt fest, wo die erste Kaskade der Shadow-Map-Aufteilung stattfindet, wenn CSM aktiv ist.

Bereich: [0.0, 1.0]

Standardwert: 0.1

Hinweis: Diese Eigenschaft wird nur verwendet, wenn „ DirectionalLight::csmNumSplits “ größer ist als „ 0 “.

Diese Eigenschaft wurde in Qt 6.8 eingeführt.

Siehe auch „ csmSplit2 “ und „ csmSplit3 “.

csmSplit2 : real [since 6.8]

Diese Eigenschaft legt fest, wo die zweite Kaskade der Shadow-Map-Aufteilung stattfindet, wenn CSM aktiv ist.

Bereich: [0.0, 1.0]

Standardwert: 0.25

Hinweis: Diese Eigenschaft wird nur verwendet, wenn „ DirectionalLight::csmNumSplits “ größer ist als „ 1 “.

Diese Eigenschaft wurde in Qt 6.8 eingeführt.

Siehe auch „ csmSplit1 “ und „ csmSplit3 “.

csmSplit3 : real [since 6.8]

Diese Eigenschaft legt fest, wo die dritte Kaskade der Shadow-Map-Aufteilung stattfindet, wenn CSM aktiv ist.

Bereich: [0.0, 1.0]

Standardwert: 0.5

Hinweis: Diese Eigenschaft wird nur verwendet, wenn „ DirectionalLight::csmNumSplits “ größer ist als „ 2 “.

Diese Eigenschaft wurde in Qt 6.8 eingeführt.

Siehe auch „ csmSplit1 “ und „ csmSplit2 “.

lockShadowmapTexels : bool [since 6.9]

Wenn diese Eigenschaft aktiviert ist, werden die Positionen der Shadowmap-Texel in der Spielwelt „fixiert“, wodurch ein Flimmern an den Schattenkanten vermieden wird – allerdings auf Kosten größerer Shadowmap-Texel. Dies wird durch die Verwendung von Shadowmaps mit einheitlicher Größe und Texel-Ausrichtung für jede Kaskade erreicht.

Standardwert: false

Diese Eigenschaft wurde in Qt 6.9 eingeführt.

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