使用环境纹理贴图

环境纹理贴图可用于将六个正方形的图像合成为一个纹理来表示环境反射。每个图像代表从立方体贴图对象的视点沿 x、y 和 z 轴六个方向之一的景象。

在 Kanzi Studio 中使用立方体贴图纹理之前,您首先必须为立方体贴图创建六个立方体面的纹理图像。您可以在创建要使用立方体贴图纹理的网格对象的工具中创建这六个纹理图像,并将图像导入到 Kanzi Studio。请参阅 导入图像。

确保环境纹理贴图的所有面使用相同大小和格式的图像。当环境纹理贴图中的图像大小和格式不匹配时,Kanzi 使用默认环境纹理贴图。

例如,对于环境纹理贴图的所有面,使用 256×256 像素的 8 位灰度图像。

当环境纹理贴图中图像的大小和格式不匹配时,Kanzi Studio 使用红色标记此类纹理。

../../_images/cubemap-texture-faces-not-same-size.png

从 dds 图像创建环境纹理贴图

要从 dds 图像创建立方体贴图纹理, 在 Assets 中单击 Import Assets 并导入包含立方体贴图纹理所有面图像的 dds 图像。

Kanzi Studio 导入 dds 图像,创建一个 Cubemap Texture,并将纹理的面设置为 dds 图像中的相应图像。

从 HDR 图像创建环境纹理贴图

要从 hdr 或 exr 图像创建立方体贴图纹理,可以:

  • 在 Assets 中单击 Import Assets,选择图像,并在 Create textures for HDR images 对话框中选择要创建的纹理。

    ../../_images/create-textures-for-hdr-images.png
  • 如果您已将图像导入到项目中,请在 Library > Resource Files > Images 按 Alt 并右键单击 图像,并选择要创建的纹理类型。

    ../../_images/create-environment-cubemap-texture-context-menu.png

请参阅 使用环境纹理 和 使用基于图像的照明立方体贴图纹理。

创建环境纹理贴图

要创建环境纹理贴图:

  1. 在 Assets 中,点击 Import Assets 并导入您想用作立方体贴图纹理面的图像。请参阅 导入图像。

    ../../_images/assets-import-assets.png
  2. 在 Library 中,按 Alt 并右键单击 Materials and Textures,并选择 Cubemap Texture。

    当您创建一个立方体贴图纹理时,Kanzi Studio 将其标记为红色类型,因为该纹理尚未为立方体贴图的每个面分配纹理。

    ../../_images/create-a-cubemap-texture.png ../../_images/cube-map-texture-red.png
  3. 在 Properties 中,将 Cubemap Images 属性设置为您要用于立方体贴图纹理的图像:

    • NegZ Image 到立方体贴图的负 Z 面(背面)

    • PosZ Image 到立方体贴图的正 Z 面(前面)。

    • NegX Image 到立方体贴图的负 X 面(左面)

    • PosX Image 到立方体贴图的正X面(右面)

    • NegY Image 到立方体贴图的负 Y 面(底面)

    • PosY Image 到立方体贴图的正Y面(顶部面)

    避免从 JPEG 纹理创建 mipmap,因为 JPEG 图像格式会导致 mipmap 的质量下降。

    ../../_images/cube-map-texture-set-images.png
  4. (可选)

    在 Properties 中设置 Texture Settings 属性。

    使用 Texture Settings 属性来控制纹理过滤。首先,将 Mipmap Mode 属性设置为您要使用的 mipmap 模式。然后将 Minification Filter 和 Magnification Filter 属性设置为 Linear。请注意,使用 mipmaps 会增加内存使用。

    通常设置纹理过滤的最佳起点是设置:

    • Minification Filter 到 Linear

    • Magnification Filter 到 Linear

    • Mipmap Mode 设置为 Nearest。如果您确定纹理不会被缩小,请选择 Base,否则请先使用 Nearest。例如,Render Target Texture 的默认值为 Base。使用此设置时,纹理没有 mipmap 级别,并且始终对基础级别进行采样。请参阅 使用 mipmap。

    ../../_images/texture-settings-properties.png

    请注意,某些纹理格式在高于 2.0 的 OpenGL ES 版本中可用。要设置 OpenGL ES 版本,在主菜单中选择 Project > Properties,并在 Properties 中设置 Target Graphics API 属性。

    ../../_images/project-properties.png ../../_images/target-graphics-api-opengl-es-30.png

    例如,将 Target Graphics API 属性设置为 OpenGL ES 3.0,导入 .dds 格式的 HDR 和浮点图像,并设置纹理的颜色格式。请参阅 在 Kanzi 中使用 OpenGL ES 3.0+。

    Mipmap Mode

    Nearest 示例

    Linear 示例

    Base

    样本数:1

    使用纹理中最接近的像素。此组合等同于点采样。它返回所有组合中最粗糙的结果,并且在缩小时可能导致锯齿。

    放大纹理时使用此组合可以得到非常清晰的结果。

    样本数:4

    在纹理中四个最近的像素之间进行插值。

    此组合可用于放大渐变。然而,不要将其用于缩小。

    Nearest

    样本数:1

    有助于纹理缓存并有助于减少混叠。然而,当纹理用于平面表面时,它可能会产生明显的过渡。

    当您想要良好的性能,但目标平台无法提供更好的质量时,可以使用此组合。

    此组合通常是最快的。

    样本数:4

    从两个 mipmap 级别取两个样本并在这些样本之间进行插值。

    将此组合用作起点。

    此组合通常具有最高性价比。

    如果您确定不存在缩小,可以将 Mipmap Mode 设置为 Base。

    Linear

    样本数:2

    从两个 mipmap 级别取一个样本并在这些样本之间进行插值。

    需要特殊效果时使用此组合。例如,要实现边缘光效果。

    样本数:8

    从两个 mipmap 级别取四个样本并在这些样本之间进行插值。

    当您需要最好的质量,且平台足够强大,能够轻松渲染结果,则使用此组合。

    此组合对性能的负面影响最大。

使用立方体贴图纹理

要使用环境纹理贴图:

  1. 在 Library > Materials and Textures > Materials 中,选择支持立方体贴图纹理的材质。在 Properties 中,将 TextureCube 属性设置为您要使用的立方体贴图纹理。请参阅 创建环境纹理贴图 和 创建纹理材料。

    ../../_images/vertexphongcubematerial-properties.png ../../_images/texturecube-property-set.png
  2. 在 Node Tree 中,选择您要使用立方体贴图纹理的 Model、Box 或 Sphere 节点。在 Properties 中,将 Material 或 Mesh Material 属性设置为使用您的立方体贴图纹理的材质。

    ../../_images/material-set-to-phongcubematerial.png

使用立方体贴图纹理作为天空盒

要使用环境纹理贴图作为天空盒:

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

    Kanzi Studio 在 Library > Materials and Textures 中创建了 CubemapSkybox 材质类型和 CubemapSkyboxMaterial,支持将立方体贴图纹理显示为天空盒。

    ../../_images/library-create-cubemap-skybox-material-type.png
  2. 在 Library 中,选择 CubemapSkyboxMaterial 材质。在 Properties 中,将 TextureCube 属性设置为您要用于渲染天空盒的立方体贴图纹理。

    ../../_images/library-cubemap-skybox-material.png ../../_images/properties-cubemap-skybox-my-cubemap-texture.png
  3. 创建一个 Box 或 Sphere 节点,用于渲染天空盒。在 Properties 中,设置:

    • Mesh Material 到 CubemapSkyboxMaterial

    • 节点的大小应足够大,以容纳您想要在其中显示的内容:

      • 对于 Box,设置 Width、Height 和 Depth 属性。

      • 对于 Sphere,设置 Radius 属性。

    • 将 Generate Mesh Inside Out 设置为 enabled。

      当启用此属性时,Kanzi 在网格内渲染立方体贴图纹理。

    ../../_images/node-tree-box.png ../../_images/properties-box-skybox.png
  4. 在您创建的节点内放置一个 Camera 节点。

当您旋转相机时,您可以在 Preview 中看到作为天空盒渲染的立方体贴图纹理。

../../_images/preview-hall-cubemap-texture.gif

Cubemap Texture 属性类型

有关立方体贴图纹理可用属性类型的列表,请参阅 立方体贴图纹理 和 纹理 (Texture)。

另请参阅

使用单个纹理

使用环境纹理

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

使用渲染目标纹理

创建纹理材料

创建立方体贴图反射

图像 (Images)

材质类型和材质

导入