PointLight QML Type
Definiert eine Punktlichtquelle in der Szene. Mehr...
| Import Statement: | import QtQuick3D |
| Inherits: |
Eigenschaften
- constantFade : real
- linearFade : real
- quadraticFade : real
Ausführliche Beschreibung
Die Punktlichtquelle lässt sich als Kugel beschreiben, die von ihrem Zentrum aus in alle Richtungen gleich starkes Licht ausstrahlt. Dies ähnelt der Art und Weise, wie eine Glühbirne Licht ausstrahlt.
Das Drehen oder Skalieren einer Punktlichtquelle hat keine Auswirkungen. Das Verschieben einer Punktlichtquelle verändert die Position, von der aus das Licht ausgestrahlt wird.
Standardmäßig nimmt die Intensität einer Punktlichtquelle gemäß dem Abstandsgesetz ab. Der Ausblendbereich (und die Reichweite) kann jedoch mit den Eigenschaften „ constantFade “, „ linearFade “ und „ quadraticFade “ gesteuert werden. Die Lichtabschwächung wird anhand der folgenden Formel berechnet: constantFade + distance * (linearFade * 0,01) + distance^2 * (quadraticFade * 0,0001)
Ein einfaches Beispiel: Eine Kugel auf drei verschiedene Arten schattieren
Nehmen wir eine Szene, die eine Kugel vor einem vergrößerten Rechteck im Hintergrund enthält. Die Standard-Grundfarbe des „ PrincipledMaterial “ des Rechtecks ist weiß.
Ohne jegliche Lichtquellen und bei deaktivierter lichtabhängiger Schattierung für die beiden Meshes erhalten wir folgendes Ergebnis:
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 entlang 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
}
}
}
Was passiert, wenn wir nun „ DirectionalLight “ durch Folgendes ersetzen:
PointLight {
z: 300
}Das weiße „PointLight“ wird hier auf der Z-Achse so verschoben, dass es sich auf halbem Weg zwischen der Kamera und dem Mittelpunkt der Szene befindet. Im Gegensatz zu „ DirectionalLight “ spielt die Drehung des „PointLight“ keine Rolle, während seine Position von Bedeutung ist. Die abnehmende Intensität ist hier sichtbar, insbesondere am Rechteck-Mesh im Hintergrund.

Weitere Anwendungsbeispiele finden Sie unter „Qt Quick 3D – Lights Example“.
Siehe auch „ DirectionalLight “, „ SpotLight “ und „Shadow Mapping“.
Dokumentation zu den Eigenschaften
constantFade : real
Diese Eigenschaft ist ein konstanter Faktor des Dämpfungsterms des Lichts. Der Standardwert beträgt 1,0.
linearFade : real
Diese Eigenschaft erhöht die Geschwindigkeit, mit der der Lichteffekt die Lichtintensität proportional zur Entfernung zur Lichtquelle dämpft. Der Standardwert ist „ 0.0 “, was bedeutet, dass das Licht nicht linear abnimmt. Der hier verwendete Wert wird mit „ 0.01 “ multipliziert, bevor er zur Berechnung der Lichtdämpfung herangezogen wird.
quadraticFade : real
Diese Eigenschaft erhöht die Geschwindigkeit, mit der der Lichteffekt die Lichtintensität proportional zum inversen Quadratgesetz dämpft. Der Standardwert beträgt 1,0, was bedeutet, dass die Lichtabnahme des Punktlichts genau dem inversen Quadratgesetz folgt, d. h., wenn sich der Abstand zu einem Objekt verdoppelt, verringert sich die Lichtintensität auf ein Viertel. Der hier verwendete Wert wird mit 0.0001 multipliziert, bevor er zur Berechnung der Lichtdämpfung herangezogen wird.
© 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.