Terra (Fabric/Forge/Paper)

Terra (Fabric/Forge/Paper)

74.2k Downloads

Allow specifying different noise equations for different Y-values within a biome.

dfsek opened this issue ยท 1 comments

commented

Rework the noise-equation key within biomes to allow specifying different noise equations for different heights. Also rename the key to generation
New configuration example:

generation:
  68: "((-((y / base)^2)) + 1) + |(noise2(x, z) / 3) + 0.1|"

Would use the equation ((-((y / base)^2)) + 1) + |(noise2(x, z) / 3) + 0.1| at Y=68 and below, otherwise would default to 0.

Noise values would still be lerped, allowing basic blending between different equations. Blending would not be as advanced as inter-biome blending.
The special constant top would be a valid key, specifying the highest point of the world.

This would specifically allow for significant performance boosts, especially with 1.17 around the corner, using configs such as:

generation:
  68: "((-((y / base)^2)) + 1) + |(noise2(x, z) / 3) + 0.1|"
  54: "1"

This configuration would only calculate noise for Y=54-68, and use the constants 0 or 1 for everything else. This would grant significant performance boosts, especially with 1.17's 384-block tall worlds.

When doing this, we should also make a simple pack conversion utility, that just removes the noise-equation line from configs it is present in, grabs the equation, and inserts

generation:
  top: <equation>

This utility would be very simple to make, and would make updating packs a super simple process.

commented

World gen glitches are normally good and often should stay.