1. Ruído aleatório vs ruído coerente
O que muda quando vizinhos passam a se parecer.
Em 2D: chuvisco vs nuvem
Os dois mapas abaixo usam a mesma semente e a mesma quantidade de "informação aleatória". A diferença é só uma: à direita, cada ponto é parecido com o vizinho.
hash(x, y) por pixelperlin(x·escala, y·escala)Ruído branco não tem "escala": qualquer zoom mostra chuvisco. No coerente, a escala escolhe o tamanho das manchas.
Em 1D: uma linha por vez
Em 1D fica mais fácil ver como o coerente é construído. A entrada é um número x; a saída é um número.
Os pontos pretos são os nós: coordenadas inteiras onde o valor aleatório mora. Entre eles, a curva é calculada, não sorteada.
- Mesma entrada, mesma saída. A função é determinística. Arraste o slider de semente e volte: a curva volta igual.
- Pequena mudança na entrada, pequena mudança na saída. Mova o ponto laranja: o valor muda suavemente. No ruído branco ele pula.
- Mudança grande na entrada, saída aparentemente sem relação. Dois nós distantes não têm nada a ver um com o outro.
O que "coerente" quer dizer na prática
Se você usar Random.Range para a altura de cada ponto do terreno, obtém o mapa da esquerda: impossível de andar, sem colinas, sem vales.
Com ruído coerente, cada valor depende dos vizinhos e o terreno nasce contínuo. O resto da aula é sobre como controlar o resultado (demos 2 a 6). Como o ruído é construído por dentro fica na demo 7, opcional.