使用环境纹理贴图¶
环境纹理贴图可用于将六个正方形的图像合成为一个纹理来表示环境反射。每个图像代表从立方体贴图对象的视点沿 x、y 和 z 轴六个方向之一的景象。
在 Kanzi Studio 中使用立方体贴图纹理之前,您首先必须为立方体贴图创建六个立方体面的纹理图像。您可以在创建要使用立方体贴图纹理的网格对象的工具中创建这六个纹理图像,并将图像导入到 Kanzi Studio。请参阅 导入图像。
确保环境纹理贴图的所有面使用相同大小和格式的图像。当环境纹理贴图中的图像大小和格式不匹配时,Kanzi 使用默认环境纹理贴图。
例如,对于环境纹理贴图的所有面,使用 256×256 像素的 8 位灰度图像。
当环境纹理贴图中图像的大小和格式不匹配时,Kanzi Studio 使用红色标记此类纹理。
从 dds 图像创建环境纹理贴图¶
要从 dds 图像创建立方体贴图纹理, 在 Assets 中单击 Import Assets 并导入包含立方体贴图纹理所有面图像的 dds 图像。
Kanzi Studio 导入 dds 图像,创建一个 Cubemap Texture,并将纹理的面设置为 dds 图像中的相应图像。
从 HDR 图像创建环境纹理贴图¶
要从 hdr 或 exr 图像创建立方体贴图纹理,可以:
在 Assets 中单击 Import Assets,选择图像,并在 Create textures for HDR images 对话框中选择要创建的纹理。
如果您已将图像导入到项目中,请在 Library > Resource Files > Images 按 Alt 并右键单击 图像,并选择要创建的纹理类型。
请参阅 使用环境纹理 和 使用基于图像的照明立方体贴图纹理。
创建环境纹理贴图¶
要创建环境纹理贴图:
在 Assets 中,点击 Import Assets 并导入您想用作立方体贴图纹理面的图像。请参阅 导入图像。
在 Library 中,按 Alt 并右键单击 Materials and Textures,并选择 Cubemap Texture。
当您创建一个立方体贴图纹理时,Kanzi Studio 将其标记为红色类型,因为该纹理尚未为立方体贴图的每个面分配纹理。
在 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 的质量下降。
(可选)
在 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。
请注意,某些纹理格式在高于 2.0 的 OpenGL ES 版本中可用。要设置 OpenGL ES 版本,在主菜单中选择 Project > Properties,并在 Properties 中设置 Target Graphics API 属性。
例如,将 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 级别取四个样本并在这些样本之间进行插值。
当您需要最好的质量,且平台足够强大,能够轻松渲染结果,则使用此组合。
此组合对性能的负面影响最大。
使用 ASTC 压缩立方体贴图纹理¶
您可以使用自适应可伸缩纹理压缩 (ASTC) 来压缩立方体贴图纹理,包括从 HDR 和 EXR 图像创建的立方体贴图纹理。ASTC 可以减少 GPU 内存占用和纹理带宽。您还可以调整 ASTC 块大小,以在图像质量和纹理大小之间取得平衡。
ASTC 支持以下编码格式:
LDR LINEAR:用于线性颜色空间中的 LDR 纹理。
LDR SRGB:用于 sRGB 颜色空间中的 LDR 纹理。
HDRa:用于包含 alpha 通道的 HDR 纹理。
HDRA:用于不包含 alpha 通道的 HDR 纹理。
对于 HDR 环境纹理,请根据源纹理是否包含 alpha 通道,使用 HDRa 或 HDRA。
ASTC 是一种有损压缩格式。根据纹理内容和压缩设置的不同,压缩可能会导致细节丢失、块状伪影或颜色渐变不连续。
要使用 ASTC 压缩立方体贴图纹理:
在 Library 中,选择要压缩的立方体贴图纹理 (Cubemap Texture)。
在 Properties 的 Cubemap Images 中,点击该立方体贴图纹理的共享图像属性图标。
该图标显示在 NegZ 图像 (NegZ Image) 旁边,用于控制立方体贴图全部六个面的共享图像属性。Kanzi Studio 会将您通过此图标配置的设置应用于全部六个面。
在图像属性中,将 Target Format 设置为 ASTC,并选择适合纹理内容的 ASTC 编码格式。
配置 ASTC 压缩设置。例如,使用 ASTC Block Size 在图像质量和纹理大小之间取得平衡。
有关 ASTC 压缩设置的信息,请参阅 压缩纹理。
将工程导出为 kzb 文件。
导出工程时,Kanzi Studio 会使用所配置的 ASTC 设置压缩立方体贴图纹理的全部六个图像。
备注
立方体贴图的六个面使用共享图像属性。您无法为单个立方体贴图面单独配置图像属性。
使用立方体贴图纹理¶
要使用环境纹理贴图:
使用立方体贴图纹理作为天空盒¶
要使用环境纹理贴图作为天空盒:
在 Library > Materials and Textures 中,按 Alt 并右键单击 Material Types,并选择 CubemapSkybox。
Kanzi Studio 在 Library > Materials and Textures 中创建了 CubemapSkybox 材质类型和 CubemapSkyboxMaterial,支持将立方体贴图纹理显示为天空盒。
在 Library 中,选择 CubemapSkyboxMaterial 材质。在 Properties 中,将 TextureCube 属性设置为您要用于渲染天空盒的立方体贴图纹理。
创建一个 Box 或 Sphere 节点,用于渲染天空盒。在 Properties 中,设置:
Mesh Material 到 CubemapSkyboxMaterial
节点的大小应足够大,以容纳您想要在其中显示的内容:
对于 Box,设置 Width、Height 和 Depth 属性。
对于 Sphere,设置 Radius 属性。
将 Generate Mesh Inside Out 设置为 enabled。
当启用此属性时,Kanzi 在网格内渲染立方体贴图纹理。
在您创建的节点内放置一个 Camera 节点。
当您旋转相机时,您可以在 Preview 中看到作为天空盒渲染的立方体贴图纹理。
Cubemap Texture 属性类型¶
有关立方体贴图纹理可用属性类型的列表,请参阅 立方体贴图纹理 和 纹理 (Texture)。