Estou aprendendo e desenvolvendo com geração de terreno usando duas coisas simples e poderosas: funções senoidais e Perlin Noise.
A senoidal uso como “estrutura base”: ela cria ondas grandes e suaves, tipo colinas e vales. Regiões mais altas, mais baixas, transições previsíveis. É matemática pura: sin(x) + sin(z) já te dá uma paisagem básica.
Por cima disso eu jogo Perlin Noise, que é um tipo de ruído gradiente, criado pelo Ken Perlin nos anos 80. A graça dele é que, diferente de um ruído aleatório comum, ele muda suavemente, criando padrões naturais: montes, erosões, irregularidades — tudo com “cara de natureza”.
O pipeline é basicamente:
height = baseSine(x, z)
+ perlin(x * freqLow)*ampLow
+ perlin(x * freqHigh)*ampHigh
a senoidal define o terreno macro
o Perlin de baixa frequência cria grandes formas orgânicas
o Perlin de alta frequência adiciona detalhes finos
O resultado final é um terreno que parece natural, mas nasce 100% de matemática e ruído controlado. Zero heightmap externo, zero modelos prontos: só funções.