Modding:WorldGen Configuration: Difference between revisions
Line 36: | Line 36: | ||
<code> | <code> | ||
terrainOctaves: [1, 1, 1, 0, 0, 0, 1, 0, 0, 0], | terrainOctaves: [1, 1, 1, 0, 0, 0, 1, 0, 0, 0],<br> | ||
terrainOctaveThresholds: [0, 0, 0, 0, 0, 0, 0.7, 0, 0, 0], | terrainOctaveThresholds: [0, 0, 0, 0, 0, 0, 0.7, 0, 0, 0], | ||
</code> | </code> | ||
This causes the 7th octave to be only active 30% of the time, as most of it is substracted away. | |||
== Y-Thresholds == | == Y-Thresholds == |
Revision as of 16:27, 9 September 2017
Sample landform
{ code: "landforms", "variants": [ { "code": "humongous mountain", "comment": "humongous mountains with caverns in them", "hexcolor": "#5BC184", "weight": 2, "useClimateMap": false, "terrainOctaves": [0, 0, 0, 0, 1, 1, 1, 1, 0.6, 0.2], "terrainOctaveThresholds": [0, 0, 0, 0, 0.5, 0, 0, 0, 0, 0], "terrainYKeyPositions": [0, 0.33, 0.37, 0.42, 0.43, 0.5, 0.6, 0.7, 0.9, 0.97, 1], "terrainYKeyThresholds": [1, 1, 0.87, 0.84, 0.7, 0.94, 1, 1, 0.1, 0.05, 0] }, ] }
There are 2 system at work that let you control the shape of the terrain - the octaves and the Y-Thresholds.
Octaves
If you know perlin noise, you will know what this is, but shortly explained low octaves will give you very smooth terrain whereas high octave give you rugged/chaotic terrain. You can mix an match freely between those. Examples:
terrainOctaves: [1, 0, 0, 0, 0, 0, 0, 0, 0, 0]
would give you veeeery gradually changing terrainterrainOctaves: [0, 0, 0, 0, 0, 0, 0, 0, 1, 1]
would give you veeeery rugged and chaotic terrain
Octave Thresholds
These act as substractor to the octaves. This allows you for example to generate a flat terrain with a few rare bumps by it, by setting something like this:
terrainOctaves: [1, 1, 1, 0, 0, 0, 1, 0, 0, 0],
terrainOctaveThresholds: [0, 0, 0, 0, 0, 0, 0.7, 0, 0, 0],
This causes the 7th octave to be only active 30% of the time, as most of it is substracted away.
Y-Thresholds
Image you had a side view of a mountain and you could make it wider and thinner at any given elevation. This is approximately how the y-threshold system works. terrainYKeyPositions are the relative (0=bottom, 1=top of the world) coordinates and terrainYKeyThresholds define how much Percent of terrain should be solid blocks (0 = always air, 1 = always solid), or in other words it's density. We could also make a graph of this:
In this example at maximum world height the density is 0, so there will always be air blocks. In the middle we have a jump where the y-position changes, but not the density, so this will create cliffs in the mountain. On the lower end the opposite happens. The Y-Position changes very little but it's density increases a lot. If that position happens to be at the sealevel we would get flat beaches. The default sealevel y-position is 0.43 And below a certain y-position the density is always 1. If we would set that to a lower value, we would get very deep lakes.