实体LOD人群规模

实体LOD人群规模

让拥挤的《我的世界》场景变得更流畅,同时又不会让游戏变成幻灯片

性能

实体LOD:CrowdScale

CrowdScale 是一款客户端性能模组,专为场景中存在大量可见实体的情况设计,例如多人游戏中心、刷怪塔、交易大厅和拥挤的基地。

该模组通过可配置的细节层级、较低的更新频率、缓存的渲染状态,以及在支持版本上的实体2D(Entity 2D)表现,来减少远处实体的渲染工作量。附近的实体仍使用其正常的渲染器。

CrowdScale 不会改变实体的AI、生成、服务器刻、网络、世界数据或游戏规则。服务器端无需安装此模组。


所有支持版本均可用的功能

  • 基于距离的“完整”、“简化”、“远”和“极远”四个层级
  • 可配置的远处实体更新频率
  • 带逐帧位置插值的缓存渲染状态
  • 固定和自适应LOD模式
  • 质量(Quality)、均衡(Balanced)、性能(Performance)和自定义(Custom)预设
  • 对玩家和游戏相关实体的保护
  • 保留村民职业和装备层
  • 保留羊毛(羊身上的)
  • 对未知或模组渲染器采用保守回退
  • 游戏内配置和诊断工具
  • 内置平均FPS和1%低帧率对比

玩家始终以完整细节渲染。CrowdScale 不会缓存、限制或转换本地或远程玩家,因此他们的移动、盔甲、手持物品和功能层始终走正常渲染路径。

Minecraft 26.x 上的实体2D

Minecraft 26.1.2 和 26.2 版本包含 CrowdScale 完整的实体2D管线,适用于原版生物实体:

  • 面向摄像头的扁平化模型
  • 多角度模型捕捉
  • 有界动态纹理图集
  • 在支持的地方使用四顶点四边形广告板(quad impostors)
  • 在四边形边界前平滑过渡
  • 按组和按实体的开始距离
  • 可配置的视角和低帧率动画帧数
  • 当图集捕捉不可用时自动回退

实体2D保持直立并水平旋转朝向摄像头位置。实体的身体方向、头部方向和俯仰角与玩家的摄像头方向分开处理。

被动、敌对、环境、水生、村民、傀儡、Boss以及其他原版生物实体类别均符合条件。特殊或不支持的渲染状态会回退到扁平化模型路径,而不会消失。

投射物、载具、掉落物和非生物的装饰性实体不在实体2D生物管线范围内。

重要视觉层

以下实体被视为具有重要视觉层:

  • 村民和流浪商人
  • 穿着盔甲或戴着头盔物品的生物
  • 手持物品的生物
  • 装备了物品的盔甲架

当启用 保留职业和装备层 时,这些实体在实体2D前后都会保留其职业、盔甲、头盔物品和手持物品层。它们会绕过仅基础模型的四边形广告板,使用分层的扁平化回退。

没有重要层的普通生物仍可使用四边形广告板。此选项默认启用,并且不会随预设更改。

Minecraft 1.21.11

0.3.1 版本系列使用 CrowdScale 较早的“简化”和“远”渲染架构。它不包含更新的实体2D、纹理图集或四边形广告板系统。

重要视觉层已移植到此版本,因此当实体使用其“简化”或“远”层级时,村民职业、盔甲、头盔物品和手持物品仍然可见。

预设

预设 行为
质量 在更远的距离保持完整的3D模型可见
均衡 适用于正常游戏的通用设置
性能 使用更短的3D距离;在26.x版本上,符合条件的实体2D可在5格处开始
自定义 将距离设置保留在手动控制下

LOD距离独立存储。CrowdScale 不会将手动输入的距离重写为强制顺序;重叠范围在运行时会被安全解析。

在 Minecraft 26.x 上,实体2D和按组起始距离可在 1 到 2048 格之间配置。

配置

Fabric 用户可以通过以下方式打开设置:

模组菜单 → 实体LOD:CrowdScale

在 Minecraft 26.1.2 和 26.2 上,安装了 Sodium 的 Fabric 用户也可以在游戏自带的视频设置中直接看到设置,并使用 Sodium 的开关和滑块:

选项 → 视频设置 → 实体LOD:CrowdScale

这涵盖了常规、LOD距离、实体2D、实体组和性能,无需其他模组,并与 Reese's Sodium Options 兼容。如果安装了 Cloth Config,额外的 高级与预设 条目将打开包含距离预设、按实体覆盖和诊断功能的完整界面。

Forge 和 NeoForge 用户可以从加载器的模组列表打开设置。

根据 Minecraft 版本不同,配置界面可能包含:

  • 常规
  • LOD距离
  • 实体2D
  • 实体组
  • 性能
  • 兼容性
  • 诊断
  • 预设

大多数设置无需重启 Minecraft 即可更改。

按键绑定

按键 功能
F7 启用或禁用 CrowdScale
F8 显示或隐藏诊断HUD
F9 重置基准测试样本

诊断HUD会报告活动的LOD层级、缓存活动、帧时间、平均FPS和1%低FPS。Minecraft 26.x 版本还会报告实体2D、四边形、捕捉和图集活动。

兼容性方案

CrowdScale 避免对可选渲染模组的私有API产生硬依赖。未知渲染器使用保守的回退,除非专门的 CrowdScale 适配器明确将它们纳入更强的LOD路径。

模组或系统 当前方案
Sodium 主要的优化渲染基线;在 Fabric 26.x 上,它还通过 Sodium 的公共配置API在视频设置中托管 CrowdScale 设置页面
Iris / 光影包 检测着色器和阴影通道;当光影包激活时,默认禁用四边形广告板
Voxy 地形LOD与实体LOD保持分离
Distant Horizons 地形LOD与实体LOD保持分离
Nvidium 保持在 CrowdScale 实体渲染钩子之外
实体剔除 可以在 CrowdScale 进行远距离渲染工作之前剔除隐藏实体
More Culling 使用独立的方块和模型剔除职责
ImmediatelyFast 使用独立的批处理和GUI优化职责

这些是兼容性目标,并不保证所有组合都能完美运行。行为可能因 Minecraft 版本、加载器、GPU、光影包、资源包、服务器资源包以及其他已安装的模组而异。

光影包支持默认使用安全的回退。带光影的四边形广告板仍是实验性的,需要手动开启。在启用前,应使用确切的光影包检查深度、透明度、光照和阴影。

自定义生物、自定义盔甲架模型、自发光层、动画资源包模型和渲染器特定效果可能需要专门的适配器,或者可能需要保持在保守的渲染路径上。

支持的版本

Minecraft Fabric NeoForge Forge
1.21.11 0.3.1 0.3.1 0.3.1
26.1.2 0.7.3 0.5.5 0.5.5
26.2 0.7.3 0.5.5 0.5.5

请安装与你的 Minecraft 版本和模组加载器都匹配的文件。一个游戏实例中应只存在一个 CrowdScale 加载器变体。

安装

  1. 安装匹配的 Fabric、Forge 或 NeoForge 加载器。
  2. Fabric 用户必须安装 Fabric API。
  3. 将匹配的 CrowdScale JAR 文件放入游戏实例的 mods 文件夹中。
  4. Fabric 用户可以选择安装 Mod Menu 和 Cloth Config,以便更方便地访问游戏内配置界面。

CrowdScale 是客户端模组,不需要服务器端安装。

测量性能

为了进行有效的比较,请保持世界、摄像头位置、可见实体数量、渲染距离、光影设置和FPS上限不变:

  1. 按 F9 清除之前的样本。
  2. 在启用 CrowdScale 的情况下收集至少 600 帧。
  3. 在不移动摄像头的情况下按 F7。
  4. 在禁用 CrowdScale 的情况下再收集 600 帧。
  5. 按 F8 并比较平均FPS和1%低FPS。

FPS上限或垂直同步(VSync)可能会掩盖平均FPS的变化。结果取决于可见实体的数量和类型、CPU、GPU、光影包、渲染距离以及整合包的其他部分。CrowdScale 旨在处理实体密集的场景,并不保证在所有情况下都能提升性能。

当前限制

  • 职业和装备层通过扁平化回退保留,而非烘焙到四边形图集。
  • 自发光、动画、透明、多部件和渲染器特定效果可能不适合图集捕捉。
  • 带光影包的四边形广告板是实验性的,默认禁用。
  • 模组实体渲染器和自定义服务器资源包模型可能保持在保守的LOD路径上。
  • 构建和单元测试验证并不能证明与每个光影包、资源包或整合包兼容。

报告问题

请包含:

  • Minecraft 版本
  • 模组加载器和 CrowdScale 版本
  • 渲染和性能相关模组
  • 如有启用,提供光影包和资源包
  • config/entitylod_crowdscale.json
  • 一张 F8 诊断截图
  • 对于视觉问题,提供受影响实体的截图

许可证

实体LOD:CrowdScale 在 MIT 许可证 下提供。