本页内容

qt_add_lightprobe_images

将 HDRI 贴图文件烘焙为 KTX 文件,并将其作为 Qt 资源添加。

注意:此 命令处于技术预览阶段,未来版本中可能会有变动。

该命令定义在Qt6 包的Quick3D 组件中,可按如下方式加载:

find_package(Qt6 REQUIRED COMPONENTS Quick3D)

该命令于 Qt 6.2 版本中引入。

语法

qt_add_lightprobe_images(target resource_name
                    [PREFIX prefix]
                    [BASE base]
                    FILES file1.hdr, file2.hdr ..
                    [OUTPUTS file1.ktx, file2.ktx ..]
)

如果禁用了无版本号的命令,请改用 `qt6_add_lightprobe_images() `。它支持与本命令相同的参数集。

描述

使用该命令将FILES 下列出的.hdr 文件烘焙为.ktx 文件。这些文件将被包含在二进制文件或库target 中。

FILES 应列出本地 HDRI 贴图文件的路径。每个文件必须以.hdr 或.exr 为后缀。这些文件将在构建时使用Balsam 资源导入工具转换为.ktx 文件。

默认情况下,.ktx 文件将以相同的基名和相对路径出现在目标二进制文件的嵌入式Qt资源中。使用BASE 可在运行时从相对路径中移除一个公共目录。也就是说,如果FILES 下的所有文件路径都指向公共目录maps/ ,那么你可以使用BASE maps/ 在Qt资源系统中隐藏该目录。 同理,您可以使用PREFIX 在 Qt XML 资源系统中添加一个公共前缀目录。

虽然BASE 和PREFIX 允许您更改 Qt 资源系统中.ktx 文件的通用相对路径,但OUTPUTS 允许您控制.ktx 文件的完整路径,包括文件名。如果您使用OUTPUTS ,则路径的数量必须与指向FILES 的路径数量相匹配。

示例

以下代码会在构建时自动生成光探针贴图,并将其包含在可执行文件中,路径为:/maps/OpenfootageNET_garage-1024.ktx :

qt_add_lightprobe_images(principledmaterial "ibl_assets"
    PREFIX
         "/"
    FILES
        "maps/OpenfootageNET_garage-1024.hdr"
)

注意事项

当添加多个资源时,resource_name 必须在链接到最终目标的所有资源中保持唯一。

这尤其会影响静态构建。在这种情况下,不同静态库中相同的资源名称会在调用该资源的目标中发生冲突。

另请参阅 “预生成 IBL 立方体贴图”。

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