Skip to content

AlexSerodio/procedural-terrain-generation

Repository files navigation

Geração procedural de terrenos com aparência natural.

Este repositório disponibiliza uma ferramenta para geração procedural de terrenos com aparência natural desenvolvida na plataforma Unity. A ferramenta pode ser utilizada através de um executável para Windows 10 e um plugin para a Unity.

Terreno gerado de forma procedural

Funcionamento

A geração do terreno pode ser feita através de três operações disponibilizadas pelo menu esquerdo. Primeiro deve-se gerar o terreno base através do botão Gerar terreno. Em seguida o terreno base pode ser melhorado com o algoritmo de erosão térmica e erosão hidráulica através dos botões Aplicar erosão. As imagens abaixo demonstram um terreno gerado e melhorado pela erosão térmica e hidráulica, respectivamente.

Terreno gerado de forma procedural Terreno melhorado pela erosão térmica Terreno melhorado pela erosão hidráulica

Por padrão o terreno é texturizado por um mapa de altimetria no qual as regiões mais elevadas são coloridas de vermelho, decaindo para amarelo, verde e azul para as regiões mais baixas. Porém o mapa de altimetria pode ser substituído por um mapa de declividade através do dropdown no canto superior direito. O mapa de declividade colore as partes mais íngremes do terreno de roxo e o restante de verde, como visto nas imagens abaixo que mostram um mesmo terreno mapeado pelos dois mapas.

Mapa de altimetria do terreno Mapa de declividade do terreno

Além disso, também é possível exportar um terreno gerado pela ferramenta ou importar um terreno gerado externamente por outras ferramentas como por exemplo o terrain.party. Tanto a importação como a exportação utilizam imagens no padrão de heightmap.

Tela de importação e exportação de terrenos

Tratando-se do plugin para a Unity, todas as funcionalidades são as mesmas, porém são acessíveis a partir dos scripts contidos no prefab TerrainGenerator

Terreno gerado de forma procedural

A tabela abaixo apresenta cada um dos parâmetros modificáveis pelo menu do executável ou scripts do plugin. Porém destaca-se que tanto o executável como o plugin possuem explicações sobre cada um dos campos no formato de tooltips que aparecem ao posicionar o mouse em cima de cada campo.

Funcionalidades Parâmetros Utilidade
Gerar terreno Semente Utilizado como base para a função geradora de números aleatórios. A mesma semente sempre gerará o mesmo terreno
Erosão térmica Força Controla a quantidade de sedimento que será movimentado. Recomenda-se manter um valor próximo a 0,5
Erosão térmica Talus Controla a partir de qual inclinação o terreno sofrerá os efeitos da erosão. Quanto maior o valor, maior a inclinação necessária
Erosão térmica Iterações Quantidade de repetições da operação. Valores maiores que 100 não apresentam grandes mudanças
Erosão hidráulica Chuva Controla a quantidade de chuva sobre o terreno. Quanto maior, \nmais água será derramada na superfície do terreno
Erosão hidráulica Solubilidade Controla o fator de solubilidade da superfície. Quanto maior, \nmais sedimentos serão desprendidos e carregados pela água
Erosão hidráulica Evaporação Controla o fator de evaporação da água da chuva. Quanto maior, maior a quantidade de água evaporada ao final de cada iteração
Erosão hidráulica Iterações Quantidade de repetições da operação. Valores maiores que 100 não apresentam grandes mudanças

About

Geração procedural de terrenos com aparência natural.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages