介绍
Noise Boost
Noise Boost 是一款用于优化 Minecraft 地图生成性能的模组,也是 FastNoise 的分支版本。
它进一步优化了噪声填充、生物群系生成、含水层计算、区块调色板写入和高度图处理。该模组不包含配置文件——安装后即可生效。
在使用相同整合包、沿相同路线探索且测试条件相近的情况下,与 FastNoise 相比,Noise Boost 的地图生成性能约提升 15%。
主要特性
- 重写噪声区块填充的核心路径,直接执行插值、方块写入、流体后处理和高度图更新,减少冗余调用与对象分配。
- 为
PerlinNoise预先构建有效的倍频执行计划,仅遍历实际存在的倍频,并使用固定的基本类型数组存储振幅和频率因子。 - 重复使用密度函数临时数组,并严格限制其深度和长度,以减少短生命周期垃圾对象。
- 缓存含水层候选位置、坐标和距离;沿单一坐标轴相邻方块发生变化时,增量更新距离平方,避免每次调用都进行完整的三轴距离计算。
- 延迟计算并重复使用同一方块内的屏障噪声结果;从含水层核心路径中移除回调对象和冗余的绝对值计算。
- 为原版默认距离度量提供无需分配对象的
Climate.RTree搜索内核,同时保留原有子节点顺序和严格比较规则。 - 优化生物群系调色板构建、区块分区写入、材质规则遍历和高度图处理。
- 噪声插值完成后,及时释放临时数组和含水层缓存。
性能说明
当前基准测试结果显示,Noise Boost 的速度比 FastNoise 约快 15%。实际提升幅度可能因以下因素而异:
- CPU 架构和可用线程数;
- JVM、堆内存和垃圾回收器设置;
- 地图种子、维度和地形生成器;
- 渲染距离、预生成范围和探索路线;
- 整合包中的其他生物群系、结构和地图生成模组。
因此,15% 是基于当前测试环境得出的参考值,并不保证所有配置都能获得相同幅度的性能提升。
内存与生命周期修复
Noise Boost 修复了 FastNoise 衍生实现中发现的疑似内存泄漏或对象滞留问题:
- 插值完成后,清除
NoiseChunk使用的临时密度计算数组中的对象引用; - 区块噪声生成完成后,释放含水层候选位置、候选坐标、候选距离以及临时屏障噪声缓存;
- 为可重复使用的数组设置严格的深度和长度上限,防止其无限增长;
- 每次查询后清除
Climate.RTree中线程本地搜索状态的叶节点引用,避免长期滞留属于地图的对象; PerlinNoise中的倍频执行计划仅由对应的噪声实例持有,不会建立静态对象引用链;- 不使用会永久持有区块、
NoiseChunk或含水层对象的 WorkerThreadLocal缓存。
这些更改主要防止临时世界生成数据被无意中保留。此处的“内存泄漏修复”特指已识别的潜在保留路径,并不保证解决由其他模组或 JVM 本身引起的所有内存问题。
来源与致谢
Noise Boost 基于 ZenXArch 的 FastNoise 开发。感谢 FastNoise 的原作者为世界生成优化提供了基础。
常见问题
Noise Boost 支持哪些 Minecraft 版本?
Noise Boost 支持 Minecraft Java 版 1.19.2–1.21.1,共 3 个版本,可用的加载器:Forge / NeoForge。下载时注意选择和你游戏版本一致的文件。
Noise Boost 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Forge / NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。
TheFlareStar 的其他作品
查看全部 →Optimization of Campfire Smoke
优化原版营火的烟雾粒子效果
Citadel Fix
这个模组修复了 Citadel 启动时拉取赞助商名单导致的卡顿,并优化了启动速度。
Toms Storage Star Optimized
Tom的存储的轻量优化模组。
Shipwreck Fix
这个模组修复了1.19.2/1.20.1中沉船群组(MC-249136)的漏洞,避免其长时间卡顿。

评论
登录后评论和评分