2. Escala, amplitude, offset e semente

Os quatro botões que você vai girar em qualquer motor.

A função de ruído é sempre a mesma. O que muda o resultado é como você chama a função. A linha de código abaixo se atualiza com os controles.

O que cada um faz

ParâmetroOnde entraEfeito visualNome em outros lugares
escalamultiplica a coordenada de entradaescala pequena = manchas grandes e suaves; escala grande = detalhe miúdofrequência, zoom (o inverso), noise scale
amplitudemultiplica a saídacontraste; em terreno, altura máximamaxHeight, heightMultiplier
offsetsoma à coordenada de entrada"anda" pelo campo de ruído; offset aleatório = mapa diferenteorigem, sampleOffset
sementeescolhe a tabela de permutação (os gradientes)campo de ruído completamente diferenteseed; no Unity não existe: usa-se offset aleatório no lugar
A armadilha da coordenada inteira. Ligue "amostrar só inteiros" no painel. O mapa vira cinza uniforme. Em todo nó inteiro o Perlin vale zero, e se você passa (x, y) do grid direto, sem multiplicar por uma escala fracionária, só amostra nós. É o bug número um de quem começa: Mathf.PerlinNoise(x, y) com x e y inteiros.

Faixa de saída

O algoritmo devolve algo entre −1 e 1 (e raramente chega nos extremos). Cada motor entrega isso de um jeito:

FerramentaFaixaPara levar a 0..1
Unity Mathf.PerlinNoise≈ 0..1 (já remapeado)nada
Godot FastNoiseLite.get_noise_2d−1..1n * 0.5 + 0.5
libnoise, a maioria das libs−1..1n * 0.5 + 0.5

Se você somar oitavas (demo 3) a faixa cresce. Sempre saiba em que faixa está antes de usar o valor como altura, cor ou probabilidade.

Determinismo. Clique em "redesenhar" quantas vezes quiser: o mapa não muda. O mundo inteiro pode ser reconstruído a partir de (semente, offset, escala). É isso que permite chunks que somem e voltam iguais, itens que não voltam depois de coletados e mapas compartilháveis por um número.