在此页面上

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 Asset Import Tool(Balsam 资产导入工具)转换为.ktx 文件。

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

BASEPREFIX 允许您更改 Qt 资源系统中.ktx 文件的公共相对路径,而OUTPUTS 允许您控制.ktx 文件的完整路径,包括文件名。如果使用OUTPUTS ,路径数必须与FILES 的路径数一致。

示例

下面的示例在构建时自动生成 lightprobe 映射,并将其包含在:/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.