
圆形渲染
一个将原版渲染方式改为3D球形渲染的Fabric模组。
圆形渲染
English | 中文
这是一个 Fabric 模组,它将区块渲染修改为以玩家为中心的圆形(或椭圆形)。 默认情况下,它会在一个完美圆形内渲染区块(半径 = 视距 × 16 格)。 你可以选择缩放左/右半径以创建椭圆形,从而剔除更多两侧的区块,同时保持前/后可见范围不变。这能降低 GPU 负载并提高 FPS,且不影响游戏机制。
特性
- 以玩家为中心呈圆形渲染区块(默认行为)。
- 可选的椭圆形渲染:前/后半径保持不变,而左/右半径按可配置的系数(
renderRadiusScale)缩放。- 当
renderRadiusScale = 1.0时,为完美圆形。 - 当
renderRadiusScale < 1.0时,变为椭圆形(左/右更窄)。
- 当
- 可选的垂直范围限制:将渲染限制在玩家上方和下方的特定区块层数内。
- 区块加载(逻辑更新)仍保持方形,因此所有区块仍会被加载和更新。
- 预设与自定义模式:可在预定义配置(均衡、性能、激进)之间快速切换,或选择自定义以自由调整所有参数。
- 兼容 Sodium:
- 当存在 Sodium 时,配置会显示在视频设置界面中。
- 没有 Sodium 时,模组使用 JSON 配置文件独立运行。
- 不影响实体或其他对象——仅影响区块渲染。
依赖
- 必需: Fabric Loader ≥0.18.4
- 可选: Sodium 0.8.6+(用于游戏内 GUI 配置)
安装
- 安装 Fabric Loader。
- 从 Releases 页面下载最新的
circular-rendering-<version>.jar。 - 将 JAR 放入你的
mods文件夹。 - (可选)如果需要游戏内配置滑块和预设,请安装 Sodium。
配置
已安装 Sodium 时
- 前往 选项 → 视频设置。
- 向下滚动找到 Circular Rendering 部分。
预设
- 渲染预设下拉菜单:
- 均衡:
渲染半径比例 = 100%,垂直范围禁用(原版行为,但仍经过优化)。 - 性能:
渲染半径比例 = 80%,垂直范围启用,10 层。 - 激进:
渲染半径比例 = 40%,垂直范围启用,3 层。 - 自定义:所有滑块解锁,允许你自由调整下方参数。
- 均衡:
选择非自定义预设会自动应用其参数并锁定手动控件。
手动配置(仅在选择了“自定义”预设时可用)
- 渲染半径比例(10% – 100%):
- 100% = 完美圆形(半径 = 视距 × 16)。
- 较低的值会使左/右半径变小,将圆形变为椭圆形并剔除更多两侧区块。
- 启用自定义垂直范围(开关)——启用后,你可以设置:
- 垂直范围(1–32 层):在玩家上方和下方渲染的区块层数(每层 16 格)。
没有 Sodium 时
模组会在 config/circular-rendering.json 创建 JSON 配置文件。
示例内容:
{
"renderRadiusScale": 1.0,
"enableVerticalRange": false,
"verticalRange": 16,
"preset": "BALANCED"
}
renderRadiusScale– 0.1 到 1.0 之间的双精度值。1.0= 完美圆形。< 1.0= 椭圆形(左/右更窄)。
enableVerticalRange– 布尔值,为 true 时启用垂直范围限制。verticalRange– 整数(1–32),在玩家上方和下方渲染的区块层数(每层 = 16 格)。preset–"BALANCED"、"PERFORMANCE"、"AGGRESSIVE"或"CUSTOM"之一。- 如果预设不是
"CUSTOM",三个手动参数将被忽略,使用预设的值。 - 如果预设是
"CUSTOM",则完全按设置使用手动参数。
- 如果预设不是
更改在重启游戏或重新加载区块后生效。
工作原理
原版模式(无 Sodium): 模组注入
LevelRenderer.cullTerrain,并使用以下形状过滤区块列表:(forward² / a²) + (right² / b²) ≤ 1其中
a = 视距 × 16(固定的前/后半径),b = a × renderRadiusScale(左/右半径)。 当b = a时,形状为圆形。如果启用了垂直范围,它还会检查区块 Y 层。Sodium 模式: 注入点取决于 Minecraft 版本:
- MC 26.1.2 及以上: 模组重定向
OcclusionCuller.visitNode内的testDistance调用。这在基于图的遮挡剔除遍历中直接用椭圆公式替换了 Sodium 默认的圆柱形距离检查,同时保留了完整的剔除结构。 - MC 26.1.1 及以下: 模组注入
OcclusionCuller.isWithinRenderDistance,对椭圆(或垂直范围)之外的区块返回false,从而有效地将它们从 Sodium 的可见集合中过滤掉。
- MC 26.1.2 及以上: 模组重定向
两种方法都只影响区块渲染;区块加载保持方形,因此游戏机制(红石、实体 AI 等)在所有位置都能正常工作。
兼容性
- Minecraft 版本支持状态:
| 版本 | 支持状态 |
|---|---|
| 26.2 | ✅ |
| 26.1.2 | ✅ |
| 26.1.1 | ✅ |
| 26.1 | ✅ |
| 1.21.11 | ✅ |
| 更低版本 | 将不支持 |
- 与 Sodium 0.8.6+ 完全兼容(两个模组可一起使用)。
- 应与大多数不大量修改区块渲染的其他模组兼容。如果遇到问题,请报告。
从源代码构建
克隆仓库并运行:
./gradlew build
构建的 JAR 将位于 build/libs/。
许可证
本项目采用 MIT 许可证。详见 LICENSE 文件。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。