跳到正文

ImmediatelyFast

作者:RaphiMC

加速 Minecraft 中的立即模式渲染

收藏

介绍

介绍由机器翻译自 Modrinth 原页面,仅供参考。

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 倍。[使用 IF 1.1.7 在 1.19.3 上测试]

_在 spigot 服务器上测试,屏幕上的 3×3 区域内生成 1000 头牛。_

| 其他模组 | 未使用 ImmediatelyFast | 使用 ImmediatelyFast | 提升 |
|—————–|————————-|———————-|————-|
| 无 | 16 FPS | 60 FPS | 3.75x |
| Sodium | 21 FPS | 82 FPS | 3.90x |
| Iris 和 Sodium | 60 FPS | 76 FPS | 1.27x |

地图渲染

当屏幕上有很多地图时,FPS 通常应提高约 5 倍。[使用 IF 1.1.1 在 1.19.3 上测试]

_在 fabric 服务器上使用 Image2Map 模组测试,屏幕上约有 930 张地图。_

| 其他模组 | 未使用 ImmediatelyFast | 使用 ImmediatelyFast | 提升 |
|—————–|————————-|———————-|————-|
| 无 | 50 FPS | 310 FPS | 6.20x |
| Sodium | 47 FPS | 320 FPS | 6.81x |

HUD 渲染

在几乎所有场景中,FPS 通常应提高约 40%。[使用 IF 1.1.7 在 1.19.3 上测试]

_在 spigot 服务器上测试,屏幕上显示不同的 HUD 元素(计分板、药水效果叠加层、Boss 血条、填充聊天框、额外生命值、完整快捷栏)。_

| 其他模组 | 未安装 ImmediatelyFast | 安装 ImmediatelyFast | 提升 |
|———————|————————-|———————-|————-|
| 无 | 250 FPS | 380 FPS | 1.52x |
| 钠 | 335 FPS | 630 FPS | 1.88x |
| Exordium 和 钠 | 740 FPS | 840 FPS | 1.14x |

文本渲染

当周围有许多告示牌或全息投影时,FPS 通常应提高约 2 倍。[使用 IF 1.1.7 在 1.19.3 上测试]

_在 spigot 服务端上测试,屏幕上有 200 个告示牌(填满文本)。_

| 其他模组 | 未安装 ImmediatelyFast | 安装 ImmediatelyFast | 提升 |
|—————–|————————-|———————-|————-|
| 无 | 70 FPS | 125 FPS | 1.79x |
| 钠 | 110 FPS | 300 FPS | 2.73x |

方块实体渲染

当周围有许多方块实体时,FPS 通常应提高约 20%。[使用 IF 1.1.7 在 1.19.3 上测试]

_在 spigot 服务端上测试,屏幕上有 400 个箱子。_

| 其他模组 | 未安装 ImmediatelyFast | 安装 ImmediatelyFast | 提升 |
|—————–|————————-|———————-|————-|
| 无 | 170 FPS | 205 FPS | 1.20x |
| 钠 | 315 FPS | 410 FPS | 1.30x |

兼容性

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 制作了徽标!

评论

登录后评论和评分

RaphiMC 的其他作品

查看全部 →