Retrium

Retrium

Retrium是一款面向老旧GPU的Fabric客户端性能优化模组,这些GPU仍停留在OpenGL 2.1版本上。

性能

Retrium v0.1.0 — 初始发布 (Minecraft 1.21.1 · Fabric Loader 0.16+)


新特性

  • GL 能力自动检测 — 启动时,Retrium 会探测你的驱动程序并自动选择最佳可用渲染路径。无需手动配置。

    • MODERN (GL 3.3+):模组不活跃,无性能影响
    • LEGACY (GL 2.1 + ARB 着色器扩展):VBO 批处理 + GLSL 1.20 着色器已激活
    • FALLBACK (GL 2.1,无着色器支持):仅 CPU 端批处理 + 视锥剔除
  • 区块批量合并 — 多个相邻的 16×16×16 区块段被合并为一个 VBO,并以一次调用绘制,而非每段一次绘制调用。目标是在旧驱动上减少 10–20 倍的绘制调用次数,因为旧驱动上每次调用的 CPU 开销占主导地位。

  • 视锥剔除 — 无依赖的六平面视锥剔除器会在几何体到达 GPU 之前跳过视野之外的几何体。适用于所有三个 GL 等级。

  • 旧版地形着色器 — 为 LEGACY 等级设计的极简 GLSL 1.20(#version 120)着色器:一次纹理采样、烘焙顶点光照、无分支。旨在让 15 年前的硬件上的每个片段尽可能少地消耗 ALU 操作。

  • 固定功能回退路径 — 对于完全无着色器支持的驱动程序,Retrium 仍然通过 CPU 端批量合并减少绘制调用,而不触及着色器管线。

  • 可调配置 — RenderConfig 为硬件受限的玩家提供关键调节选项:

    • batchGroupSize — 每个 VBO 合并多少个区块段(默认:8)
    • hardCullDistanceGroups — 视锥检查前的距离预剔除(默认:12)
    • maxBatchRebuildsPerFrame — 限制区块编辑时每帧的重建上传开销(默认:2)
    • entityRenderDistance — 限制实体渲染范围(默认:32 格)
    • disableSmoothLighting — 禁用 MC 的环境光遮蔽重新计算,这是旧硬件上区块构建中最大的单项 CPU 开销(默认:开启)
    • forceFallbackTier — 针对虚假报告自身能力的驱动程序的逃生舱

已知限制

  • 本版本的区块批处理渲染覆盖(MixinWorldRenderer)是一个占位实现 — GL 能力检测和所有引擎基础设施均已激活,但实际的每帧拦截 Minecraft 地形绘制循环需要针对你的特定 MC 构建通过 genSources 验证 mixin 目标。请参阅 README_MIXINS.md。
  • 尚无配置界面 — 在接入配置库之前,值必须在代码中修改。
  • GL 3.3+ 用户按设计不会看到任何效果;请改用 Sodium。