指示 Unity 在给定质量级别下不上传每个纹理的最高分辨率 mip 的数量。要设置更具体的 mipmap 限制,您可以将纹理标记为忽略 mipmap 限制或将其分配给 mipmap 限制组。
将此值设置为 1 以使用每个纹理的第二个 mip,因此所有纹理都为一半大小。将此值设置为 2 以使用每个纹理的第三个 mip,因此所有纹理都为四分之一大小。随着值的增加,这种趋势保持一致。默认值为零。
您可以使用此限制来减少在低端设备上运行内容时的视频内存需求。
在运行时,如果您将 globalTextureMipmapLimit 设置为已剥离的 mipmap 值,Unity 会将该值设置为未剥离的最近 mipmap 值。有关 mipmap 剥离的更多信息,请参阅 PlayerSettings.mipStripping.
全局纹理 mipmap 限制仅适用于 2D 纹理和 2D 纹理数组。它无法调整其他纹理类型,例如立方体贴图。此设置对非 mipmapped 纹理没有影响。此外,请注意,虚拟纹理系统也不考虑 mipmap 限制。对于混合使用纹理(请参阅 Texture2D.vtOnly),mipmap 限制、流式传输和剥离仅对未使用虚拟纹理渲染的实例有效。与通过设置 mipmap 限制(或使用纹理流式传输)可以管理常规纹理的 GPU 负载类似,可以通过更新 GPU 缓存大小来管理 VT 系统的 GPU 负载(请参阅 GPUCacheSetting)。
全局纹理 mipmap 限制不影响以下类型的 2D 纹理:* 内置编辑器资源,例如 UI 图标和元素 * 运行时创建的不可读纹理,例如在调用 Apply 并将 makeNoLongerReadable 设置为 true 后 * 非持久纹理,当 EditorUtility.IsPersistent 返回 false 时 * 渲染目标 * 地形蒙版
对纹理对象的宽度和高度的查询将返回原始的、不受限制的大小。如果您对受全局限制的纹理执行特殊采样或处理,并且您使用 globalTextureMipmapLimit > 1,则您可能需要考虑这一点。
当 globalTextureMipmapLimit 发生变化时,Unity 会同步重新上传所有受全局纹理 mipmap 限制影响的已加载纹理。
同时,Unity 会请求对使用纹理流式传输系统并受全局纹理 mipmap 限制影响的纹理进行异步重新上传。
请注意:该系统可能需要几个帧才能将新的 globalTextureMipmapLimit 值应用于在更改之前已启动上传请求的纹理。
using UnityEngine;
public class Example : MonoBehaviour { void Start() { // Use half-size textures. QualitySettings.globalTextureMipmapLimit = 1; } }
其他资源:TextureMipmapLimitGroups.