mojira.dev
MC-239790

Multi noise and terrain shape sample noises at 1/4 the scale

The Bug

For the terrain shape and biome placment the 5 noises "continentalness", "erosion", "ridge" (aka weirdness), "temperature, and "vegetation" (aka humidity) are used at 4 times the scaling than other noises are used (i.e. for noise caves and the surface rules).

Why is this relevant?

  1. The firstOctave setting of the noises has inconsistent effects depending on where the noise is used - if it is used as part of the multi noise biome placement the firstOctave is de facto reduced by 2

  2. When using the same noise in different places - i.e. using the continentalness noise in a surface rule - the noise values do not match.

How to Reproduce

The attached datapack uses a surface rule with a noise_threshold directly referencing the continentalness. The expected result would be red concrete at all land positions and stone in the oceans.

  1. Create a new world in creative mode with the attached datapack (and seed 3)

  2. /execute in minecraft:overworld run tp @s 0.50 400.00 0.50 0.0 90.00
  3. Increase the render distance as needed

  4. Notice that the stone pattern matches the water pattern at a different scale

    [media]

This shows that the surface rule and multi-noise system sample the noise at different scales.

Detailed description of the datapack:

  1. The firstOctave of the contientalness is set to -5 in order to be able to see enough of the noise on one screen

  2. Biome placement is set to only plains

  3. The surface rule is replaced by:

    "surface_rule": {
            "sequence": [
                {
                    "if_true": {
                        "noise": "minecraft:continentalness",
                        "min_threshold": -0.19,
                        "max_threshold": 5.0,
                        "type": "minecraft:noise_threshold"
                    },
                    "then_run": {
                        "result_state": {
                            "Name": "minecraft:red_concrete"
                        },
                        "type": "minecraft:block"
                    },
                    "type": "minecraft:condition"
                }
            ],
            "type": "minecraft:sequence"
        },

The datapack thus places red concrete anywhere that the continentalness is larger than -0.19. This matches the continentalness value that causes the terrain shaper to generate above water terrain. Therefore we would expect the red concrete placement to match the above water terrain.

Attachments

Comments 2

Can confirm in 21w44a

jacobsjo

(Unassigned)

Unconfirmed

(Unassigned)

custom-worldgen, worldgen

21w42a, 21w43a, 21w44a

Retrieved