Seaborgium

Seaborgium

一个针对Minecraft的轻微渲染优化模组,提升原版HUD的性能

优化

弃用通知:

此模组将不再接收后续版本的更新。Sodium 已在其模组中实现了与 Seaborgium 修复类似的一项优化。同时,我也缺乏维护此模组的时间。代码采用 ISC 许可证授权,您可以自由进行任何修改并使用。

因此,我将把模组归档在 GitHub 上,并为了存档目的在 Modrinth 上重新将其设为公开状态。

1.19.4 版本注意:Iris 进行了一项破坏性更改,导致此模组不兼容。

如果有任何开发者有理由在 1.19.4 版本上使用此模组,除了更新依赖项之外,您只需在 MixinPipelineManager 中将 net.coderbot.iris.shaderpack.DimensionId 替换为 net.coderbot.iris.shaderpack.materialmap.NamespacedId 即可使其兼容。


图片

什么是 Seaborgium?

Seaborgium 是一款免费开源的 Minecraft 优化模组。它通过实现其他模组忽略的优化来提升游戏的渲染性能。

Seaborgium 提供了一个 统一 的 JAR 文件,这意味着它同时包含类似 Fabric 和 Forge 版本的模组。

优化

Seaborgium 实现了一个简单的缓存,用于存储每个着色器程序中统一变量的位置。

当 GLStateManager 首次调用 glGetUniformLocation 时,Seaborgium 会检查它是否已有请求的 uniform 的缓存位置。 如果有,它直接返回缓存的位置,而无需调用 glGetUniformLocation。 如果没有,它会调用 glGetUniformLocation 并将结果存储在缓存中以供将来使用。

此优化减少了 OpenGL 调用的次数,并避免了不必要的开销。 众所周知,调用 glGetUniformLocation 非常缓慢,驱动程序在处理此函数时消耗大量 CPU 时间的情况并不少见。 通过缓存此函数的结果,Seaborgium 能够避免浪费 CPU 周期等待本应已握在手上的函数返回数据。

我应该期待怎样的性能提升?

性能提升幅度因场景而异。所讨论的性能数据基于我个人的机器,配置为 AMD Ryzen 5 5600x、32GB DDR4 @ 3200Mhz 和 Nvidia GTX 980ti。所有测试也都包含了常见的优化模组 Lithium 和 Sodium。

由于 Minecraft 渲染心形图标到屏幕的方式,当心形数量显著时,渲染成本会迅速增加。随着吸收 255,此模组能将帧率从痛苦的 53 帧平均值提升到相当可观的 163 帧平均值。

在常规游戏场景中,结果仍然明显但较不突出,相比未启用时能提升 30 到 50 FPS。

兼容性

Seaborgium 与您预期的所有模组兼容,如 Sodium/Rubidium、Canary/Lithium、Starlight 等!

除改变后端图形 API 的模组(如 Vulkan Mod)之外,目前没有已知的不兼容性问题。如果您发现了任何问题,请在问题页面报告!