二甲苯

二甲苯

一个小型优化模组,可以帮助提升你的FPS。效果不会特别巨大,但能明显感觉到。

优化

XyleneOptimal

可用功能!

更快的数学运算

Minecraft 会不断使用 sin() 和 cos() 数学函数(光照、渲染、实体移动等)。通常这些每次都会重新计算。Xylene 预先计算所有 65,536 种可能的结果并将它们存储在一个表中。当游戏需要 sin/cos 时,它会立即查找结果,而不是进行数学运算。

更快的数据存储

Minecraft 会将大量数据存储在称为 HashMap 的东西中(可以把它们想象成字典)。Xylene 将默认的 Java HashMap 替换为专门优化的版本,对于 Minecraft 使用的数据类型(NBT 数据、实体跟踪等)来说速度更快。

实体刻剔除

每个刻(每秒 20 次),Minecraft 都会更新每一个实体——僵尸、牛、物品展示框,所有东西。Xylene 会跳过更新距离任何玩家超过 48 格的实体。它们离得太远,你根本不会注意到。(Boss 和玩家永远不会被跳过。)

碰撞跳过

Minecraft 会不断检查实体是否与物体发生碰撞。Xylene 会跟踪实体是否实际移动过。如果它没有移动,就完全跳过碰撞检查——重新检查一个静止不动的东西没有意义。

更快的网络编码

当你的游戏与服务器通信时,数字会以一种称为 “VarInt” 的特殊格式进行编码。Xylene 用更快的手写版本替换了编码循环。

Xylene 设置

它会显示每个 Xylene 优化类别的所有开关,因此你可以单独打开/关闭各项优化。

以下功能仍处于测试阶段!(仅在测试版本中可用。)

刻插值

以任意帧率平滑实体/玩家在刻之间的运动。

异步区块网格构建

区块几何体在主线程之外编译。

着色器预热

GL 着色器在启动时预编译,以消除首次使用时的卡顿。

资源包异步加载

切换资源包不再使游戏冻结。

平滑光照缓存

AO 值会被缓存,仅在方块变化时重新计算。

人群模拟

为密集分布的实体简化寻路。

客户端预测平滑

混合掉服务器的小幅位置修正。

数据包处理节流

限制每帧处理数据包的时间,以保护渲染线程。

橡皮筋减少器

对小幅度服务器位置回弹进行插值;大幅度回弹仍会立即应用。

Ping 抖动缓冲

短缓冲,用于吸收短暂的 ping 峰值。

Xylene

什么是“已计划但未启用”

大约 40 多个其他 mixin 已注册,但目前是空占位符,例如漏斗优化、红石优化、光照改进、区块加载调整等。框架已经存在,但实际的优化代码尚未填入。它们会无害地加载,并且不会做任何事情。