使用基于图像的照明立方体贴图纹理

使用基于图像的照明通过将其周围环境视为光源来照亮 3D 节点。

基于图像的照明立方体贴图纹理模拟来自环境的照明:

  • 辐照度立方体贴图纹理 表示环境光照的间接漫反射部分。

    完全漫反射的表面是粗糙的,并以随机方向反射入射光线。例如,橡胶材料具有漫反射表面。

  • 镜面反射立方体贴图纹理 表示环境光照的反射部分。

    完全反射的表面是光滑的,并以与入射光线相同的角度反射入射光线,就像镜子一样。例如,金属材料具有反射表面。

每个基于图像的照明立方体贴图纹理将六个正方形的图像合成为一个纹理,以表示环境照明。

使用环境立方体贴图纹理来渲染 3D 内容周围的环境。请参阅 使用环境纹理。

当您要在 3D 节点的表面上创建环境的动态反射时,请使用 Cubemap 渲染通道。请参阅 创建立方体贴图反射。

创建基于图像的照明立方体贴图纹理

要创建基于图像的照明立方体贴图纹理:

  1. 在 Assets 中,点击 Import Assets 并选择您要为其创建基于图像的照明立方体贴图纹理的 HDR 或 EXR 图像。

    ../../_images/assets-import-assets.png

    小技巧

    要为已导入到您的 Kanzi Studio 项目的 hdr 或 exr 图像创建基于图像的照明立方贴图纹理,请在 Library > Resource Files > Images 中 按 Alt 并右键单击 该图像并选择 Image-Based Lighting Cubemap Textures。

    ../../_images/create-ibl-textures-context-menu.png
  2. 在 Create Textures for HDR Images 对话框中:

    1. 选择 Image-Based Lighting Cubemap Textures。

      ../../_images/create-ibl-textures-dialog.png

      小技巧

      要为图像创建环境立方体贴图纹理,请选择 Environment Cubemap Texture。请参阅 使用环境纹理。

    2. (可选) 要手动设置立方体贴图面的大小,请禁用 Automatic 设置并设置 Cubemap Face Resolution。

      例如,要创建每个立方体贴图面的大小为 512 x 512 像素的立方体贴图纹理,请将 Cubemap Face Resolution 设置为 512。

      默认情况下,Kanzi Studio 创建的立方体贴图纹理中每个立方体贴图面的宽度和高度为 256 像素;如果您导入的图像宽度小于 1024 像素,则为该宽度的四分之一。

      提高立方体贴图面分辨率会使立方体贴图计算时间呈平方级增长。

    3. (可选) 将 Number of Samples 设置为您希望 Kanzi Studio 从图像中采样并用于生成立方体贴图的像素数。

      样本越多,立方体贴图对环境光照的近似就越准确。增加样本数量会线性增加立方体贴图的计算时间。默认情况下,1024个样本的值预计足以应对大多数情况。然而,对于包含非常高频变化的图像,例如明亮的太阳,使用更高的样本数可以减少生成的立方体贴图面图像中的噪声量。

    4. 单击 Create。

    Kanzi Studio 导入图像并在 Library > Materials and Textures > Textures 中为该图像创建基于图像的照明立方体贴图纹理:

    • <image_name>_irradiance 表示环境光照的间接漫反射部分。

    • <image_name>_specular 代表反射光照。

    ../../_images/ibl-textures-in-library.png ../../_images/my_hdr_image_irradiance.png ../../_images/my_hdr_image_specular.png

    小技巧

    您可以限制从 HDR 图像创建的纹理中强光区域的亮度。

    要设置从 HDR 图像创建的立方体贴图纹理中的最大亮度级别:

    1. 在 Library > Resource Files > Images 中,选择该图像。在 Properties 中,添加 Clamp Pixels 属性,并将其设置为您要用来限制从该图像创建的立方体贴图面图像中颜色值的值。

    2. 在 Library > Resource Files > Images 中,按 Alt 并右键单击 图像,并选择要创建的立方体贴图纹理。

    ../../_images/clamp-pixels.png ../../_images/recreate-env-cubemap-textures.png

备注

Kanzi Studio 将生成的立方体贴图面和粗糙度 mipmap 存储在缓存目录中,您通常会将这些目录排除在版本控制之外。当这些内容缺失时,例如在全新克隆之后,或在导入不包含这些内容的资源包之后,Kanzi Studio 会从源图像重新生成它们。因此,请将源 hdr 或 exr 图像保留在工程中并纳入版本控制。请参阅 使用版本控制系统与 Kanzi。。

当 Kanzi Studio 无法重新生成内容时,它会在 Log 窗口中报告原因,并在该内容仍然缺失的情况下打开工程。例如,当源图像已不在工程中时,就会出现这种情况。处于该状态的立方体贴图纹理会渲染不正确。请恢复源图像,或从源图像重新创建该纹理。

在 Kanzi 4.1.0 之前创建的基于图像的光照立方体贴图纹理不存储 Kanzi Studio 重新生成它们所需的信息。请重新创建这些纹理,以便能正确重新生成它们。

使用基于图像的照明立方体贴图纹理

要使用基于图像的照明立方体贴图纹理:

  1. 在 Library > Materials and Textures 中,按 Alt 并右键单击 Material Types,并选择 SmartPhysicallyBased。

    Kanzi Studio 会创建 SmartPhysicallyBased 材质类型和 SmartPhysicallyBasedMaterial 材质。

    此材质支持使用 Kanzi 默认基于物理的着色器的功能。

    ../../_images/library-smart-physically-based-material.png
  2. 创建您要通过将其周围环境视为光源来照亮的 3D 内容,并将该内容设置为使用 SmartPhysicallyBasedMaterial 材质。

    例如:在 Node Tree 中,创建一个 Sphere 节点。在 Properties 中,将 Mesh Material 属性设置为 SmartPhysicallyBasedMaterial。

    ../../_images/sphere-in-node-tree.png ../../_images/sphere-properties-mesh-material.png
  3. 在 Library > Materials and Textures > Materials 中,选择 SmartPhysicallyBasedMaterial。在 Properties 中,添加 Configuration > Enable Image Based Lighting 属性并设置:

    • 将 Environment Ambient Texture 到您要用于漫反射照明的辐照度立方体贴图纹理。

    • 将 Environment Reflection Texture 到您要用于反射光照的镜面反射立方体贴图纹理。

    请参阅 创建基于图像的照明立方体贴图纹理。

    ../../_images/properties-add-enable-image-based-lighting.png ../../_images/physically-based-material-ibl-textures.png
  4. (可选) 在 Properties 中,添加并设置:

    • Material > Environment Ambient Factor,用于设置辐照度立方体贴图纹理的强度。

    • Material > Environment Reflection Factor,用于设置镜面反射立方体贴图纹理的强度。

  5. 使用材质属性来控制材质表面反射的强度。

    例如,对于金属粗糙度材料:

    • Roughness Factor 设置材料的粗糙度。

      当您增加材料的粗糙度时,材料表面的反射会变得更加模糊。

    • Metallic Factor 设置材料的金属度。

      当您增加材料的金属度时:

      • 材料表面的漫反射变弱。

      • 材料表面的镜面反射变得更强。

    ../../_images/physically-based-material-ibl-properties.png ../../_images/ibl-in-preview-without-env.png

使用环境立方体贴图纹理渲染 3D 内容周围的环境时,您可以看到基于图像的光照纹理如何模拟来自环境的光照。请参阅 使用环境立方体贴图纹理。

../../_images/ibl-in-preview.png

另请参阅

使用单个纹理

使用环境纹理贴图

使用环境纹理

创建纹理材料

图像 (Images)

材质类型和材质

导入

创建立方体贴图反射