极速渲染 ImmediatelyFast

极速渲染 (ImmediatelyFast)

深度优化 Minecraft 即时模式渲染性能

极速渲染(ImmediatelyFast)是一款开源的 Minecraft 模组,旨在显著提升客户端的即时模式(Immediate Mode)渲染性能。该模组在设计上追求轻量化,致力于与其他模组保持高度的兼容性,为玩家带来更流畅的游戏体验。

核心优化机制

从根本上说,极速渲染通过引入自定义的缓冲区实现,全面优化了所有的即时模式渲染。这种机制能够更高效地批量处理绘制调用(Draw Calls)并将数据上传至 GPU。

具体而言,以下即时模式渲染代码部分得到了深度优化:

  • 实体渲染:包括生物、玩家和其他动态对象。
  • 方块实体渲染:如箱子、熔炉、信标等具有特殊功能的方块。
  • 粒子效果:火焰、烟雾、法术效果等。
  • 文本渲染:聊天栏、告示牌、全息图等文字显示。
  • GUI/HUD 界面:游戏内的用户界面和平视显示器元素。
  • 第三方模组渲染:其他模组中使用的即时模式渲染内容。

除此之外,极速渲染还针对原版渲染代码进行了定向改造,通过替换为更高效的算法来提升运行速度。这部分针对性优化主要覆盖:

  • 地图渲染
  • HUD(平视显示器)渲染
  • 文本渲染

性能基准测试

以下数据详细展示了本模组在特定场景下的显着优化效果。表格中若列出其他模组,意味着该对比是在这些模组共同作用下的结果。

测试硬件环境:Ryzen 5 1600, 32GB DDR4, GTX 1060

:FPS 数值采集自外部工具(MSI Afterburner),并取数秒内的平均值。如果您决定亲自测试,请注意极速渲染主要在 CPU 成为系统瓶颈时提升 FPS(通常在 GPU 性能尚可或未使用极高配置光影的情况下)。相比于高性能 CPU,中低端 CPU 将从本模组中获得更明显的提升。

实体渲染性能

在实体密集的服务器环境中,FPS 通常可获得 约 2 倍 的提升。[测试版本:IF 1.1.7 on 1.19.3]

测试场景:Spigot 服务器,屏幕范围内在一个 3×3 的区域内生成了 1000 头牛。

搭配模组 未启用极速渲染 启用极速渲染 性能提升幅度
16 FPS 60 FPS 3.75 倍
Sodium(钠) 21 FPS 82 FPS 3.90 倍
Iris + Sodium 60 FPS 76 FPS 1.27 倍

地图渲染性能

当屏幕上显示大量地图物品时,FPS 通常可获得 约 5 倍 的巨幅提升。[测试版本:IF 1.1.1 on 1.19.3]

测试场景:Fabric 服务器,配合 Image2Map 模组,屏幕范围内展示约 930 张地图。

搭配模组 未启用极速渲染 启用极速渲染 性能提升幅度
50 FPS 310 FPS 6.20 倍
Sodium(钠) 47 FPS 320 FPS 6.81 倍

HUD 界面渲染性能

在绝大多数游戏场景中,FPS 均能获得 约 40% 的稳定提升。[测试版本:IF 1.1.7 on 1.19.3]

测试场景:Spigot 服务器,屏幕上开启多种 HUD 元素(计分板、药水效果显示、BOSS 血条、满屏聊天记录、额外生命值显示、饱满的快捷栏)。

搭配模组 未启用极速渲染 启用极速渲染 性能提升幅度
250 FPS 380 FPS 1.52 倍
Sodium(钠) 335 FPS 630 FPS 1.88 倍
Exordium + Sodium 740 FPS 840 FPS 1.14 倍

文本渲染性能

当周围存在大量告示牌或全息文字时,FPS 通常可获得 约 2 倍 的提升。[测试版本:IF 1.1.7 on 1.19.3]

测试场景:Spigot 服务器,屏幕范围内放置 200 个写满文字的告示牌。

搭配模组 未启用极速渲染 启用极速渲染 性能提升幅度
70 FPS 125 FPS 1.79 倍
Sodium(钠) 110 FPS 300 FPS 2.73 倍

方块实体渲染性能

当周围存在大量方块实体时,FPS 通常可获得 约 20% 的提升。[测试版本:IF 1.1.7 on 1.19.3]

测试场景:Spigot 服务器,屏幕范围内放置 400 个箱子。

搭配模组 未启用极速渲染 启用极速渲染 性能提升幅度
170 FPS 205 FPS 1.20 倍
Sodium(钠) 315 FPS 410 FPS 1.30 倍

兼容性说明

极速渲染的架构设计旨在最大程度减少与其他模组的冲突。它能够与大多数模组及整合包和谐共存。

已知的不兼容项包括:

  • OptiFabric / OptiFine(高清修复)
  • 大多数闭源的“客户端”,例如 LunarClient 和 LabyMod

如果您在使用过程中遇到任何问题,欢迎前往问题追踪页面(Issue Tracker)进行反馈。

高级配置指南

本模组拥有详尽的配置文件,位于您 Minecraft 实例的 config 文件夹中。对于大多数玩家而言,保留默认值即可获得最佳体验,但您也可以通过调整以下选项来追求极致性能或解决兼容性问题:

  • font_atlas_resizing(字体图集尺寸调整):增大字体图集纹理的大小。这有助于提升在使用高分辨率字体或服务器自定义字体时的性能表现。
  • map_atlas_generation(地图图集生成):将分散的地图纹理合并为单一纹理。当屏幕上同时显示大量地图时,此选项能显著提升流畅度。
  • hud_batching(HUD 批量处理):通过减少绘制调用的提交次数来优化 HUD 渲染性能。如果您发现 HUD 元素显示异常,建议尝试关闭此优化。
  • fast_text_lookup(快速文本查找):在渲染文本字符之间缓存部分数据。在渲染大量文本时,此功能可带来轻微的性能增益。
  • avoid_redundant_framebuffer_switching(避免冗余帧缓冲区切换):通过减少在渲染世界中各类事物(实体、粒子、方块实体等)与 HUD 之间的帧缓冲区切换次数,进一步提高 FPS。
  • experimental_disable_error_checking(实验性:禁用错误检查):禁用 OpenGL 的错误检查机制。这可能会在特定系统上提升性能,但同时也可能导致出现问题时难以调试,请谨慎开启。
  • experimental_disable_resource_pack_conflict_handling(实验性:禁用资源包冲突处理):控制模组是否扫描资源包中的核心着色器修改以避开不兼容的优化。禁用此项将强制开启所有优化,但可能会导致特定资源包出现图形错误。
  • experimental_sign_text_buffering(实验性:告示牌文本缓冲):对告示牌上的文本进行缓冲处理,避免每帧都重新渲染。这可能会在使用高分辨率或自定义字体时引发显示问题。
  • experimental_screen_batching(实验性:屏幕批量处理):通过减少绘制调用的提交次数,优化部分游戏内屏幕界面的渲染性能。

资源信息

适用版本
1.21.11、1.20.6、1.19.4、1.18.2
资源版本
Java 版
发布者
Demon

下载地址

发表回复