本页内容

Lightmapper QML Type

指定场景的光照贴图烘焙设置。更多...

Import Statement: import QtQuick3D
Since: Qt 6.4
Inherits:

QtObject

属性

详细说明

用于烘焙直接和间接光照时。在其他情况下(例如使用已生成的光照贴图渲染场景时),这些设置大多不适用。唯一例外的是source ,不过该选项在开发阶段有一个合理的默认值。

烘焙成功后,将根据source 指定的值生成一个文件。该二进制文件包含烘焙结果,包括每个模型的光照贴图以及带有与光照贴图兼容的UV坐标的网格文件。可通过BakedLightmap::key 访问各个模型的数据。

生成的光照贴图文件中所包含的数据彼此之间以及与当前场景状态都紧密耦合。这意味着,如果对原始网格文件、Lightmapper 设置或其他场景内容进行任何修改,都需要执行新的烘焙操作才能看到更新后的结果。

注意:截至 Qt 6.4版本 ,光照贴图烘焙尚处于早期技术预览阶段。未来版本中,其功能、质量和 API 可能会发生变化。

Lightmapper 对象需与以下组件配合使用:

另请参阅 《光照贴图与全局光照》、《Qt Quick 3D - 烘焙光照贴图示例》以及《Qt Quick 3D - SSGI 光照贴图示例》。

属性文档

adaptiveBiasEnabled : bool

启用基于表面法线的额外动态偏置。

默认值为 true。

bias : real

烘焙过程中使用的光线投射偏移量。若出现图像瑕疵,请调整该数值,例如为了减少不希望出现的阴影图案。在大多数情况下,默认值已足够。

默认值为 0.005。

bounces : int

每个样本的间接光反射次数上限。该值至少应为1,否则进行间接光计算就没有意义。

默认值为 3。

该值在光照贴图烘焙过程中,会对生成的光照贴图的性能和质量产生重大影响。

denoiseSigma : real [default: 8, since 6.10]

该属性定义了基于非局部均值的去噪器的西格玛值。这意味着该值越高,模糊效果就越强。建议将该值设置得尽可能低,以在去除噪声的同时避免丢失视觉特征。

该属性在 Qt 6.10 中首次引入。

indirectLightEnabled : bool

通常情况下无需更改此值。默认值为 true。将此属性设置为 false 将在光照贴图烘焙过程中禁用间接光计算。因此,生成的纹理贴图将仅包含直接光信息。在运行时,引擎会照常使用这些贴图,并假设它们同时包含直接光和间接光信息。

indirectLightFactor : real

间接光量的倍数。虽然数值为 1(即不影响间接光量的计算)能提供严格正确的渲染结果,但在使用光照贴图时,即使反弹次数较少,稍高的数值通常也能呈现更佳的视觉效果。

默认值为 1。

indirectLightWorkgroupSize : int

样本工作组的规模。系统将尝试并行执行这些工作组。(具体行为取决于CPU核心数以及QThreadPool 的配置)

默认值为 32。结合默认的样本数 256,这意味着每个模型将尝试并行运行 8 个工作组。

opacityThreshold : real

在通过光线追踪计算照明时,当不透明度(alpha)低于该阈值,对象在光线与网格的交点处将被忽略。当不透明度低于该阈值时,模型(子网格)将不会遮挡光源,因此也不会产生阴影。

默认值为 0.5。

注意:光照贴图生成器 会综合考虑material's opacity 和baseColor alpha ,并结合base color map's alpha 。在光照贴图烘焙过程中,其他半透明来源(如不透明度贴图或alpha阈值设置)将被忽略。

samples : int

每个光照贴图纹素的采样数。

默认值为 256。

该值在光照贴图烘焙过程中,对最终光照贴图的性能和质量都有显著影响。

source : url [default: file:lightmaps.bin, since 6.10]

运行时加载光照贴图文件的 URL 以及烘焙成功时的输出文件路径。

烘焙时,输出路径将根据该 URL 推导得出,且该 URL 必须解析为可写入的常规文件位置。默认值为file:lightmaps.bin ,这意味着文件将保存在当前工作目录中,且烘焙成功后最终结果会立即显示。

在输出文件所在的同一目录下,会生成一个名为.raw 的文件,其中包含在创建最终光照贴图文件之前使用的额外光照贴图数据。这样,只要.raw 文件存在,就可以仅进行去噪处理,而无需在每次运行之间重新烘焙整个场景。

若要将光照贴图作为 QRC 资源读取,需按常规方式将其嵌入,并在 URL 前添加:/ 或qrc:/ 前缀。以下示例始终尝试加载通过资源嵌入的光照贴图文件。首先将路径设置为可写位置并进行烘焙。然后将生成的文件复制到源目录中。 接着,在应用程序的 CMake 项目中,将该文件作为资源列在/lightmaps PREFIX 下,这样构建过程就能识别该文件并将其包含到可执行文件中。

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

该属性在 Qt 6.10 中引入。

texelsPerUnit : real [default: 1, since 6.10]

该属性定义了单位到纹理像素的缩放比例,这意味着一个1x1 的四边形,其textelsPerUnit值为32 ,在光照贴图中将占据大约32x32 个纹理像素。

该属性在 Qt 6.10 中引入。

另请参阅 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.