Qt Quick 3D - Beispiel für gebackene Lightmaps
Veranschaulicht die Verwendung von gebackenen Lightmaps in einer 3D-Szene.

Dieses Beispiel veranschaulicht die Verwendung von vollständig gebackener Beleuchtung in einer Szene. Dadurch wirkt die gerenderte Szene wesentlich realistischer, was vor allem auf die zusätzliche indirekte Beleuchtung zurückzuführen ist. Mithilfe eines Kontrollkästchens lässt sich das Lightmapping deaktivieren, sodass die Renderergebnisse des Echtzeit- und des vollständig gebackenen Ansatzes verglichen werden können.
Einrichten der Lichtquelle
Die Szene verfügt über eine einzelne Punktlichtquelle. Wenn das Kontrollkästchen aktiviert ist, wird die Eigenschaft „ bakeMode “ der Lichtquelle auf „Light.BakeModeAll“ gesetzt.
PointLight {
bakeMode: root.lightBakeMode
y: 190
brightness: brightnessSlider.value
castsShadow: true
shadowFactor: 75
shadowBias: 20
}Das Setzen der Eigenschaft auf einen anderen Wert als „ Light.BakeModeDisabled “ erfüllt einen doppelten Zweck: Zum Zeitpunkt des Lightmap-Baking-Vorgangs gibt dies an, dass die Lichtquelle Teil der Lightmapped-Szene ist und zu dieser beiträgt. Zur Laufzeit, beim normalen Rendern der Szene, zeigt dies an, dass es sich um eine vollständig oder teilweise gebackene Lichtquelle handelt, was dazu führt, dass bestimmte Echtzeitberechnungen in Materialien für Lightmap-Modelle deaktiviert werden. Aus diesem Grund schaltet das Kontrollkästchen sowohl die Eigenschaft „ both “ der „bakeMode“-Eigenschaft der Lichtquelle als auch die Eigenschaft „enabled“ der mit den Modellobjekten verbundenen „ BakedLightmap “ um.
Einrichten des Modells
Die Cornell-Box ist ein Modell mit 8 Submeshes. Diese sind im Typ „Box“ gekapselt, von dem eine Instanz in der Hauptszene instanziiert wird.
Box {
usedInBakedLighting: true
bakedLightmap: BakedLightmap {
enabled: root.lmEnabled
key: "box"
}
scale: Qt.vector3d(100, 100, 100)
}Dieses Modell ist sowohl Teil der Lightmap-Szene als auch verfügt über eine für es gebackene Lightmap. Ersteres wird durch die Eigenschaft „ usedInBakedLighting “ angegeben. Dies allein gewährleistet noch nicht, dass für unsere Box-Miniszene eine Lightmap gebacken wird, sondern lediglich, dass sie am Lightmapping teilnimmt (d. h., die Lichtstrahlen können bei der Berechnung der indirekten Beleuchtung vom Modell reflektiert werden).
Damit die Lightmap während des Baking-Prozesses vollständig generiert und anschließend gespeichert wird, wird zudem ein „ BakedLightmap “-Objekt festgelegt, bei dem „ enabled “ auf „ true “ gesetzt ist. „ key “ gibt eine eindeutige Kennung an.
Zur einfachen Bereitstellung kann die Anwendung die generierten Lightmaps (lightmaps.bin -Datei) über das Qt-Ressourcensystem in die ausführbare Datei einbinden. Beim erneuten „Baking“ der Lightmap muss die Anwendung erneut kompiliert werden, damit die geänderte Datei berücksichtigt wird. Der Speicherort der Lightmaps-Datei wird in „ Lightmapper “ über die Eigenschaft „ source “ festgelegt.
© 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.