Qt Quick 3D - Exemple de lightmap cuite
Illustre l'utilisation de lightmaps précalculées dans une scène 3D.

Cet exemple illustre l'utilisation d'un éclairage entièrement précalculé dans une scène. La scène rendue paraît ainsi beaucoup plus réaliste, principalement grâce à l'ajout d'un éclairage indirect. Une case à cocher permet également de désactiver le lightmapping, ce qui permet de comparer les résultats de rendu entre l'approche en temps réel et celle avec éclairage entièrement précalculé.
Configuration de la lumière
La scène comporte une seule source lumineuse ponctuelle. Lorsque la case à cocher est activée, la propriété ` bakeMode ` de la source lumineuse est définie sur `Light.BakeModeAll`.
PointLight {
bakeMode: root.lightBakeMode
y: 190
brightness: brightnessSlider.value
castsShadow: true
shadowFactor: 75
shadowBias: 20
}Définir la propriété sur une valeur autre que Light.BakeModeDisabled a un double objectif : au moment de la cuisson de la carte d’éclairage, cela indique que la lumière fait partie de la scène avec carte d’éclairage et y contribue. Au moment de l’exécution, lors du rendu normal de la scène, cela indique que la lumière est entièrement ou partiellement cuite, ce qui entraîne la désactivation de certains calculs en temps réel dans les matériaux des modèles avec carte d’éclairage. C’est pourquoi la case à cocher active ou désactive la propriété ` both ` de la propriété `bakeMode` de la lumière, ainsi que la propriété `enabled` de l’ BakedLightmap e associée aux objets `Model`.
Configuration du modèle
La boîte de Cornell est un modèle comportant 8 sous-maillages. Elle est encapsulée sous la forme du type « Box », dont une instance est créée dans la scène principale.
Box {
usedInBakedLighting: true
bakedLightmap: BakedLightmap {
enabled: root.lmEnabled
key: "box"
}
scale: Qt.vector3d(100, 100, 100)
}Ce modèle participe à la scène avec lightmap et dispose d’une lightmap cuite qui lui est dédiée. La première condition est indiquée par la propriété ` usedInBakedLighting `. Cela ne garantit pas à lui seul que notre mini-scène « boîte » dispose d’une carte d’éclairage cuite, mais seulement qu’elle participe au lightmapping (c’est-à-dire que les rayons lumineux peuvent rebondir sur le modèle lors du calcul de l’éclairage indirect).
Pour que la carte d’éclairage soit entièrement générée puis stockée lors du processus de cuisson, un objet ` BakedLightmap ` dont la propriété ` enabled ` est définie sur ` true ` est également configuré. La propriété ` key ` spécifie un identifiant unique.
Pour faciliter le déploiement, l’application peut intégrer les lightmaps générées (fichier `lightmaps.bin `) dans l’exécutable via le système de ressources Qt. Lors de la nouvelle cuisson de la lightmap, l’application doit être recompilée afin que le fichier modifié soit pris en compte. L’emplacement source du fichier de lightmaps est défini dans ` Lightmapper ` via la propriété ` source `.
© 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.