Lightmapper QML Type
Legt die Einstellungen für das Backen von Lichtkarten für eine Szene fest. Mehr...
| Import Statement: | import QtQuick3D |
| Since: | Qt 6.4 |
| Inherits: |
Eigenschaften
- adaptiveBiasEnabled : bool
- bias : real
- bounces : int
- denoiseSigma : real
(since 6.10) - indirectLightEnabled : bool
- indirectLightFactor : real
- indirectLightWorkgroupSize : int
- opacityThreshold : real
- samples : int
- source : url
(since 6.10) - texelsPerUnit : real
(since 6.10)
Detaillierte Beschreibung
Wird beim Backen von direkter und indirekter Beleuchtung verwendet. Die meisten dieser Einstellungen sind zu anderen Zeiten nicht relevant, z. B. wenn bereits generierte Lightmaps zum Rendern einer Szene verwendet werden. Die Ausnahme ist source, obwohl dies eine sinnvolle Voreinstellung für die Entwicklung hat.
Nach einem erfolgreichen Bake wird eine einzelne Datei mit dem unter source angegebenen Wert erzeugt. Diese Binärdatei enthält die Ergebnisse des Bake, einschließlich der Lightmaps pro Modell und der Mesh-Dateien mit Lightmap-kompatiblen UVs. Der Zugriff auf die einzelnen Modelldaten erfolgt über BakedLightmap::key.
Die in der resultierenden Lightmap-Datei enthaltenen Daten sind alle eng miteinander und mit dem aktuellen Zustand der Szene gekoppelt. Das bedeutet, dass jede Änderung an den ursprünglichen Mesh-Dateien, Lightmapper-Einstellungen oder anderen Szenenänderungen einen neuen Bake erfordert, um das aktualisierte Ergebnis zu sehen.
Hinweis: Ab Qt 6.4 befindet sich das Lightmap-Baking in einem frühen Stadium der Technologievorschau. Änderungen an den Funktionen, der Qualität und der API werden wahrscheinlich in zukünftigen Versionen erfolgen.
Das Lightmapper Objekt arbeitet in Kombination mit:
- Model::bakedLightmap und den zugehörigen BakedLightmap,
- Model::usedInBakedLighting und Model::texelsPerUnit,
- Light::bakeMode,
- dem eingebauten Lightmap-Baker der Engine.
Siehe auch Lightmaps und Global Illumination, Qt Quick 3D - Baked Lightmap Example und Qt Quick 3D - SSGI Lightmap Example.
Dokumentation der Eigenschaften
adaptiveBiasEnabled : bool
Ermöglicht die Anwendung einer zusätzlichen, dynamischen Verzerrung auf der Grundlage der Oberflächennormale.
Der Standardwert ist true.
bias : real
Raycasting-Bias, der beim Backen verwendet wird. Passen Sie den Wert an, falls Artefakte auftreten, z. B. um unerwünschte Schattenmuster zu reduzieren. In vielen Fällen ist der Standardwert ausreichend.
Der Standardwert ist 0,005.
bounces : int
Die maximale Anzahl der indirekten Lichtreflexionen pro Probe. Der Wert sollte mindestens 1 sein, da die Berechnung des indirekten Lichts sonst sinnlos ist.
Der Standardwert ist 3.
Der Wert wirkt sich stark auf die Leistung und die Qualität der resultierenden Lichtkarten beim Backen von Lichtkarten aus.
denoiseSigma : real [default: 8, since 6.10]
Diese Eigenschaft legt den Sigma-Wert des auf nicht-lokalen Mitteln basierenden Denoiser fest. Das heißt, je höher dieser Wert ist, desto stärker wird die Unschärfe sein. Versuchen Sie, diesen Wert so niedrig wie möglich zu halten, um den Verlust von visuellen Merkmalen zu vermeiden und gleichzeitig das Rauschen zu entfernen.
Diese Eigenschaft wurde in Qt 6.10 eingeführt.
indirectLightEnabled : bool
Normalerweise ist es nicht notwendig, diesen Wert zu ändern. Der Standardwert ist true. Wenn Sie diese Eigenschaft auf false setzen, wird die Berechnung des indirekten Lichts während des Lightmap-Backens deaktiviert. Die resultierenden Texturkarten enthalten dann nur direkte Lichtinformationen. Zur Laufzeit wird die Engine die Maps weiterhin normal verwenden, in der Annahme, dass sie sowohl direkte als auch indirekte Beleuchtung enthalten.
indirectLightFactor : real
Multiplikator für die indirekte Lichtmenge. Obwohl der Wert 1 (d. h. er wirkt sich nicht auf die Berechnung der indirekten Lichtmenge aus) die absolut korrekten Rendering-Ergebnisse liefert, kann ein etwas höherer Wert oft zu besser aussehenden Ergebnissen führen, wenn die Lightmap verwendet wird, selbst bei einer geringeren Anzahl von Bounces.
Der Standardwert ist 1.
indirectLightWorkgroupSize : int
Die Größe der Musterarbeitsgruppen. Diese Arbeitsgruppen werden versucht, parallel ausgeführt zu werden. (das genaue Verhalten hängt von der Anzahl der CPU-Kerne und der Konfiguration von QThreadPool ab)
Der Standardwert ist 32. Bei der Standardprobenanzahl von 256 bedeutet dies, dass versucht wird, 8 Gruppen pro Modell parallel auszuführen.
opacityThreshold : real
Der Schwellenwert für die Deckkraft (Alpha), unterhalb dessen ein Objekt bei der Berechnung der Beleuchtung mittels Raytracing an den Schnittpunkten zwischen Strahl und Netz ignoriert wird. Wenn die Deckkraft unter den Schwellenwert fällt, verdeckt das Modell (Submesh) keine Lichter und erzeugt somit auch keine Schatten.
Der Standardwert ist 0.5.
Hinweis: Der Lightmapper berücksichtigt die material's opacity und die baseColor alpha kombiniert mit der base color map's alpha. Andere Quellen der Semitransparenz, wie die Deckkraftkarte oder Alpha-Cut-off-Einstellungen, werden während des Lightmap-Backprozesses ignoriert.
samples : int
Die Anzahl der Samples pro Lightmap-Texel.
Der Standardwert ist 256.
Der Wert beeinflusst sowohl die Leistung als auch die Qualität der resultierenden Lightmaps während des Lightmap-Backvorgangs erheblich.
source : url [default: file:lightmaps.bin, since 6.10]
Die URL zum Laden der Lightmap-Datei zur Laufzeit und der Pfad der Ausgabedatei nach erfolgreichem Bake.
Beim Backen wird der Ausgabepfad aus der URL abgeleitet und muss in einen regulären Dateipfad aufgelöst werden, der beschreibbar ist. Standardmäßig ist der Wert file:lightmaps.bin, was bedeutet, dass die Datei im aktuellen Arbeitsverzeichnis abgelegt wird und das Endergebnis sofort nach erfolgreichem Backen erscheint.
Im gleichen Verzeichnis wie die Ausgabedatei wird eine Datei .raw erstellt, die zusätzliche Lichtkartendaten enthält, die vor der Erstellung der endgültigen Lichtkartendatei verwendet werden. Damit ist es möglich, nur die Entrauschung durchzuführen, ohne die gesamte Szene zwischen den Durchläufen backen zu müssen, vorausgesetzt, die Datei .raw ist vorhanden.
Wenn du die Lightmap als QRC-Ressource lesen willst, musst du sie auf die übliche Weise einbetten und ein :/ oder qrc:/ Präfix an die URL anhängen. Das folgende Beispiel versucht immer, die über Ressourcen eingebettete Lightmap-Datei zu laden. Setzen Sie den Wert zunächst auf einen beschreibbaren Speicherort und backen Sie ihn. Kopieren Sie dann die erzeugte Datei in den Quelltext. Indem man die Datei im CMake-Projekt der Anwendung als Ressource unter /lightmaps PREFIX auflistet, kann der Build-Prozess die Datei abholen und in die ausführbare Datei einfügen.
Lightmapper { source: "qrc:/lightmaps/lightmaps.bin" // will attempt to load from :/lightmaps/lightmaps.bin at runtime // and write a file to lightmaps/lightmaps.bin when baking. }
Diese Eigenschaft wurde in Qt 6.10 eingeführt.
texelsPerUnit : real [default: 1, since 6.10]
Diese Eigenschaft definiert die Einheit der Texel-Skala, was bedeutet, dass ein 1x1 Quad mit texelsPerUnit von 32 ungefähr 32x32 Texel in der Lightmap einnimmt.
Diese Eigenschaft wurde in Qt 6.10 eingeführt.
Siehe auch Model::texelsPerUnit.
© 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.