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:

QtObject

Eigenschaften

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 technischen Vorschau. Änderungen an den Funktionen, der Qualität und der API werden wahrscheinlich in zukünftigen Versionen erfolgen.

Das Lightmapper Objekt arbeitet in Kombination mit:

Siehe auch Lightmaps und Global Illumination und Qt Quick 3D - Baked Lightmap Example.

Eigenschaft Dokumentation

adaptiveBiasEnabled : bool

Ermöglicht die Anwendung einer zusätzlichen, dynamischen Verzerrung basierend auf der Oberflächennormale.

Der Standardwert ist true.


bias : real

Raycasting-Verzerrung, die beim Baking 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 Lichtreflexe pro Probe. Der Wert sollte mindestens 1 sein, da die Berechnung des indirekten Lichts sonst sinnlos ist.

Der Standardwert ist 3.

Der Wert beeinflusst sowohl die Leistung als auch die Qualität der resultierenden Lightmaps während des Lightmap-Backens erheblich.


denoiseSigma : real [default: 8, since 6.10]

Diese Eigenschaft definiert den Sigma-Wert des auf nicht-lokalen Mitteln basierenden Entrauschers. 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 besteht keine Notwendigkeit, diesen Wert zu ändern. Der Standardwert ist true. Setzt man diese Eigenschaft auf false, wird die Berechnung des indirekten Lichts während des Lightmap-Backens deaktiviert. Somit enthalten die resultierenden Texturkarten nur direkte Lichtinformationen. Zur Laufzeit verwendet die Engine die Maps normal weiter, in der Annahme, dass sie sowohl direkte als auch indirekte Beleuchtung enthalten.


indirectLightFactor : real

Multiplikator für die Menge des indirekten Lichts. Während der Wert von 1 (d.h. er hat keinen Einfluss auf die Berechnung der indirekten Lichtmenge) die absolut korrekten Rendering-Ergebnisse liefert, kann ein etwas höherer Wert oft zu besser aussehenden Ergebnissen bei der Verwendung der Lightmap führen, selbst bei einer geringeren Anzahl von Bounces.

Der Standardwert ist 1.


indirectLightWorkgroupSize : int

Die Größe der Beispiel-Arbeitsgruppen. Es wird versucht, diese Arbeitsgruppen parallel auszuführen. (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 von Beleuchtungen mittels Raytracing in Strahlen-Netz-Schnittpunkten ignoriert wird. Wenn die Deckkraft unter den Schwellenwert fällt, wird das Modell (Submesh) keine Lichter verdecken und somit auch keine Schatten erzeugen.

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 z.B. die Deckkraftkarte oder die Alpha-Cut-Off-Einstellungen, werden während des Lightmap-Backvorgangs 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 Baking.

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 zur Texel-Skalierung, 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.


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