过滤纹理

通过应用纹理过滤,您可以在 3D 场景中提高图像质量,同时性能略有下降。基线点采样需要将整个纹理数据存储到内存中,而使用 mipmapping(或任何过滤选项)时,当纹理区域较小时,您可以使用较小尺寸的纹理版本。请参阅 使用 mipmap。

选择最能够反映出应用程序特定要求的纹理过滤选项。

使用纹理过滤

要使用纹理过滤:

  1. 在 Library > Materials and Textures > Textures 中选择您要应用过滤的纹理。

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

  2. 在 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 级别取四个样本并在这些样本之间进行插值。

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

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

另请参阅

调整数据大小

并行加载资源

使用 mipmap

压缩纹理

使用图块图集

排除应用程序性能问题