Pulsar Lighting Engine

Pulsar Lighting Engine

将星光光照引擎引入CleanroomLoader

性能

脉冲星光照引擎

脉冲星(Pulsar)是一款面向 Cleanroom 上 Minecraft 1.12.2 的实验性异步光照引擎。它用受星光(Starlight)启发的实现取代了原版的方块光照和天空光照,将大部分光照传播工作从服务器线程中移出。

为了让脉冲星更容易被整合进整合包中,它现在除了 GitHub Releases 之外,也可在 CurseForge 上获取。

脉冲星改进之处

  • 在专用的工作线程上运行服务端的方块光照和天空光照传播。
  • 批量处理大组的方块更改,而不是单独对每次编辑进行光照计算。
  • 将完成的光照数据与区块一起保存,避免每次加载时都进行完全重新光照。
  • 写入正常的 Minecraft 光照数据,因此移除脉冲星不会将世界锁定在自定义的存档格式中。
  • 修复了原版中关于台阶、楼梯和发光方块的几个渲染问题,包括:
  • 通过其“深度更新”(Depths Update)集成,支持扩展至Y=0以下或Y=255以上的维度。

脉冲星修复的问题

前置要求

兼容性

脉冲星应与大多数使用 Minecraft 常规区块和世界 API 的生物群系、洞穴、世界生成和维度模组兼容。未列出的组合不保证兼容,请报告任何可复现的光照问题。

支持的集成

不兼容或不支持

  • Alfheim
  • Phosphor for Forge
  • Hesperus
  • 任何其他替换或重写光照引擎的模组
  • 标准版的《天境 II》(The Aether II),它捆绑了 Phosphor;请改用 The Aether II: Phosphor Not Included
  • CubicChunks,它使用不同的世界存储模型

OptiFine 未经测试,不建议与脉冲星一同使用。

性能

在受控的 Lightbench 测试中,脉冲星在所有四种测得的方块编辑工作负载中,均记录了最低的服务端光照完成延迟。在另一次全新的世界生成测试中,它比原版提前 13.5% 完成工作负载,整体表现与 Alfheim 大致相当。

这些结果特定于测试机器和工作负载,并不代表 FPS、TPS 或整体游戏性能的等效改进。

光照更新基准测试

光更新完成延迟基准测试,比较了原版、Alfheim 和脉冲星。数值越低越好,脉冲星在所有四个测得的工作负载中均记录了最低延迟。

每次编辑均测量至服务端光照完成为止。

圆圈代表原版,菱形代表 Alfheim,方块代表脉冲星。水平线显示三次独立 Minecraft 重启中的最快至最慢结果。

查看完整尺寸的光照更新图表。

新区块生成基准测试

新区块生成基准测试,比较原版、Alfheim 和脉冲星。条形图显示三次运行的中位数,水平线显示测量范围。数值越低越好。

脉冲星在测试系统上完成 10,404 个区块的工作负载,中位时间为 48.831 秒,而原版为 56.461 秒:耗时减少了 13.5%。

Alfheim 完成时间为 49.615 秒,其测量范围与脉冲星重叠,因此两者在此工作负载中应视为大致相当。

彩色条形图显示中位总时间。水平线显示三次独立 Minecraft 启动中的最快至最慢结果。

此测试包括地形生成和光照,并非纯粹的光照传播基准测试。

查看完整尺寸的区块生成图表。

在 GitHub 上查看完整方法、各次运行、限制和原始数据。

致谢

  • 星光(Starlight),作者 Spottedleaf,脉冲星所基于的架构和核心算法
  • SuperNova,作者 GTNewHorizons,一个 Minecraft 1.7.10 版本的 Starlight 移植版,作为脉冲星早期版本的基础
  • Alfheim,作者 Red Studio,作为修复 MC-92 的参考
  • CleanroomModTemplate,作者 CleanroomMC