Rentities

Rentities

一个重写《我的世界》实体渲染的模组

优化

我正在开发一个名为 Voxelium 的新模组,所以暂时没有时间修复 Rentities 的漏洞。请耐心等待——它将会是一款非常出色的作品。

Rentities — GPU 实例化实体渲染

Minecraft 1.21.11 | Fabric | 需要 Sodium

⚠️ Alpha 版本 — 概念验证发布 这是首次公开发布。核心渲染系统能够工作并带来实际的性能提升,但已知存在一些视觉问题,将在未来更新中修复。请勿在没有备份的重要世界中使用。


功能简介

原版 Minecraft 会为屏幕上每个实体向 GPU 发出单独的绘制调用。500 头牛意味着 500 次绘制调用。Rentities 拦截实体渲染循环,将所有相同类型的实体批量合并为 一次实例化 GPU 绘制调用,通过着色器存储缓冲对象(SSBO)上传位置、旋转和动画状态。所有逐骨骼动画均在自定义 GLSL 顶点着色器中计算——CPU 完全不参与动画工作。


性能测试

RTX 5070 · Minecraft 1.21.11 · Sodium 0.8.6 · Lithium · 渲染距离 20 · 视野内约 3000 个实体

设置 平均帧率 1% 最低帧率
Sodium + Lithium 122 70
Sodium + Lithium + Rentities 311 145

平均帧率提升 +155%。1% 最低帧率提升 +107%。

Rentities 与 Lithium 相辅相成——Lithium 降低 CPU 服务端刻开销,Rentities 减少 GPU 绘制调用开销。两者结合效果叠加。


系统要求

  • NVIDIA GPU(GTX 10 系列或更新)
  • Fabric Loader 0.17.2+
  • Sodium 0.8.6
  • Minecraft 1.21.11

可独立运行。不强制要求 Nvidium,但两个模组兼容并可叠加使用。


游戏内设置

Sodium → 视频设置 → Rentities

选项 功能说明
GPU 实体批处理 主开关。立即生效,无需重新加入世界
实体扫描模式 开启 = 提取并保存网格到磁盘。关闭 = 从已保存的缓存加载。更改后需重新加入世界
网格缓存 显示磁盘上是否存在缓存文件
删除网格缓存 清除缓存,以便下次加载世界时重建

已知问题 — 将会修复

这是概念验证版本。以下问题已知且正在积极修复中:

盔甲架渲染 盔甲架始终朝一个固定方向渲染,无论它们在世界中的放置或旋转方式如何。通过 /data 命令设置的姿势数据(倾斜的手臂、弯曲的腿、自定义姿势)完全被忽略——它们始终显示为默认站立姿势。这是当前姿势提取系统的已知限制。

实体朝向 某些实体的朝向与世界中的实际观察方向不符。当禁用 Rentities 并使用原始渲染时,同一实体可能朝向不同方向。这是一个正在调查的偏航/旋转计算错误。

动画为近似效果 行走循环、闲置动画和肢体运动能够工作,但与原版并非完全一致。部分实体的肢体运动方式与原始渲染器相比略有偏差。完整还原原版动画精度是未来计划改进的目标。

纹理方向问题 在某些实体类型上,纹理出现镜像、翻转或应用到模型部件错误侧的情况。这是网格提取管线中的 UV 坐标问题。

头部偏移 某些实体类型的头部相对于身体的位置出现轻微旋转或偏移。

未扫描实体显示为品红色方块 任何在网格缓存构建时未出现的实体类型,将显示为旋转的品红色占位方块。启用扫描模式并重新加入包含这些实体的世界即可修复。

不支持 Iris/着色器 当 Iris 等着色器模组激活时,由 Rentities 渲染的实体显示为无光照且扁平的。目前在使用着色器时请禁用 Rentities。

尚不支持 AMD 和 Intel GPU 该模组会检测 NVIDIA 显卡,并在其他品牌上自动禁用。计划支持 AMD/Intel。


计划功能

  • 修复盔甲架姿势读取
  • 修复实体朝向
  • 原版精度动画
  • 修复纹理 UV 方向问题
  • 使用 GPU 侧视锥剔除的间接绘制调用
  • 完全跳过批量实体的原始渲染状态分配
  • 玩家皮肤渲染
  • AMD 和 Intel 支持
  • Iris 兼容性

常见问题

没有 Nvidium 也能工作吗? 是的,完全独立运行。

能和 Nvidium 一起使用吗? 可以,两者兼容。Nvidium 处理地形,Rentities 处理实体。

为什么在设置中切换批处理开关能立即生效? 渲染器在运行时创建和销毁,无需重新加载世界。

为什么目前仅支持 NVIDIA? AMD/Intel 支持即将到来。渲染代码本身使用标准 OpenGL 4.5——此限制是暂时的,待稳定性确认后解除。


支持开发

Rentities 是免费开源的。如果它提升了你的性能且你希望支持持续开发:

→ Patreon

并非强制——享受它并分享它就已经足够了。


趣味事实

Rentities 这个名称来源于 Re + Entities——暗示整个实体渲染管线被从头重写。它听起来也像是 "re-entities"(重实体化),这正是此模组的作用:获取原始实体并赋予它们完全不同的渲染路径。

处理所有 21 种动画类别的核心顶点着色器拥有 500 多行 GLSL 代码,完全在你的 GPU 上运行。你的 CPU 对这些僵尸如何移动一无所知。


MIT 许可证 · BalancingLight · Minecraft 1.21.11