Unity 允许设置其尝试渲染的图形质量级别。一般来说,高质量是以帧率为代价的,因此最好不要在移动设备或旧硬件上以最高质量为目标,因为它容易对游戏运行产生不利影响。使用 Quality 设置(菜单:__Edit > Project Settings__,然后选择 Quality 类别)可在 Editor 中为所选设备选择质量级别。分为两个主要区域:Quality 矩阵出现在顶部;而在下方显示所选质量级别的设置。
Unity 允许为给定的质量选项组合指定名称,以便于参考。在矩阵的行中可以选择每个质量级别适用于哪些不同平台。矩阵底部的 Default 行本身不是质量级别,而是设置用于每个平台的默认质量级别(列中的绿色复选框表示当前为该平台选择的级别)。Unity 预先启用了六个质量级别,但您可以添加自己的级别。
要删除不需要的质量级别,请使用垃圾桶图标(最右侧的列)。
要选择质量级别来进行编辑,请在矩阵中单击其名称。该质量级别的定义显示在设置下方的面板中,您可以修改所需的任何设置:
要定义新的质量级别,请单击 Add Quality Level 按钮,然后在 Name 属性框中输入新质量级别的名称。
然后,可选择以下部分中的哪些质量选项需要更新或设置:
属性 | 功能 |
---|---|
Pixel Light Count | 设置 Unity 使用前向渲染时的最大像素光照数。 |
Texture Quality | 选择是以最大分辨率还是以更小的分辨率显示纹理(较低的分辨率具有较低的处理开销)。选项包括 Full Res、Half Res、Quarter Res 和 Eighth Res。 |
Anisotropic Textures | 选择 Unity 是否以及如何使用各向异性纹理。选项包括 Disabled、Per Texture 和 Forced On_(即始终启用)。 |
|AntiAliasing|选择 Unity 使用的抗锯齿级别。选项包括 Disabled、2x Multi Sampling、4x Multi Sampling 和 8x Multi Sampling。|
|Soft Particles|启用此选项可对粒子使用软混合。请参阅软粒子以了解更多信息。|
|Realtime Reflection Probes|启用此选项可在游戏过程中更新反射探针。|
|Billboards Face Camera Position|启用此选项可在渲染时强制公告牌面向摄像机而不是摄像机平面。这种情况下会产生更好、更逼真的图像,但渲染成本更高。|
|Resolution Scaling Fixed DPI Factor|将设备的屏幕分辨率降低到原始分辨率以下。有关更多详细信息,请参阅 Android Player 设置和 iOS Player 设置。|
| Texture Streaming | 启用此复选框可使用纹理串流 (Texture Streaming)。如果不打算使用纹理串流,请禁用此功能以避免 CPU 内存开销。 | | Add All Cameras| 启用此复选框可使 Unity 为项目中的所有激活摄像机计算纹理串流。默认情况下会启用此选项。这是将现有项目迁移到纹理串流的最快方法。如果要排除特定的摄像机,请将 Streaming Controller 组件添加到该摄像机,然后将其禁用。 如果禁用此属性,Unity 仅计算包含 Streaming Controller 组件的游戏对象的纹理串流。这可用于更精细地控制纹理串流。请参阅有关纹理串流 API:控制用于纹理串流的摄像机的文档以了解更多详细信息。 | | Memory Budget| 设置要分配给所有已加载纹理的内存总量(以 MB 为单位)。当容量已满时,Unity 会丢弃不使用的 Mipmap,以便为需要使用的 Mipmap 腾出空间。默认内存预算为 512MB。 串流纹理会选择尽可能低级别的 Mipmap,以尽量满足内存预算。Unity 总是以最大分辨率加载非串流纹理(即使超出预算)。 Memory Budget 包括非串流纹理。例如,如果预算为 100MB 并且有 90MB 的非串流纹理,则纹理串流系统会尝试在剩余的 10MB 中容纳所有串流纹理。如果不能容纳,则以较低的分辨率加载 Mipmap。 Unity 认为 Max Level Reduction 的优先级高于 Memory Budget。纹理串流系统丢弃的 Mipmap 数量绝不会超过 Max Level Reduction__,即使丢弃的数量不足会导致内存超过纹理串流 Memory Budget_ 的情况下也是如此。 |
Renderers Per Frame | 此属性可以控制主线程和关联作业的 CPU 处理开销。默认值为 512(即每帧处理 512 个网格渲染器)。较低的值会缩短处理时间,但会增加 Unity 加载 Mipmap 的延迟时间。 |
Max Level Reduction | 设置在纹理串流系统达到 Memory Budget 限制的情况下可以丢弃的最大 Mipmap 数量。默认情况下,此设置为 2(表示系统丢弃的 Mipmap 数量不超过 2 个)。 纹理串流系统丢弃的 Mipmap 数量绝不会超过此值,即使丢弃的数量不足会导致内存超过纹理串流 Memory Budget 的情况下也是如此。 此值也是纹理串流系统最初在启动时加载的 Mipmap 级别。例如,当此设置为 2 时,Unity 会在第一次加载时跳过两个最高的 Mipmap。 |
Max IO Requests | 设置来自纹理串流系统并且在任何时刻都处于活动状态的纹理文件输入/输出 (IO) 请求的最大数量。默认情况下,该值设置为 1024。此默认值设置得足够大,可以防止由于异步上传 (Async Upload) 管线或文件系统本身而导致已处于活动状态的 IO 数量超出 IO 上限。 如果场景纹理内容发生明显且快速的变化,系统可能会尝试加载大量纹理 Mipmap 而使文件 IO 无法应对此需求。降低此值可减少纹理串流系统生成的 IO 带宽。因此可以更快响应不断变化的 Mipmap 要求。 |
抗锯齿可改善多边形边缘的外观,使它们不会产生“锯齿现象”,而是在屏幕上获得平滑的显示效果。但是,它会导致显卡的性能成本升高并使用更多的视频内存(尽管没有 CPU 成本)。抗锯齿的程度决定了多边形边缘的平滑程度(以及消耗的视频内存量)。
但是,内置硬件抗锯齿功能不适用于延迟着色和 HDR 渲染。对于这些情况,需要使用抗锯齿图像效果。
软粒子在与其他场景几何体的交叉处附近淡出。这种视觉效果将大幅提升,但计算成本更高(更复杂的像素着色器),并且仅适用于支持深度纹理的平台。此外,必须使用延迟着色或旧版延迟光照渲染路径,或使摄像机从脚本渲染深度纹理。
属性: | 功能: | ||
---|---|---|---|
Shadowmask Mode | 使用阴影遮罩混合光照模式时选择阴影遮罩行为。应使用 Lighting 窗口(菜单:__Window__ > Rendering > Lighting Settings__)在场景中进行此设置。 | ||Distance Shadowmask__ | Unity 对于 Shadow Distance 范围内的值使用实时阴影,超过此距离则使用烘焙阴影。 | |
Shadowmask | 投射阴影的静态游戏对象总是投射烘焙阴影。 | ||
Shadows | 选择要使用的阴影类型。可用选项包括 Hard and Soft Shadows、Hard Shadows Only 和 Disable Shadows。 | ||
Shadow Resolution | 选择渲染阴影的分辨率。可用选项包括 Low Resolution、Medium Resolution、High Resolution 和 Very High Resolution。分辨率越高,处理开销越大。 | ||
Shadow Projection | 选择投射方向光的阴影时使用的方法。 | ||
Close Fit | 渲染更高分辨率的阴影,但如果摄像机移动,它们有时会略微抖动。 | ||
Stable Fit | 渲染较低分辨率的阴影,但它们不会因摄像机移动而抖动。 | ||
Shadow Distance | 输入可以看到阴影的相对于摄像机的最大距离。Unity 不会渲染超出此距离的阴影。 | ||
Shadow Near Plane Offset | 输入阴影近平面偏移(用于解决大三角形由于阴影平坠而扭曲的问题)。 | ||
Shadow Cascades | 选择要使用的阴影级联数量。可用选项包括 No Cascades、Two Cascades 或 Four Cascades。级联数量越高,提供的质量越高,但代价是处理开销增大(有关更多详细信息,请参阅阴影级联 (Shadow Cascades))。 | ||
Cascade splits | 通过向左或向右移动每个级联之间的垂直线来调整级联阴影分割。 根据 Shadow Cascades 设置的值,可以看到两种或四种不同的颜色。如果 Shadow Cascades 设置为 _No Cascades_,则会隐藏整个控件。 |
属性 | 功能 |
---|---|
Blend Weights | 选择在动画期间可以影响给定顶点的骨骼数量。可用选项包括 1 Bone、2 Bones、4 Bones 和 Unlimited。 |
V Sync Count | 选择将渲染与垂直空白同步还是根本不同步。Unity 可将渲染与显示设备的刷新率同步来避免撕裂瑕疵。可用选项包括 Every V Blank、Every Second V Blank 和 Don’t Sync。 |
Lod Bias | 设置细节级别 (LOD) 偏差。 根据对象在屏幕上的大小选择 LOD 级别。当大小在两个 LOD 级别之间时,可以偏向于两个可用模型中细节级别更低或更高者。此属性设置为 0 到 +无穷大之间的值。设置为 0 到 1 之间时,表示倾向于更少细节。超过 1 的设置表示倾向于更多细节。例如,将 LOD Bias 设置为 2 并使其在 50% 距离处变化,LOD 实际上仅基于 25% 变化。 |
Maximum LOD Level | 设置游戏使用的最高 LOD。请参阅最大 LOD 级别以了解更多信息。 |
Particle Raycast Budget | 设置用于模拟粒子系统碰撞的最大射线投射数(质量设置为 Medium 或 _Low_)。请参阅粒子系统碰撞模块。 |
Async Upload Time Slice | 设置 Unity 将缓冲的纹理和网格数据上传到 GPU 时花费的 CPU 时间量(以毫秒/帧为单位)。请参阅 LoadingTextureandMeshData。 |
Async Upload Buffer Size | 设置 Unity 用于将纹理和网格数据串流到 GPU 的异步上传缓冲区大小(以 MB 为单位)。请参阅 LoadingTextureandMeshData。 |
Unity 在构建中不会使用 LOD 低于 MaximumLOD 级别的模型,而是将其忽略(这样可以节省存储和内存空间)。Unity 使用与目标平台 Quality 设置相关联的所有 MaximumLOD 值中的最小 LOD 值。如果包含 LOD 级别,则该 LODGroup 中的模型将包含在构建中,并始终在运行时为该 LODGroup 加载,无论使用何种 Quality 设置均是如此。例如,如果在任何 Quality 设置中使用 LOD 级别 0,则所有 LOD 级别都会包含在构建中,并且所有引用的模型都会在运行时加载。
显示设备上的图片不会持续更新,而是定期更新,很大程度上就像 Unity 中的帧更新一样。但是,Unity 的更新不一定与显示器的更新同步,因此 Unity 有可能在显示器仍在渲染前一帧时发出新的帧。这会导致在屏幕上发生帧变化的位置处产生称为“撕裂”的视觉瑕疵。
可以使 Unity 仅在显示设备未更新的时间段(即所谓的“垂直空白”)切换帧。Quality 设置中的 V Sync Count 选项将帧开关与设备的垂直空白同步,还可以选择与每隔一个垂直空白同步。如果游戏需要多个设备更新来完成帧的渲染,后者可能会很有用。
2017–09–18 页面已修订
在 2017.1 版中添加了 Shadowmask Mode NewIn20171