跳到正文

Noise Boost

作者:TheFlareStar

优化噪声生成,显著提升加载速度。

收藏

介绍

介绍由机器翻译自 CurseForge 原页面,仅供参考。

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 或含水层对象的 Worker ThreadLocal 缓存。

这些更改主要防止临时世界生成数据被无意中保留。此处的“内存泄漏修复”特指已识别的潜在保留路径,并不保证解决由其他模组或 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 的其他作品

查看全部 →