Entity Culling — 优化 Minecraft 中不可见物体渲染的模组
Entity Culling 是一款 Minecraft 客户端模组,可跳过被地形和建筑遮挡的方块实体与实体的渲染,从而在建筑密集的场景中降低 GPU 负载,提升帧率。
Entity Culling 是一款 Minecraft 客户端模组,可跳过被地形和建筑遮挡的方块实体与实体的渲染,从而在建筑密集的场景中降低 GPU 负载,提升帧率。
Entity Culling — 优化 Minecraft 中不可见物体渲染的模组
测试并撰写本文所用的 Minecraft 版本:1.21.10
支持的版本范围:1.7.10 – 26.2
Entity Culling 是一款 Minecraft 客户端模组,它会将被地形和建筑遮挡的方块实体与实体从渲染中剔除。在原版游戏中,即使箱子、信标、生物等物体完全被墙壁或遮挡物挡住、实际上根本不会出现在画面中,客户端仍会消耗资源去渲染它们。该模组会判断每个物体的真实可见性,如果视线被遮挡,就会跳过对它的渲染。结果是多余的渲染调用被消除,在建筑密集的区域中,显卡的部分负载也随之减轻。
隐藏物体的剔除是如何工作的
该模组的核心是异步光线追踪(path-tracing)。它会利用空闲的 CPU 线程,与主游戏线程并行计算摄像机到每个物体之间是否存在直接视线。计算是实时进行的,并不会阻塞主线程,因此在移动过程中可见性会持续更新。
原版的剔除机制以及 Sodium 中的检测都是在区块层级进行的:只要物体所在的区块已加载,该物体就会被渲染。而这里的做法更加精确——判断依据正是实际的视线。即使物体位于可见区块内,只要被山体、基地墙壁或其他遮挡物挡住,就会被跳过。会被剔除的对象包括方块实体(箱子、信标、木桶)以及生物等普通实体。

启用该模组时通过 F3 查看的帧率演示

禁用该模组时通过 F3 查看的帧率演示
差异最明显的场景
提升幅度取决于场景中有多少物体被摄像机遮挡。效果最明显的是大型基地、拥有数百个箱子的仓库型建筑、地下建筑群,以及建筑密集的服务器——在这些地方,渲染距离内有大量方块实体和生物藏在墙后。而在没有建筑的空旷原野上,由于几乎没有什么需要隐藏的东西,提升效果很小。
实体 tick 优化
除了渲染之外,该模组还可以限制当前不可见实体的 tick 处理。当一个实体处于隐藏状态时,客户端只会执行最必要的更新,由大量不可见生物带来的负载也会随之下降。该开关可在设置中启用,默认处于开启状态。
这项优化只影响客户端一侧,不会影响服务器端的模拟:生物照常生成、移动并掉落物品,农场也不受任何影响。
客户端实体:部分模组(尤其是魔法类模组)会使用纯客户端实体来实现动画和特效。如果这些实体被剔除或没有获得 tick,它们的动画就可能出现异常。可以在设置中把这类对象加入相应的白名单。
总结
Entity Culling 通过把可见性计算转移到独立的 CPU 线程上,减轻了玩家实际看不到的物体所带来的渲染和部分处理负担。与 Sodium 中内置的、以可见区块为依据的实体剔除不同,这里考虑的正是真实的视线,因此能跳过更多被遮挡的物体。主要的局限在于:部分模组的方块实体和客户端特效可能会消失或闪烁,直到被手动排除在剔除范围之外。大规模建筑的生存玩家、技术流建筑玩家,以及视野中始终存在大量隐藏物体的重度模组包用户,从这个模组中获益最大。
安装
一次典型安装大约 5 分钟。流程相同,只是 Loader 和对应构建不同。
- 1Install a mod loader (Forge, Fabric or NeoForge) that matches your Minecraft version.
- 2Download the mod file (.jar) built for that same version.
- 3Place the .jar into your .minecraft/mods folder.
- 4Launch Minecraft with the modded profile and check the mod loads in-game.











