ImmediatelyFast

ImmediatelyFast

加速Minecraft中的立即模式渲染

性能

ImmediatelyFast

ImmediatelyFast 是一款开源的 Minecraft 模组,旨在提升客户端的即时模式渲染性能。
它设计轻量,并与其他模组兼容。

优化内容

ImmediatelyFast 通过使用自定义缓冲区实现,以更高效的方式批量处理绘制调用并将数据上传至 GPU,从而全面优化即时模式渲染。
以下即时模式渲染代码部分已得到优化:

  • 实体
  • 方块实体
  • 粒子
  • 文本渲染
  • GUI/HUD
  • 其他模组的即时模式渲染

此外,它还包含针对性的优化,通过修改原版渲染代码来提升运行速度。
以下渲染代码部分已通过更高效的实现得到优化:

  • 地图渲染
  • HUD 渲染
  • 文本渲染

性能表现

以下是该模组优化效果尤为出色的几个方面的性能对比:

如果表格中列出了其他模组,则表示该模组也优化了游戏中的这一部分。

测试硬件:Ryzen 5 1600、32GB DDR4、GTX 1060

FPS 数据通过外部工具(本例中为 MSI Afterburner)获取,并取数秒内的平均值。
如果你自行测试,请记住 ImmediatelyFast 仅能在 CPU 成为瓶颈时提升 FPS(如果你的 GPU 不算老旧,或使用了重型着色器,则很可能属于这种情况)。较慢的 CPU 相比极快的 CPU 会从本模组获益更多。

实体渲染

通常情况下,在高负载服务器上 FPS 可提升约 2 倍。 [在 1.19.3 版本上使用 IF 1.1.7 测试]

在屏幕上有 1000 头挤在 3x3 方块内的牛的 Spigot 服务器上测试。

实体渲染性能对比

地图渲染

通常情况下,当屏幕上有大量地图时 FPS 可提升约 5 倍。 [在 1.19.3 版本上使用 IF 1.1.1 测试]

在安装了 Image2Map 模组的 Fabric 服务器上,屏幕上有约 930 张地图时测试。

地图渲染性能对比

HUD 渲染

在几乎全部场景下,FPS 可提升约 40%。 [在 1.19.3 版本上使用 IF 1.1.7 测试]

在屏幕上有多种 HUD 元素(计分板、药水效果覆盖层、Boss 血条、填满的聊天栏、额外生命值、完整快捷栏)的 Spigot 服务器上测试。

HUD 渲染性能对比

文本渲染

通常情况下,当身边有大量告示牌或全息文字时 FPS 可提升约 2 倍。 [在 1.19.3 版本上使用 IF 1.1.7 测试]

在屏幕上有 200 个(写满文字的)告示牌的 Spigot 服务器上测试。

文本渲染性能对比

方块实体渲染

通常情况下,当身边有大量方块实体时 FPS 可提升约 20%。 [在 1.19.3 版本上使用 IF 1.1.7 测试]

在屏幕上有 400 个箱子的 Spigot 服务器上测试。

方块实体渲染性能对比

兼容性

ImmediatelyFast 的设计初衷是尽可能少地干扰其他模组。它应与绝大多数(甚至是全部)模组及整合包正常工作。

已知不兼容:

  • OptiFabric / OptiFine
  • 大多数闭源“客户端”,如 LunarClient 和 LabyMod

如果你遇到任何问题,请在问题追踪器上报告。

配置

ImmediatelyFast 有一个配置文件,位于你 Minecraft 实例的 config 文件夹中。大多数选项应保留默认值,但有些选项可能需要进行微调以提升性能或兼容性。

  • font_atlas_resizing:增大字体图集纹理的尺寸。这能提升高分辨率或自定义服务器字体的性能。
  • map_atlas_generation:将地图纹理放入单个纹理而非多个纹理中。当屏幕上有大量地图时,这能提升性能。
  • hud_batching:通过减少绘制调用来提升 HUD 渲染的性能。如果你遇到 HUD 元素问题,请尝试禁用此优化。
  • fast_text_lookup:缓存渲染文本字符之间的一些数据。在渲染大量文本时略微提升性能。
  • avoid_redundant_framebuffer_switching:此优化通过减少渲染世界中(实体、粒子、方块实体……)或 HUD 中的多种不同元素时的帧缓冲区切换次数来提升 FPS。
  • experimental_disable_error_checking:禁用 OpenGL 错误检查。在某些系统上可能提升性能,但如果启用,可能导致难以调试的问题。
  • experimental_disable_resource_pack_conflict_handling:控制 ImmediatelyFast 是否应扫描资源包以查找不兼容的核心着色器修改,从而禁用某些可能导致冲突的优化。可以禁用它以强制启用优化,即使它们可能导致某些资源包出现图形问题。
  • experimental_sign_text_buffering:缓冲告示牌上的文本,而不是每帧重新渲染。可能在高分辨率或自定义字体时导致问题。
  • experimental_screen_batching:通过减少绘制调用来提升某些游戏内界面的渲染性能。

开发者 API

你可以在此阅读最新版本的 API 文档。

合作伙伴

Kinetic Hosting 以其非常出色的硬件,为您提供极其优惠的服务器套餐!如果您想享受这些优惠,请访问 kinetichosting.com。

Kinetic Hosting


YourKit 支持开源项目,提供创新且智能的工具用于监控和分析 Java 和 .NET 应用程序。YourKit 是 YourKit Java Profiler、YourKit .NET Profiler 以及 YourKit YouMonitor 的创建者。

YourKit


感谢 sydist 制作了 Logo!