- 版权类型
- 转载
- 模组加载器
- Fabric
- 适配版本(Java)
- 1.21
ImmediatelyFast
ImmediatelyFast 是一个开源的 Minecraft 模组,旨在提高游戏客户端的渲染性能。
它被期望成为一个轻量且保持与其他模组互相兼容的模组。
它被期望成为一个轻量且保持与其他模组互相兼容的模组。
优化
ImmediatelyFast 使用自定义缓冲区来优化所有即时渲染相关的实现,这将有助于更有效的批量绘制并提交数据至 GPU。以下部分的实现已经得到了优化:
- 生物实体;
- 方块实体;
- 粒子效果;
- 文本渲染;
- GUI/HUD;
- 其他模组的即时渲染实现;
- 地图绘制渲染;
- HUD 渲染;
- 文本渲染;
性能
以下列出了该模组取得较好绩效的基准测试,同时值得注意的是,如果列表中列出了其他模组,这意味着该模组也优化了游戏相关的部分。测试用硬件环境:
CPU: Ryzen5 1600
RAM: 32GB DDR4
GPU: GTX 1060
另外,当前表的 FPS 取自外部工具提取的平均值(本案例为 MSI Afterburner)。如果您决定仔细测试,请记住:
ImmediatelyFast 只能在 CPU 处于瓶颈时取得更好的绩效(并且大部分情况下而言,您的 GPU 应当不是老式硬件,或者您非常频繁的使用着色器渲染)。较慢的 CPU 将会比具备加速运算的 CPU 取得更多收益。
当前举例的测试均以 ImmediatelyFast 1.1.7,1.19.3 版本上测试。
实体渲染
通常情况下对于那些较为繁忙的服务器拥有至少两倍甚至以上的的绩效。在 Spigot 端上测试,目前已经生成了 1000 只牛共处一个 3*3 范围之内。
| 附加模组 | 未安装 ImmediatelyFast | 已安装 ImmediatelyFast | 绩效 |
|---|---|---|---|
| 原版 | 16 FPS | 60 FPS | 3.75 倍 |
| Sodium | 21 FPS | 82 FPS | 3.90 倍 |
| Iris & Sodium | 60 FPS | 76 FPS | 1.27 倍 |
地图渲染
通常情况下对于那些拥有超多地图(如地图墙)的情况下应该拥有至少五倍甚至以上的的绩效。在一个带有 Image2Map 模组的服务器上,面向大约 930 张地图时进行测试。
| 附加模组 | 未安装 ImmediatelyFast | 已安装 ImmediatelyFast | 绩效 |
|---|---|---|---|
| 原版 | 50 FPS | 310 FPS | 6.20 倍 |
| Sodium | 47 FPS | 320 FPS | 6.81 倍 |
HUD 渲染
近乎所有情况下,FPS 都应该高出了 40% 左右。在屏幕上具备了不同的 HUD 元素(包括记分牌,多个药水效果,Boss 血量条,聊天消息,额外生命,全部沾满的快捷栏)的 Spigot 端上测试。
| 附加模组 | 未安装 ImmediatelyFast | 已安装 ImmediatelyFast | 绩效 |
|---|---|---|---|
| 原版 | 250 FPS | 380 FPS | 1.52 倍 |
| Sodium | 335 FPS | 630 FPS | 1.88 倍 |
| Exordium & Sodium | 740 FPS | 840 FPS | 1.14 倍 |
文本渲染
通常情况下,如果周边有很多告示牌或全息文本时,至少应该会有两倍以上的提升。在同时渲染了 200 个填充了文本的告示牌的 Spigot 端上测试。
| 附加模组 | 未安装 ImmediatelyFast | 已安装 ImmediatelyFast | 绩效 |
|---|---|---|---|
| 原版 | 70 FPS | 125 FPS | 1.79 倍 |
| Sodium | 110 FPS | 300 FPS | 2.73 倍 |
方块实体渲染
通常情况下,对于拥有很多方块实体时也应当取得至少 20% 左右的性能。在同时渲染了 400 个箱子的 Spigot 端上测试。
| 附加模组 | 未安装 ImmediatelyFast | 已安装 ImmediatelyFast | 绩效 |
|---|---|---|---|
| 原版 | 170 FPS | 205 FPS | 1.20 倍 |
| Sodium | 315 FPS | 410 FPS | 1.30 倍 |
兼容
ImmediatelyFast 将尽可能减少干扰其他模组工作。他能够兼容大部分(并不是全部)的模组与整合包。但我们依然有一些已知的无法兼容的模组:- OptiFine/OptiFabric;
- VulkanMod;
- 其他的并不开源的客户端模组,诸如 LunarClient 与 LabyMod;
配置文件 Config
ImmediatelyFast 有一个可选的配置文件(Config),可以在您的 Minecraft 根目录找到它。大多数情况下您应该保持默认值,但部分情况下您可以通过适当调整来取得更好的效能提升或兼容性提升:- font_atlas_resizing: 增加点阵字体的纹理大小,这将有助于提高分辨率或提高自定义字体的性能。
- map_atlas_generation: 将多个图像合成为点阵位图而非零散的图像,这将有助于在存在较多渲染目标时提升性能。
- hud_batching: 减少提交 HUD 渲染请求来提高渲染性能。如果遇到任何 HUD 渲染问题,请尝试禁用此项。
- fast_text_lookup: 缓存文本数据,有助于提升大量的文本渲染效率。
- avoid_redundant_framebuffer_switching: 减少渲染不同的项目(粒子,生物,方块实体...)或 HUD 来取得更快的缓冲区数据交换。
- experimental_disable_error_checking: 禁用 OpenGL 的错误报告,这将会提升部分操作系统环境的性能。但这么做可能会导致调试渲染变的非常麻烦。
- experimental_disable_resource_pack_conflict_handling: 禁止 ImmediatelyFast 扫描并拒绝那些不太兼容的着色器。如果禁用此项,将会强制优化每一个着色器,但这可能会导致部分资源包出现贴图错误。
- experimental_sign_text_buffering: 通过缓冲文本取代文本即时渲染。但这可能会导致在高分辨率或自定义字体环境下出现问题。
- experimental_screen_batching: 减少提交渲染请求来提高 HUD 渲染(in-game screen)效率效率。