Axyon(织物)

Axyon(织物)

革新一切的性能引擎——唯独不改变您的游戏。

性能

Axyon

 

适用于现代 Minecraft 的性能优化模组

Axyon 通过消除无效工作来加快游戏速度。它不会改变游戏的外观或玩法。一条规则涵盖所有内容:

如果原版会渲染,Axyon 就会渲染。如果原版会模拟,Axyon 就会模拟。

不会缺少生物。不会破坏刷怪塔。不会降低画质。只是一个更快的游戏。

大多数性能优化模组只专注于一件事。Axyon 则做了几件事:它会自动让你使用新的 Vulkan 渲染器,并让自家地形引擎原生运行其上;缓存生物和箱子的模型,而不是每帧重建;跳过渲染被墙壁遮挡的物体;削减游戏大部分的内存垃圾;平滑区块加载时的卡顿;并提供工具让你准确了解帧数的变化情况。每个功能都在每个构建版本中与原版进行测试,以确保屏幕上的画面完全一致。

 


 

重头戏:Axyon 原生运行于 Vulkan

Minecraft 26.2 有一个新的 Vulkan 渲染器。在我们的测试中,它的运行速度约为 OpenGL 帧数的两倍,但游戏的“默认”设置仍然选择 OpenGL,所以大多数玩家从未体验过它。Axyon 在启动时解决了这个问题:如果你的渲染器设置为“默认”,Axyon 会将其切换到 Vulkan。如果你在视频设置中自行选择了渲染器,Axyon 绝不会改动它。更喜欢 OpenGL?在配置文件中设置 preferOpenGL=true 即可。

截至 0.7.6 版本,Axyon 的地形引擎不只是容忍 Vulkan — 它更是为其而构建的。地形绘制以 Vulkan 原生的间接形式提交:绘制命令驻留在 GPU 上,如果自上一帧以来没有任何变化,整个批次将通过单个调用重新发出,而不是重建。紧凑的 16 字节地形顶点(原版为 28 字节)也减少了 GPU 内存占用。

 


 

基准测试 — Axyon 对比原版,均在 Vulkan 下

六个测试场景,同一台电脑,相同的设置(渲染距离 16,无上限帧数),双方均使用 Vulkan 渲染器。每个数字都是在空闲机器上重复、确定性运行的中位数 — 测试场景中随机世界刻被冻结,以便运行可以精确复现,每次运行都会保存游戏自身的日志行,证明使用了哪个渲染器。如果场景渲染失败,基准测试将完全拒绝给出数字。

平均帧数 — Axyon 0.7.6,全部六个场景获胜:

 

场景 Axyon · Vulkan 原版 · Vulkan 领先
开阔地形 4,769 4,616 +153
600 生物群 722 427 +69%
洞穴地貌 5,159 5,104 +55
网格压力(玻璃/楼梯/树叶) 4,840 4,088 +752
最大视野 4,322 3,798 +524
区块加载飞行 4,725 4,349 +376

 

所有测量指标的综合得分(帧数、最低帧、帧时间方差、内存、GC):Axyon 96.3 — 原版 90.7。Axyon 在六个场景中的五个场景里拥有更好的最差帧时间 — 这才是你实际能感受到的帧。

Sodium 怎么样? Sodium 0.9.1 的 Vulkan 支持是新的实验性功能 — 在我们的测试中它没有绘制任何内容,因此目前无法进行公平的同渲染器比较(我们会在每个 Sodium 版本发布时重新测试)。对比 Sodium 在 OpenGL 下的最佳结果,Axyon-on-Vulkan 在每个场景中都大幅领先 — 但这部分归功于渲染器,这正是 Axyon 将你切换到它的原因。

实际应用检查 (同一基地,同一位置):切换到 Vulkan 将基准测试平均值从 552 帧提高到 1,048 帧 — 约为两倍。0.7.6 引擎在区块加载飞行场景中又额外增加了 +7% 的性能。

 


 

各部分功能详解

Vulkan 地形引擎 — 在 GPU 端以 Vulkan 原生的间接形式批处理地形绘制,并在帧间保持。只有真实事件(区块变化、设置更改)才会重建批次 — 绝不会因为时间流逝而重建。其每帧的簿记表通过递增一个计数器来重置,而不是被清空,因此像洞穴这样的小场景不会付出大场景的代价。这个引擎是上述所有场景都领先的原因。

生物渲染引擎 — 原版每帧都会从头开始、逐顶点地重建每个生物的模型。在生物群中,这约占所有 CPU 时间的 65%。Axyon 会保存每个静止生物模型一次,并在每帧一次性写回。移动或动画中的生物使用正常路径,所以外观永远不会出错。每个构建版本都会与原版进行逐字节测试,包括受伤闪烁和多层模型。结果:在 Vulkan 下,600 生物场景比原版提升 +69%。

箱子和告示牌缓存 — 对箱子、告示牌和横幅使用相同的技巧,外加一个额外优化:一个立方体有 24 个顶点,但只有 8 个角,因此 Axyon 对每个角进行一次计算,而不是对每个顶点。大型储藏室运行速度可达原版帧数的 2–4 倍。

区块更新节奏控制 (实验性,默认关闭 — uploadPacing) — 当一批区块到达时,单帧内可能发生多达 200 次网格重建;这一帧耗时过长就是即使在高速帧数下也能感觉到的卡顿。节奏控制限制了每帧接受的重建数量,让其余的重建等待一两帧。在区块加载飞行期间测得最差帧提升 25%。你自身的方块编辑始终豁免 — 破坏方块永远不会等待。

隐藏物体剔除 — 完全被实心方块密封的生物和箱子将停止绘制。它们会继续运行 — 刷怪塔和漏斗的工作方式与原版完全一致。检查在严格的时间预算内运行,任何不确定的内容都会被绘制。它只会倾向于绘制更多,绝不会更少。

内存清理 — 性能分析发现原版中产生大部分内存垃圾的几行代码:每帧为每个物品创建新的旋转对象;每刻为每个生物进行无意义的空列表复制;每个模型四边形产生五个一次性对象。Axyon 在每种情况下都重复使用一个对象。更少的垃圾意味着更少的 GC 暂停,也就意味着更少的微卡顿。实测结果:垃圾量减少一半以上,GC 暂停时间大致减半。

卡顿侦探 — 当帧数下降时,Axyon 会告诉你原因:GC 暂停、区块重建、粒子风暴、生物群、服务器延迟或内存压力。如果游戏中没有变化,它会如实说明,而不是凭空猜测原因。游戏流畅时保持安静。

基准测试模式 — 一个 30 秒的测试,带有固定的相机旋转,确保每次运行都公平可比。提供平均帧数、1% 和 0.1% 最低帧、方差和流畅度评级。会记住你在同一地点的上次运行并自动进行比较。

 


 

命令

命令 功能
/axyon benchmark 运行 30 秒基准测试并打印结果卡片。
/axyon lag-detector 显示最近的卡顿事件及其原因。
/axyon reload 无需重启即可重新加载 config/axyon.properties。

还有一个简洁的 F3 覆盖层:带有真实 10 分钟平均值的帧数、帧时间行(当前 + 平均,以毫秒为单位)、你的 1% 和 0.1% 最低帧、带有清晰标记的刻时间 TPS、稳定的 GPU 和 CPU 读数(滚动平均值,而非闪烁的快照)、内存、坐标、朝向、生物数量 — 以及在有事件发生时卡顿侦探的判定。

 


 

配置

所有内容都在 config/axyon.properties 中 — 首次运行时创建,带有完整注释,可通过 /axyon reload 实时应用。每个功能都有自己的开关。你可以调整剔除距离和时间预算,通过 preferOpenGL 选择渲染器,并黑名单任何不应被剔除的生物或方块类型。旧版本的设置会自动沿用。

 


 

画面永不改变

  • 渲染从不触及游戏逻辑。隐藏的漏斗移动物品,隐藏的生物以精确的原版时间成长 — 每个构建版本都通过自动化测试验证。
  • 屏幕上的内容与原版逐像素匹配。测试套件在每个构建版本中将 Axyon 缓存几何体与原版输出进行逐字节比较。唯一改变视觉效果的功能(树叶剔除)默认关闭,在我们发布的任何基准测试中也从未开启。
  • 如果另一个模组做了意外的事情,受影响的 Axyon 功能会安静地自行关闭,由原版接管。不会崩溃。
  • 仅客户端。可在任何服务器上使用。

与其他模组兼容

Axyon 会检测到 Sodium 并自动将整个地形系统交给它 — 无冲突。它会检测到 Iris,并通过可选的 Onyx Shaders 配套模组支持着色器阴影通道。如果某些模组与某个功能不兼容,可以单独关闭该功能。

关于数据

我们的基准测试会自我检查:场景已验证确实进行了渲染(空白场景拒绝产生数字),测试世界是确定性的,因此运行可以精确复现,结果是空闲机器上重复运行的中位数,每次运行都会保存其完整设置,所使用的渲染器由游戏自身日志证明 — 绝非假设。当结果让我们感到惊讶时,我们会重新测试后才相信它 — 包括让我们看起来更好的结果,以及让我们看起来更差的结果。完整的测试设置和原始结果随项目仓库一起提供。

这是 alpha 软件。如果发现任何异常,请报告 — 每个功能都可以单独关闭,同时你仍可继续游玩。

 

透明度声明:此模组完全由 AI(Anthropic 的 Claude)编码,作为一项实验 — 我不为代码揽功,只为每个版本背后的方向、测试和质量控制负责。