Informações Principais
     Resumo
     Abstract
     Introdução
     Conclusão
     Download
  
  
  
 
Conclusão
 
 
Acadêmico(a): Alex Seródio Gonçalves
Título:  Geração procedural de terrenos virtuais com aparência natural utilizando gpu 
 
Conclusão:
Este trabalho apresentou o desenvolvimento de uma ferramenta para geração de terrenos com aparência natural
utilizando programação em GPU. Os principais algoritmos utilizados durante o processo foram o diamond-square para
geração do terreno base e erosão térmica e erosão hidráulica para melhorar a naturalidade do terreno. Os algoritmos de
erosão foram adaptados para GPU a partir das versões desenvolvidas por Diegoli Neto (2017), enquanto o diamondsquare foi baseado na versão original de Fournier, Fussell e Carpenter (1982). Além da geração de terrenos, este trabalho
também analisou a aplicabilidade de métricas para avaliar a naturalidade dos terrenos gerados em comparação com
terrenos reais, com as métricas utilizadas sendo o erosion score (OLSEN, 2004) e a lei de Benford (BENFORD, 1938).
O desenvolvimento da ferramenta foi realizado com o motor gráfico Unity nas linguagens de programação C#
para estruturação geral da ferramenta e implementação dos algoritmos em CPU, e HLSL para implementação dos compute
shaders executados em GPU. O objetivo geral de disponibilizar uma ferramenta para geração de terrenos com aparência
natural utilizando GPU foi alcançado, porém com limitações referentes à naturalidade dos terrenos gerados, com o
executável da ferramenta para desktop e o plugin para a Unity estando disponíveis para download no repositório de
Gonçalves (2020). O uso da Unity proporcionou uma maior facilidade no desenvolvimento de aspectos gerais da
ferramenta, como interface gráfica e interação entre algoritmos e componentes gráficos. De forma complementar, o uso
de compute shaders para execução dos algoritmos com maior custo computacional possibilitou uma alta performance da
ferramenta, algo que a Unity sozinha (sem uso de GPU) não conseguiu proporcionar em trabalhos anteriores, como
concluiu Diegoli Neto (2017, p. 57).
Em relação aos aspectos de performance da ferramenta, as versões em GPU dos três algoritmos alcançaram os
objetivos desejados, sendo mais eficientes que suas versões em CPU. Considerando as versões em GPU, o diamondsquare teve o menor tempo de execução, com duração máxima de 26 milissegundos (Tabela 1). Seguido do erosão térmica
com 64 milissegundos (Tabela 2) e o erosão hidráulica com 391 milissegundos (Tabela 3). Portanto, mesmo ao considerar
uma execução sequencial dos três algoritmos, o tempo total ainda seria menor que um segundo (desconsiderando o tempo
de renderização do terreno). Considerando que uma única execução do erosão térmica sozinho em CPU pode levar até
180.006 milissegundos, ou aproximadamente 3 minutos (Tabela 2), o ganho alcançado com os algoritmos em GPU se
mostrou significativo.
As métricas de naturalidade utilizadas mostraram-se adequadas para as análises realizadas dos terrenos gerados,
porém como ainda não são métricas consolidadas, serão necessários mais estudos acerca de sua viabilidade neste cenário.
Acredita-se que ambas o erosion score e lei de Benford foram adequadas principalmente devido ao fato de terrenos reais
terem sido usados como base para determinar quais seriam os valores desejados para os terrenos gerados. Ao aplicar a lei
de Benford em terrenos reais, seu comportamento correspondeu quase que perfeitamente ao esperado, o que indica que a
lei se aplica corretamente a terrenos. O erosion score, por outro lado, não havia sido aplicado a terrenos reais até então e,
portanto, não possuía um “valor ideal” que pudesse ser utilizado como base, o que torna sua viabilidade mais duvidosa.
Porém ao analisar a correlação entre o erosion score e lei de Benford observa-se que em todos os casos em que a lei de
Benford aumenta, o erosion score também aumenta. Seguindo este padrão, em um caso como o do erosão térmica, que
provocou diminuição no erosion score (demonstrado na Tabela 4), esperava-se que a lei de Benford também diminuísse,
porém nesse caso ela permaneceu sem nenhuma mudança significativa. Isto pode ser um indicativo de inconsistência
entre as duas métricas, porém como não houve nenhum caso em que o comportamento das duas foram contrários (uma
aumentar e a outra diminuir), ainda acredita-se que ambas sejam confiáveis e que este caso do erosão térmica sirva para
mostrar que o erosion score talvez seja mais sensível a alterações no terreno do que a lei de Benford, visto que as mudanças
causadas pelo erosão térmica são mínimas se comparado aos outros algoritmos.
Referente à naturalidade dos terrenos gerados, pode-se concluir que o objetivo de gerar terrenos com aparência
natural foi desenvolvido, mas não totalmente alcançado. Ao submeter os terrenos sob avaliação das métricas de
naturalidade utilizadas o algoritmo de erosão hidráulica apresentou melhorias consideráveis no terreno, porém não foram
suficientes para que os terrenos gerados se igualassem aos reais analisados. A inclusão de um filtro no algoritmo diamondsquare que selecionasse apenas os melhores terrenos gerados trouxe melhorias significativas, resultando em um valor da
lei de Benford bastante próximo ao dos terrenos reais. Porém, como discutido durante a análise dos resultados, este ganho
veio acompanhado de uma grande perda de performance e do que acredita-se ser uma diminuição na diversidade de relevo
dos terrenos gerados se comparado aos terrenos reais, o que invalidou seu uso como “solução ideal”.
Por mais que existam diversas pesquisas, propostas de ferramentas ou melhorias relacionadas a processos de
geração procedural de terrenos, a análise de naturalidade dos terrenos gerados tende a não ser uma prioridade em grande
parte delas, sendo que de todos os autores estudados durante o desenvolvimento deste trabalho, nenhum deles apresentou
análises comparativas entre os terrenos gerados e terrenos reais. Nestes casos, a análise da semelhança entre os terrenos
gerados e reais se dá apenas com base em conclusões subjetivas tiradas a partir de sua representação visual, o que levanta
a questão de se os terrenos gerados nestes trabalhos realmente possuem características naturais semelhantes a terrenos
reais, ou se estas supostas semelhanças são apenas conclusões incorretas de observações visuais. Neste aspecto, mesmo
o trabalho desenvolvido não tendo atingido os resultados esperados na naturalidade dos terrenos gerados, acredita-se que
a análise comparativa realizada entre os terrenos gerados e reais possa servir como incentivo para novas pesquisas na
área, como por exemplo propostas de novas métricas para análise, melhoria na aplicação das já utilizadas ou comprovação
ou não de sua viabilidade nestes contextos.
A partir destas discussões, levantam-se algumas extensões para expandir o trabalho realizado, sendo elas:
a) incluir diferentes camadas de solo que influenciem nas dinâmicas de relevo causadas pelos algoritmos de
erosão, como feito por Diegoli Neto (2017) e Peytavie et al. (2009);
b) utilizar outros algoritmos de erosão como o de Beyer (2015) que apresenta um algoritmo de erosão hidráulica
que simula o comportamento de diversas gotas de água independentes erodindo o terreno c) incluir elementos naturais como rios ao processo de geração de terrenos, como proposto por Génevaux et
al. (2013) que geram redes de rios conectados entre si através de uma estrutura de grafo;
d) identificar a escala dos terrenos gerados em unidades reais. Tanto o trabalho desenvolvido como os
estudados não apresentam qualquer relação entre a escala dos terrenos gerados e terrenos reais, tornando
difícil relacioná-los (acredita-se que a falta de escala deva-se à falta de pontos de referência no terreno);
e) analisar mais terrenos reais a fim de coletar outras informações que possam ser utilizadas para validar a
naturalidade de terrenos gerados. Isto pode ser feito através da análise de datasets inteiros de dados
geológicos como os ASTER, USGS NED e SRTM3 utilizados pela ferramenta terrain.party;
f) expandir os estudos sobre a lei de Benford, erosion score e outras métricas, considerando sua aplicabilidade
na análise de terrenos naturais. Algumas métricas como a lei de Benford podem funcionar corretamente ao
analisar aspectos macros do terreno, mas talvez não funcionem para aspectos micros, sendo necessário o uso
de outras técnicas não estudadas neste trabalho;
g) implementar melhorias de performance nos algoritmos em GPU. Mesmo a execução destes algoritmos tendo
atingido os resultados esperados, é possível dedicar mais esforços a fim de otimizar sua execução através de
técnicas de branchless programming, gerencia de memória compartilhada e melhor organização de threads.