Qt Quick 3D - Ejemplo de Baked Lightmap
Demuestra el uso de baked lightmaps en una escena 3D.

Este ejemplo demuestra el uso de iluminación baked en una escena. Como resultado, la escena renderizada parece mucho más realista, principalmente debido a la iluminación indirecta añadida. Con la ayuda de una casilla de verificación también permite desactivar el lightmapping, lo que permite comparar los resultados de renderizado de los enfoques en tiempo real y totalmente baked.
Configuración de la luz
La escena tiene una única luz puntual. Cuando la casilla de verificación está marcada, el bakeMode de la luz se establece en Light.BakeModeAll.
PointLight { bakeMode: root.lightBakeMode y: 190 brightness: brightnessSlider.value castsShadow: true shadowFactor: 75 shadowBias: 20 }
Establecer la propiedad a un valor distinto de Light.BakeModeDisabled tiene un doble propósito: en el momento de bakear el lightmap indica que la luz es parte de la escena lightmapped, contribuyendo a ella. En tiempo de ejecución, al renderizar la escena normalmente, indica que la luz es una luz total o parcialmente baked, lo que lleva a deshabilitar ciertos cálculos en tiempo real en materiales para modelos lightmapped. Por ello, el checkbox both activa la propiedad bakeMode de la luz y también la propiedad enabled de BakedLightmap asociada a los objetos Model.
Configuración del modelo
La caja Cornell es un Modelo con 8 submallas. Este se encapsula como el tipo Box, una instancia del cual se instantiza en la escena principal.
Box { usedInBakedLighting: true bakedLightmap: BakedLightmap { enabled: root.lmEnabled key: "box" } scale: Qt.vector3d(100, 100, 100) }
Este modelo participa en la escena lightmapped y tiene un lightmap creado para él. Lo primero se indica mediante la propiedad usedInBakedLighting. Esto por sí solo no asegura que nuestra miniescena de caja obtenga un mapa de luz, sólo que participa en el mapeado de luz (es decir, los rayos de luz pueden rebotar en el modelo cuando se calcula la iluminación indirecta).
Para obtener el lightmap completamente generado y luego almacenado durante el proceso de baking, se establece también un objeto BakedLightmap con enabled ajustado a true. El key especifica un identificador único.
Para un despliegue sencillo, la aplicación puede empaquetar los lightmaps generados (archivolightmaps.bin ) en el ejecutable a través del sistema de recursos Qt. Cuando se vuelve a generar el lightmap, la aplicación necesita ser construida de nuevo para que el archivo modificado sea recogido. La fuente para el archivo lightmaps se establece en Lightmapper a través de la propiedad 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.