Better Beds Mod:Minecraft中的渲染优化与3D床模型支持
详细介绍旨在提高FPS的Minecraft客户端优化模组Better Beds的技术评论。
详细介绍旨在提高FPS的Minecraft客户端优化模组Better Beds的技术评论。
前置依赖:
加载器:Fabric / NeoForge / Quilt
Minecraft版本:1.16 – 1.21.x
Better Beds模组重写了Minecraft中床的渲染机制,用标准静态模型引擎取代了繁重的原版方块实体渲染器。在原版游戏中,床被作为Block Entity Renderer (BER) 处理,迫使中央处理器(CPU)在每一帧重新计算它们的几何形状。Better Beds将床转换为带有JSON模型的经典方块,从而将其渲染工作完全转移到显卡(GPU)上。这可以显著提高村庄附近或多人游戏大厅中的帧率(FPS),并允许通过标准资源包自定义床的外观。
原版床渲染的技术问题
在原版Minecraft中,床、箱子、告示牌和旗帜被作为特殊对象处理——方块实体(Block Entities)。与普通的石头或木头在加载时被烘焙到静态区块网格中不同,方块实体需要一个单独的渲染器(Block Entity Renderer)。
这种方法在原版游戏中引发的问题:
CPU负载过高。处理器被迫每毫秒查询附近每张床的坐标,并向显卡发送单独的绘制指令。
缺乏遮挡剔除优化。即使床在墙后或地板下,原版实体渲染器也会绘制它们,从而浪费了计算机的资源。
性能下降(FPS卡顿)。如果你进入一个有数十个村民的大村庄,或者在像BedWars这样基地里放置了许多床的服务器模式中游玩,帧率可能会因为渲染线程使CPU过载而突然大幅下降。
Better Beds的优化与机制
Better Beds模组彻底移除了床的Block Entity Renderer,将其变成了标准的3D方块。
优化原理:
在加载区块时,游戏将床模型读取为静态对象,类似于楼梯或栅栏。
床的几何形状被组合(烘焙)到整体的3D区块网格(Chunk Mesh)中。
显卡在单次通道(一个Draw Call)中将整个区块和床一起绘制出来,根本不让中央处理器参与逐帧计算。
如果床被其他不透明的方块隐藏,遮挡剔除(Occlusion Culling)算法会自动停止其渲染,从而节省GPU显存。
由于该模组仅在客户端运行,因此它不会改变游戏逻辑。床保留了其所有功能:你可以在上面睡觉、覆盖重生点,村民们也能毫无问题地将其识别为工作或睡觉的地方。该模组无需安装在服务器上,因此你可以在玩多人游戏时自由使用。

历史背景:为什么床变成了实体
Mojang决定将床变成方块实体在过去是必要的一步。直到1.12版本,Minecraft都使用旧的方块ID系统,该系统仅为每个方块的元数据分配了4位(最多16种不同的状态)。
对于床来说,必须进行以下编码:
16种不同的羊毛颜色。
2个床的部分(床头和床尾)。
4个放置方向(北、南、东、西)。
这产生了128种状态组合,物理上无法适应旧系统的限制。为了不浪费几十个宝贵的空闲方块ID,开发者将床转换成了Tile Entity(Block Entity的前身),将颜色和方向的保存移至单独的元数据中,并将绘制移交给了基于CPU的渲染器。
在1.13版本("The Flattening")中,开发者彻底重写了ID系统,允许创建拥有无限数量状态的方块。然而,床的代码保持不变。Better Beds实际上解决了这个过时的技术债务,使床恢复了标准的方块格式。
自定义与资源包支持
原版床使用一张大的纹理拉伸在平面的实体模型上。在原版游戏中使用普通资源包来改变床的几何形状(例如,把床腿变圆或添加蓬松的毯子)是不可能的,除非安装像OptiFine这样带有自定义实体模型(CEM)功能的重量级优化模组。
Better Beds让床向任何图形自定义敞开了大门。因为床现在是一个普通方块,你可以创建或下载一个在models/block/文件夹中带有bed.json文件的资源包。
这允许你:
创建具有详细枕头、毯子和床腿的完整3D床模型。
使用动画纹理或(通过PBR着色器)添加发光元素。
添加超出标准矩形框架的体积细节。
默认情况下,该模组包含精确复制原版床外观的内置JSON模型,因此如果不安装第三方资源包,你不会注意到视觉上的差异,但会获得性能的提升。
兼容性与限制
该模组与其他图形优化模组(Sodium、Embeddium、Iris、Lithium)具有很高的兼容性,因为它使用相同的钩子进行区块渲染优化。
限制与冲突:
Bedspreads。这个允许将旗帜图案应用到床上的流行模组,与Better Beds不兼容。原因在于Bedspreads严格绑定到了原版Block Entity Renderer,以便在床上绘制旗帜。
自定义床模组。如果另一个模组添加了新型的床,并为此使用了标准模型渲染器,你需要一个包含这些新床JSON模型的单独资源包。通过其自己自定义的BER渲染器注册床的模组将稳定运行,但无法获得Better Beds带来的FPS提升。
作者观点
Better Beds是优化Minecraft客户端的有效技术解决方案。用静态JSON模型取代过时的床渲染方法,彻底消除了每帧的CPU负载,使显卡能够将床作为地形的一部分进行绘制。
与更改实体模型的重量级模组相比,Better Beds提供了一种轻量级的替代方案,它专门致力于优化床并为资源包创建者扩展可能性。主要缺点是它与修改原版实体渲染器的模组(如Bedspreads)不兼容,而且还需要手动为某些第三方模组添加家具模型。如果你在配置较低的电脑上游玩、经常访问有很多床的大型基地或村庄,或者想在不损失性能的情况下安装精美的3D家具纹理,这款模组将非常适合你。
安装
一次典型安装大约 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.











