画质档位
同一个项目要能在旗舰手机和六年前的手机上都跑起来。画质档位就是做这件事的办法:低、中、高三份配置,每份说明渲染器在 该档位下花多少。项目选一个(或交给设备选),而对档位来说太慢的游戏会自己把分辨率降下来。
设置 → 项目 → 渲染 → 设备画质 → 画质档位:
| 模式 | 含义 |
|---|---|
| 关闭 | 不做画质管理,项目按原样渲染(默认)。 |
| 低 / 中 / 高 | 所有设备都用该档位。 |
| 自动 | 档位由设备决定:第一条匹配的设备规则,否则看内存和核心数。 |
动态分辨率在 GPU 吃紧时降低场景分辨率,最低降到该档位的最小渲染比例,有余量时再升回来;UI 保持显示分辨率。低于屏幕大小绘制的场景会用一个被周围纹素夹取的 Catmull-Rom 重采样器拉伸回来,边缘比双线性拷贝更陡,又不会画出光晕;整数倍的拉伸则是精确拷贝。 目标帧率是它要维持的帧时间。
一个档位里有什么
Section titled “一个档位里有什么”画质档位设置 → 正在编辑的档位决定下面各行显示并修改哪个档位。它们按花在哪里分组:
| 分组 | 设置 |
|---|---|
| 渲染 | 渲染比例、最小渲染比例、MSAA |
| 阴影 | 图集尺寸、单元尺寸、级联数、距离 |
| 反射与粒子 | 平面反射的比例、最大尺寸和每秒更新次数,粒子上限 |
| 后处理 | 总开关,以及在这个档位运行的每个效果的勾选框 |
每个档位从引擎自己的值起步,只有你改过的才会保存到 project.esproject 的
features.rendering.quality.profiles.<档位> 下。引擎以后改进的默认值会传给从没碰过它的项目;改回该档位默认值的行也不再算差异。
去掉一些效果
Section titled “去掉一些效果”引擎有的每个后处理效果都在列表里,该档位运行的打勾。没勾选的效果在这个档位被跳过,不管相机的体积是否要求它——而且是整个跳过: 有多个 pass 的效果,比如环境光遮蔽或自动曝光,会被整体移除。清单里按类型保存被去掉的效果:
"quality": { "mode": "auto", "profiles": { "low": { "skipEffects": ["ssr", "taa", "depthOfField"] } } }默认情况下,低档去掉反射、时间性抗锯齿、景深和光束;中档去掉反射和景深;高档什么都不去掉。这些默认值依据每个效果每像素的工作量,
不是在弱设备上量出来的。编辑器的 fx-cost 检查能量出每个效果在当前机器上的开销,可以在决定某个档位跳过什么之前先看看你的机器上它们要多少。
模式为自动时显示。每行写一个档位和设备必须满足的条件:型号包含、GPU 包含、内存上限、核心上限,全部成立才算。 第一条匹配的规则决定档位。没有任何条件的规则会匹配所有设备,所以必须至少有一个条件。
同样的设置就是 QualityConfig——QualityController、parseQualityConfig、resolveQualityProfile 和 defaultQualityProfile
构建并读取它——运行中的档位是 Quality 资源。