Lightmapper QML Type
指定场景的光贴图烘焙设置。更多
Import Statement: | import QtQuick3D |
Since: | Qt 6.4 |
Inherits: |
属性
- adaptiveBiasEnabled : bool
- bias : real
- bounces : int
- denoiseSigma : real
(since 6.10)
- indirectLightEnabled : bool
- indirectLightFactor : real
- indirectLightWorkgroupSize : int
- opacityThreshold : real
- samples : int
- source : url
(since 6.10)
- texelsPerUnit : real
(since 6.10)
详细说明
用于烘焙直接和间接光照。这些设置中的大部分在其他时候都不适用,例如使用已生成的光照贴图渲染场景时。但source 是个例外,尽管它在开发时有一个合理的默认值。
烘焙成功后,将按照source 指定的值生成一个文件。这个二进制文件包含了烘焙的结果,包括每个模型的光贴图和带有光贴图兼容 UV 的网格文件。单个模型数据可通过BakedLightmap::key 访问。
生成的光贴图文件中包含的所有数据都与彼此和当前场景状态紧密相关。这意味着对原始网格文件、Lightmapper 设置或其他场景变化的任何修改都需要执行新的烘焙才能看到更新后的结果。
注: 截至 Qt 6.4,光贴图烘焙还处于早期技术预览状态。在未来的版本中,功能、质量和 API 很可能会发生变化。
Lightmapper 对象与
- Model::bakedLightmap 和相关的BakedLightmap 、
- Model::usedInBakedLighting 和Model::texelsPerUnit 、
- Light::bakeMode,
- 引擎内置的光照贴图制作工具。
另请参阅 光照贴图和全局照明以及Qt Quick 3D - 烤制光照贴图示例。
属性文档
adaptiveBiasEnabled : bool |
启用基于表面法线的额外动态偏置。
默认值为 true。
bias : real |
烘焙过程中使用的光投射偏置。调整该值以防出现伪影,例如减少不希望出现的阴影模式。在很多情况下,默认值已经足够。
默认值为 0.005。
bounces : int |
每个样本间接光反弹的最大次数。该值至少应为 1,否则没有必要计算间接光。
默认值为 3。
该值会严重影响光贴图烘焙过程中生成的光贴图的性能和质量。
denoiseSigma : real |
该属性定义了基于非本地均值的去噪器的 sigma 值。这意味着该值越高,模糊效果就越强。请尽量降低该值,以避免在去除噪点的同时丢失视觉特征。
此属性在 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 |
运行时加载光贴图文件的网址,以及烘焙成功后的输出文件路径。
烘焙时,输出路径将从 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 |
该属性定义了单位到色标的比例,这意味着1x1
quad(texelsPerUnit 为32
)将在光贴图中占用大约32x32
色标。
该属性在 Qt 6.10 中引入。
另请参阅 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.