PointLight QML Type
Definiert einen Lichtpunkt in der Szene. Mehr...
Import Statement: | import QtQuick3D |
Inherits: |
Eigenschaften
- constantFade : real
- linearFade : real
- quadraticFade : real
Ausführliche Beschreibung
Das Punktlicht kann als eine Kugel beschrieben werden, die Licht mit gleicher Stärke in alle Richtungen vom Zentrum des Lichts ausstrahlt. Dies ist vergleichbar mit der Art und Weise, wie eine Glühbirne Licht ausstrahlt.
Das Drehen oder Skalieren eines Punktlichts hat keine Auswirkung. Das Verschieben eines Punktlichts ändert die Position, von der aus das Licht ausgestrahlt wird.
Standardmäßig nimmt die Intensität eines Punktlichts nach dem inversen Quadratgesetz ab. Die Abschwächung (und der Bereich) kann jedoch mit den Eigenschaften constantFade, linearFade und quadraticFade gesteuert werden. Die Lichtabschwächung wird nach der folgenden Formel berechnet constantFade + distance
* (linearFade * 0.01) + distance^2
* (quadraticFade * 0.0001)
Ein einfaches Beispiel: Schattierung einer Kugel auf drei verschiedene Arten
Nehmen wir eine Szene mit einer Kugel vor einem skalierten Rechteck im Hintergrund. Die Standard-Grundfarbe der PrincipledMaterial des Rechtecks ist weiß.
Ohne Lichter und bei deaktivierter lichtbezogener Schattierung für die beiden Meshes ergibt sich folgendes Bild:
import QtQuick import QtQuick3D View3D { anchors.fill: parent PerspectiveCamera { z: 600 } Model { source: "#Rectangle" scale: Qt.vector3d(10, 10, 10) z: -100 materials: PrincipledMaterial { lighting: PrincipledMaterial.NoLighting } } Model { source: "#Sphere" scale: Qt.vector3d(2, 2, 2) materials: PrincipledMaterial { lighting: PrincipledMaterial.NoLighting baseColor: "#40c060" roughness: 0.1 } } }
Das Hinzufügen eines gerichteten Lichts, das standardmäßig in Richtung der Z-Achse strahlt, führt zu folgendem Ergebnis:
import QtQuick import QtQuick3D View3D { anchors.fill: parent PerspectiveCamera { z: 600 } DirectionalLight { } Model { source: "#Rectangle" scale: Qt.vector3d(10, 10, 10) z: -100 materials: PrincipledMaterial { } } Model { source: "#Sphere" scale: Qt.vector3d(2, 2, 2) materials: PrincipledMaterial { baseColor: "#40c060" roughness: 0.1 } } }
Ersetzen wir nun DirectionalLight durch:
PointLight { z: 300 }
Das weiß gefärbte PointLight wird hier auf der Z-Achse so verschoben, dass es sich auf halbem Weg zwischen der Kamera und dem Zentrum der Szene befindet. Im Gegensatz zu DirectionalLight spielt die Drehung des PointLights keine Rolle, während seine Position von Bedeutung ist. Die abnehmende Intensität ist hier sichtbar, besonders auf dem rechteckigen Netz im Hintergrund.
Weitere Anwendungsbeispiele finden Sie unter Qt Quick 3D - Lights Example.
Siehe auch DirectionalLight, SpotLight, und Shadow Mapping.
Dokumentation der Eigenschaft
constantFade : real |
Diese Eigenschaft ist ein konstanter Faktor des Abschwächungsterms des Lichts. Der Standardwert ist 1,0.
linearFade : real |
Diese Eigenschaft erhöht die Rate, mit der der Lichteffekt das Licht im Verhältnis zum Abstand zum Licht dimmt. Der Standardwert ist 0.0
, d. h. das Licht wird nicht linear abgeblendet. Der hier verwendete Wert wird mit 0.01
multipliziert, bevor er zur Berechnung der Lichtabschwächung verwendet wird.
quadraticFade : real |
Diese Eigenschaft erhöht die Rate, mit der der Beleuchtungseffekt das Licht im Verhältnis zum inversen Quadratgesetz dimmt. Der Standardwert ist 1,0, was bedeutet, dass die Lichtabschwächung genau dem inversen quadratischen Gesetz folgt, d. h. wenn sich der Abstand zu einem Objekt verdoppelt, nimmt die Lichtintensität auf 1/4 ab. Der hier verwendete Wert wird mit 0.0001
multipliziert, bevor er zur Berechnung der Lichtabschwächung verwendet wird.
© 2025 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.