Blog · blog

如何在不降低帧数的情况下运行着色器

着色器始终会消耗帧数,但 Iris 加上 Sodium 及其一些设置,能回收大部分帧数。以下是着色器已安装后,应该首先优化的地方.

TRtrolPublished 1 min read

着色器为何一开始就会消耗如此多的帧数?

着色器包会替换 Minecraft'这种光照模型会针对每个像素、每一帧计算阴影、反射和光线弹射,相比之下,基础光照的成本几乎可以忽略不计。这些成本并非错误,而是产生视觉效果的实际工作量。因此,修复方案永远不是“让着色器免费”,而是“将帧预算花在值得的部分上,并削减不值得的部分”。

这假设你已经有着色器在运行 Iris 在…之上 Sodium, 标准 Fabric 设置。如果您尚未安装该材质包,请参考完整的材质包安装指南,其中提供了分步说明。 以下内容是在材质包已启用且帧率低于您期望值时需要执行的操作。

真正能提升帧率的设置

并非每个材质包选项都消耗相同的资源。少数选项会造成大部分帧率下降,仅优化这些选项即可恢复大部分帧数,同时基本保持外观不变.

阴影距离和分辨率

几乎每个背包中最大的成本莫过于此。阴影的渲染距离和清晰度都会影响其计算量。首先移除这些.

体积光照和雾

光线穿透和体积雾在截图里效果很好,但每帧的渲染成本很高。在正常游玩中,降低或禁用它们通常是察觉不到的.

反思

屏幕空间和水面反射会带来显著的性能开销,尤其是在大型水域附近。在调整其他任何与水相关的内容之前,请降低反射质量.

渲染距离

每个额外的区块都需要着色器计算更多的几何体进行光照。着色器会增加渲染距离的成本,因此降低它在这里的效果比游戏中的任何其他地方都更好.

在调整设置前,请将资源包等级与您的 GPU 相匹配

设置调整存在上限。即使您大幅度精简,在性能一般的 GPU 上运行大型电影级资源包也永远无法达到在同一硬件上轻量级资源包所能达到的帧率。首先选择适合您显卡的资源包等级,然后使用上述设置来弥补剩余的差距。

如果您的 GPU 是...从...开始然后精简
集成显卡或较旧型号轻量级资源包,最低配置首先精简阴影和体积光
中端显卡轻量级到中级资源包阴影距离、反射效果
强大的独立显卡中级到重型如果需要进一步提升,请精简渲染距离
  1. 确认 Iris 和 Sodium 均已激活

    打开视频设置,确认已选择着色器包,并且 Sodium 的渲染器正在运行。 这一组合是其他所有设置的基础.

  2. 请关注 F3 帧时图表,而不是 FPS 数字

    角落中的数字隐藏着尖刺。F3 屏幕底部的帧时图精确地显示了成本的落点,这能告诉你问题是阴影、渲染距离,还是其他完全不同的原因.

  3. 先修饰阴影

    逐步降低阴影距离和阴影分辨率。这个单独的改动比大多数配置中的任何其他设置都能恢复更多的帧数.

  4. 减少体积和反射

    降低或禁用体积光、体积雾和反射效果。这些是接下来最大的开销,并且在正常游玩中不太可能被察觉.

  5. 将渲染距离往回拉两格

    着色器会使渲染距离的成本进一步增加。在这里稍微减少一点,开启着色器效果后,所能达到的效果远胜于关闭着色器效果时.

增加构建空间,减少修剪工作

上述设置从着色器本身恢复帧,但更健康的解决方案是在着色器出现之前拥有更大的帧预算。Sodium 已经在渲染方面完成了这项工作。将其与 Lithium 结合使用以处理游戏逻辑,可以提高整体基础,使着色器消耗更大的预算,而不是紧张的预算。 关于 Minecraft 最佳性能模组 详细介绍了该基础堆栈.

如果你使用像 Terminus、Iris 和 Sodium 这样的维护良好的客户端,那么材质包可以直接放入现有的 shaderpacks 文件夹,性能基础已经就绪.

当调整设置还不够用

如果你已经剪裁了阴影、体积光、反射和渲染距离,帧率仍然很低,那么很可能你的显卡无法在任何设置下承载这个材质包的重量。这并不是一个可以通过持续调整配置来解决的问题。降一个档次,正如 Minecraft 材质包等级列表 中所说,比在设置菜单中再花一个小时来调整能更快地得到更好的结果。

常见问题

获取Terminus

Iris and Sodium baked into the profile, headroom included.