
复杂树叶剔除
适用于Sodium的多层级树叶剔除。针对密集模组森林(如WWOO等)的方块剔除、渲染通道降级及面剔除。
查看大图复杂树叶剔除
这是一个适用于 Minecraft 1.21.1(Fabric + Sodium)的多层次树叶剔除模组,专为装有茂密植被的整合包设计,例如 William Wyther 的 Overhauled Overworld(WWOO),原版剔除在这些环境中会显著损失性能。
注意: 我已在本地一个重度模组化(300+ 模组)的实例上进行了测试,并让其他硬件配置不同的用户也进行了测试。到目前为止运行正常,但这并不意味着不会存在某些问题。该模组已尽我所能做到兼容,但对于比我更聪明的人来说,可以自行 fork 并按需修改。我是一位新晋父亲,所以可能无法迅速修复问题或扩展其兼容性。
功能简介
复杂树叶剔除应用了三种相互独立且互补的剔除策略:
标准树叶剔除(第 1 级 - 所有渲染器) 在网格构建期间,将相邻树叶方块之间的共享面标记为不可见。适用于所有树叶方块,并直接与 Sodium 的遮挡系统协作。这是大多数剔除模组的做法。
扩展树叶剔除(第 A 级 - 仅限 Sodium) 对于完全被其他树叶包围的内部树叶方块,完全取消其渲染。这些方块不会生成任何几何体。在茂密的 WWOO 树冠和其他模组森林中效果最为显著,因为标准剔除会遗漏其无法识别的方块。
边缘通道降级(第 B 级 - 仅限 Sodium) 树冠边缘部分符合条件(低于取消阈值的相邻方块数达到一个)的树叶方块,会从昂贵的半透明渲染降级为更便宜的 cutout 渲染。树叶形状完全保留——仅更改渲染通道。在使用 Iris 等光影包时效果最为明显,因为半透明几何体的渲染成本非常高。
前置要求
- Minecraft 1.21.1
- Fabric Loader >= 0.16.0
- Fabric API
- Sodium - 注意: 已在 0.6.13 版本上测试。如果内部钩子有变动,更新/更旧的版本可能无法正常工作。
推荐安装
- Iris Shaders - 第 B 级通道降级在光影开启时能提供最明显的性能提升
- ModMenu - 提供游戏内配置界面的访问入口
配置
通过 ModMenu 打开配置界面,或在游戏内使用 /clc 命令:
/clc status
/clc reload
/clc set enabled true|false
/clc set mode CONSERVATIVE|BALANCED|AGGRESSIVE
/clc set threshold 0-6 (0 = 根据模式自动设置)
/clc set standardCulling true|false
/clc set extendedCulling true|false
/clc set passDemotion true|false
/clc set extendedDetect true|false
剔除模式
| 模式 | 所需相邻方块数 | 描述 |
|---|---|---|
| CONSERVATIVE(保守) | 6/6 | 仅剔除完全被掩埋的方块。视觉效果最安全。 |
| BALANCED(平衡) | 5/6 | 性能与外观的良好平衡。默认模式。 |
| AGGRESSIVE(激进) | 4/6 | 最大化性能。可能出现轻微的边缘变薄。 |
扩展树叶检测 - 启用后,注册表路径包含 leaf、leaves 或 foliage 的方块将被视为树叶,即使它们没有 minecraft:leaves 标签。对于完整的 WWOO 兼容性是必需的。
兼容性
| 模组 | 状态 |
|---|---|
| Sodium 0.6.x | 必需 |
| Iris | 完全兼容,第 B 级在此效果最佳 |
| Distant Horizons | 无交互(DH 处理其自身的 LOD 几何体) |
| C2ME | 兼容 |
| EntityCulling | 独立功能,无冲突 |
| MoreCulling | 互补 - 覆盖不同的方块类型 |
| SodiumLeafCulling | 功能重复 - 两者针对同一管线。请二选一使用。 |
| WWOO | 主要使用场景 |
性能说明
所有剔除工作都在 Sodium 的工作线程上进行区块网格构建时完成——而非在渲染期间。每帧都没有 CPU 开销。性能提升在区块构建或重建时(世界加载、方块变化、F3+A 或保存设置时)得以体现。
从源代码构建
git clone https://github.com/YOUR_GITHUB_HERE/complex-leaf-culling
cd complex-leaf-culling
# 将 sodium-fabric-0.6.x+mc1.21.1.jar 放置在 libs/ 目录中
./gradlew build
构建好的 jar 文件将位于 build/libs/ 目录中。
许可证
MIT - 可自由 fork、修改并在署名后重新分发。参见 许可证。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。