Como criar um terreno em 3D no Blender?
Aprenda a utilizar o software gratuito Blender e o complemento BlenderGIS para criar um modelo de terreno em 3D com imagem de satélite
Já pensou em representar as áreas dos seus projetos em 3D? Com a postagem escrita pela eng. ambiental Alessandra de Souza, você poderá realizar isso usando o Blender. Confira.
A visualização tridimensional é um recurso cada vez mais utilizado para aprimorar a comunicação visual. Neste contexto, este artigo traz o passo a passo de como gerar uma representação em 3D de um terreno com o add-on BlenderGIS desenvolvido para o software Blender, tendo como base o roteiro proposto por Steve Lund no canal de YouTube CG Geek (veja aqui, em inglês). Com essas ferramentas, será possível selecionar uma área de praticamente qualquer lugar do mundo, gerar uma textura com imagem de satélite e modelar o terreno de acordo com a elevação fornecida por dados SRTM.
Mas por que utilizar o Blender? Além de ser gratuito, o cartógrafo Daniel Huffman (Something About Maps) destaca que o software oferece um resultado mais atrativo e realista em comparação aos gerados por alguns Sistemas de Informações Geográficas (SIGs), justamente pelo fato de o Blender ser projetado especificamente para modelagem 3D. Segundo o cartógrafo, o programa consegue simular as complexidades de posicionamento da luz, tais como seu espelhamento na superfície, sua reflexão de uma montanha para a próxima e o sombreamento em sua ausência.
Então vamos lá? O tutorial foi dividido em cinco partes para melhor compreensão:
- Downloads e configurações iniciais
- Importando imagens de satélite e dados SRTM
- Extrusão da malha
- Textura da malha
- Textura das faces laterais
- Renderização
Downloads e configurações iniciais
Para seguir esse tutorial, você irá realizar o download dos seguintes materiais:
- Blender, software gratuito e de código aberto, disponível para os principais sistemas operacionais. A versão utilizada para este tutorial foi a 2.82.
- BlenderGIS, plugin desenvolvido para realizar a conexão entre o Blender e dados geográficos. Com esse complemento, por exemplo, é possível baixar diretamente do programa dados do OpenStreetMap, modelo de elevação SRTM, imagens de satélite (Google, Bing, Esri, etc), além de importar dados como shapefiles e rasters georreferenciados. Faça o download do arquivo ZIP clicando no botão verde “Clone or download”.
- Imagem do tipo HDRI, como a “Sunflowers”, utilizada para controlar a iluminação da cena e criar efeitos de luz mais realistas e dinâmicos.
- Textura de solo para preenchimento das faces laterais do modelo. Faça o download das cinco imagens (albedo, height, normal, roughness e ambient occlusion).
A instalação do Blender segue um fluxo simples como de qualquer outro programa de computador. Já para a instalação do plugin BlenderGIS, abra o Blender e, no canto superior esquerdo, clique em Edit e então Preferences. Na janela, selecione Add-ons no menu lateral esquerdo, clique em Install e escolha o arquivo ZIP localizado na pasta em que o baixou. Após a instalação, certifique-se na lista que o complemento 3D View: BlenderGIS esteja habilitado e expanda suas configurações.
Dentro das configurações do plugin, especifique uma pasta no campo Cache folder onde o cachê será armazenado. Para tal, crie uma nova pasta no seu computador, de preferência aonde seu projeto será salvo.
Por fim, na mesma lista de Add-ons, ative o campo Node: Node Wrangler.
Com os ajustes iniciais, estamos prontos para começar.
Importando imagens de satélite e dados SRTM
Se esse é seu primeiro contato com o Blender, procure inicialmente se familiarizar com a interface do programa. Essa foi uma etapa importante para que eu – que não sou nenhuma especialista – entendesse principalmente os controles de navegação.
No projeto inicial do programa, deparamos com a representação de três objetos: um cubo, uma câmera e uma fonte de luz. É basicamente um estúdio fotográfico virtual, não? E essa é justamente a ideia desse tutorial: montar um modelo 3D do terreno, definir a iluminação e fotografar.
Selecione o cubo e aperte a tecla Delete para retirá-lo da cena. Agora clique no menu suspenso GIS e selecione Web geodata > Basemap. Mantenha as opções padrão (Google/Satelitte) e selecione Ok para abrir a visão do mapa mundial.
Clique e segure com o botão esquerdo do mouse para movimentar o mapa e dê zoom com o botão do meio (scroll) na área desejada. Se preferir, pressione a tecla G para buscar o local pelo seu nome ou coordenadas (latitude e longitude), indicando ainda um nível de zoom. No exemplo, foi selecionada a região do Pico dos Marins (Serra da Mantiqueira) com zoom 15.
Quando sua localização e zoom estiverem corretos, pressione a tecla E para exportar a visão do mapa para uma nova malha plana.
O próximo passo consiste em baixar os dados do modelo de elevação obtidos a partir do SRTM. Com a malha plana selecionada, clique em GIS > Web geodata > Get SRTM. Após alguns segundos, o plano será projetado de acordo com seu relevo. Clique e arraste o botão do meio do mouse para girar a vista em torno do ponto de interesse dentro do espaço 3D. Se necessário, clique e arraste o símbolo da mão no painel de navegação para reposicionar seu modelo na tela.
Se desejar, é possível alterar o exagero vertical na opção Modifier Properties > Strength, cujo valor padrão é 1.
Já podemos visualizar o modelo 3D do terreno. Na próxima etapa, vamos gerar uma base sólida de apoio da superfície.
Extrusão da malha
No canto superior esquerdo da tela, altere o modo de exibição de Object Mode para Edit Mode a fim de utilizar ferramentas de edição do objeto.
Se sua malha não estiver selecionada (ou seja, não apresenta a face de cor alaranjada), pressione a tecla A. Agora clique com o botão direito do mouse sobre a malha e escolha a opção Subdivide. A subdivisão aumentará a resolução da malha ao dividir as faces ou arestas em unidades menores. Repita a subdivisão mais duas vezes.
Retorne ao Object Mode.
No Blender, é possível utilizar modificadores que realizam operações automáticas para alterar a geometria do objeto. No tutorial, vamos aplicar o modificador Subdivide Surface para suavizar a malha e, em seguida, o modificador Displace para deslocar os vértices da malha com base na intensidade de sua textura. O procedimento é simples: no painel direito, vá em Modifier Properties, e clique em Apply no primeiro e no segundo campo, respectivamente.
Selecione novamente o Edit Mode para criarmos uma base sólida para o modelo por meio da extrusão da malha. No painel de navegação, selecione o eixo X (círculo rosa) para melhor visualização.
No painel esquerdo, selecione a opção Extrude Region e então, no menu superior, altere o modo de Normal para XYZ a fim de garantir que iremos extrudar ao longo do eixo Z. Os eixos serão indicados no centro da malha. Selecione o círculo azul (eixo Z) com o botão esquerdo do mouse e arraste o cursor para baixo. Quando alcançar a altura desejada para o modelo, aperte Enter. Por fim, pressione S+Z+0 e depois Enter para recortar o fundo do modelo e transformá-lo em um plano, observando se o ponto mais baixo da malha não foi prejudicado (caso positivo, refaça a extrusão usando uma altura maior).
Retorne ao modo Object Mode para a próxima etapa.
Textura da malha
A partir de agora, nós iremos tratar o modelo 3D (iluminação e textura dos materiais) de modo a prepara-lo para renderização (isto é, o processo de transformação de uma cena 3D em uma imagem 2D). As próximas etapas são as mais trabalhosas, porém, são aquelas que trarão mais riqueza e realismo ao resultado.
No painel direito, selecione World Properties, clique no círculo à direita do campo Color e selecione a opção Environment Texture. Logo abaixo, clique em Open e abra o arquivo da imagem tipo HDRI previamente baixada.
Em seguida, no mesmo painel, entre em Render Properties. No campo Render Engine, altere o o renderizador para Cycles. Em Device, selecione GPU Compute para usar sua placa de vídeo na renderização ao invés da CPU.
No canto superior direito da tela do desenho, selecione o modo Viewport Shading para visualizar a renderização prévia e interativa do modelo. A renderização completa, por outro lado, só será realizada na última etapa.
Continuando em Render Properties, expanda o campo Film e ative a caixa Transparent para eliminar a imagem de fundo e manter apenas seus dados de iluminação. Depois expanda o campo Color Management e altere o Look para Medium High Contrast ou um contraste de preferência.
Vamos agora dividir a tela para trabalharmos com o Shader Editor, ferramenta utilizada para editar materiais que serão renderizados. Posicione o cursor no canto superior esquerdo da tela, logo ao lado do menu suspenso Editor Type, até cursor se transformar em uma cruz. Clique e segure com o botão esquerdo do mouse, então o arraste para a direita e solte para dividir a tela no meio. Na janela do lado esquerdo, clique no símbolo de Editor Type e selecione Shader Editor. Na demonstração abaixo a renderização interativa foi desativada apenas para melhor visualização da divisão.
Os materiais utilizados pelo renderizador são definidos segundo uma composição baseada em nós (ou nodes). Cada nó realiza uma operação no material de forma a alterar a aparência da malha, e assim passa para o próximo nó. O compósito, portanto, é representado como um gráfico de árvore. No caso do tutorial, vamos incialmente trabalhar em cima da textura da imagem de satélite e em sequência com as faces laterais do modelo.
Antes de aplicar os nós, vamos alterar a escala do terreno 3D para elevar a sensibilidade dos efeitos a serem aplicados. Selecione o modelo na janela direita, aperte a tecla S (comando Scale) e então clique em qualquer lugar da janela. Na parte inferior da tela aparecerá a aba Resize. Expanda a aba e altere os valores de X, Y e Z para 0,25.
No menu do Shader Editor, clique em Add > Vector > Bump. Clique com o botão esquerdo do mouse para fixar o nó Bump na tela. Conecte a imagem de satélite Google ao nó Bump clicando no círculo amarelo referente à saída Color da janela laranja e arrastando o mouse para o círculo cinza de entrada Height do nó. Em seguida conecte a saída Normal do nó Bump com a entrada Normal da janela Principled BSDF (verde).
O Bump adiciona detalhes de profundidade a uma superfície sem deformá-la. A priori seu efeito é bem sutil, portanto aumente Strength e Distance para 3 ou teste alguns valores a seu critério.
Para incrementar a definição das montanhas, vamos utilizar o nó Ambient Occlusion, o qual basicamente simula sombras de contato em objetos e cria um efeito de realismo. Clique em Add > Input > Ambient Occlusion e conecte a saída Color do nó na entrada Surface da janela Material Output para pré-visualização do efeito. Aumente o fator Distance do nó para um valor bem mais alto, como 50.
No momento o modelo aparecerá totalmente branco, no entanto, vamos adicionar o nó conversor Math em Add > Converter > Math a fim de amplificar o efeito de Ambient Occlusion através de uma função matemática. Para uma conexão automática, arraste o nó Math sobre a linha que conecta o Ambient Occlusion ao Material Output. Clique no campo Add do nó, selecione a operação Power (isto é, potenciação) e, em seguida, altere o valor Value para 25. Verifique o efeito na renderização prévia e, se quiser elevar ou reduzir o efeito do sombreamento, teste com novos valores de Distance.
Para misturar o efeito criado com a imagem de satélite da textura, adicione o nó MixRGB em Add > Color > MixRGB e encaixe a janela entre o conector da imagem de satélite com Principled BSDF. Altere o efeito de Mix para Multiply e mude o fator Fac para 1. Agora conecte a saída do nó Math na entrada Color2 do nó MixRGB. Em sequência, na janela Principled BSDF, retome a conexão entre a saída BSDF e a entrada Surface de Material Output e, por fim, diminua o efeito Specular (reflexão da superfície)para um valor entre 0 e 0,1.
A textura da malha composta pela imagem de satélite do modelo do terreno 3D já está pronta. Na próxima etapa, iremos trabalhar apenas com o material das faces laterais do modelo de maneira a simular uma textura de solo.
Textura das faces laterais
Para adicionar a textura de solo nas bordas do modelo, clique no painel direito em Material Properties, selecione o símbolo “+” e em sequência aperte New para adicionar um novo material.
Selecione a janela Principled BSDF em sua tela e então pressione Ctrl+Shift+T para importar imagens de textura em um formato unificado. Para isso, na janela de arquivos que foi aberta, selecione simultaneamente as cinco imagens baixadas que compõem a textura do solo e clique em Principled Texture Setup.
O gráfico de nós do material será automaticamente aberto. Vamos agora atribuir esse material às faces laterais do modelo. Clique na opção Face select no menu do modo de edição Edit Mode, pressione e segure a tecla Alt e clique com o botão esquerdo do mouse em uma das laterais. Em seguida, no painel direito, clique em Assign. Pressione a tecla U, selecione Smart UV Projector e dê Ok para otimizar a aplicação da textura 2D na malha.
Na janela do nó Mapping, melhore a escala da textura aumentando os valores de X, Y e Z para 10.
Retorne ao Object Mode para visualizarmos o material. Para tratar a cor da textura, adicione um nó Hue Saturation Value em Add > Color > Hue/Saturation e coloque-o no conector entre Base Color e Principled BSDF. Reduza um pouco sua saturação (Saturation), por exemplo, para 0,5. Teste o valor (Value) com diferentes números para encontrar o resultado que mais interessa ao seu contexto.
E, com isso, o modelo de terreno 3D está pronto! Vamos agora realizar a renderização para exportar uma imagem do terreno.
Renderização
Chegou o momento de “fotografar” o modelo. Você definirá sua posição da câmera e ângulo de acordo com sua percepção da cena. Primeiramente, tire a divisão da tela de forma análoga de quando a dividiu: posicione o cursor do mouse no canto superior esquerdo da janela do modelo 3D e, quando o cursor se transformar em uma cruz, clique com o botão esquerdo do mouse e o arraste para esquerda. Usando o mouse e o painel de navegação, defina a visão exata da cena a ser renderizada. Quando finalizar, pressione Ctrl+Alt+0 para reposicionar a câmera na nova visão.
Seu objeto provavelmente irá sumir da tela, porém a câmera ainda será configurada. No painel superior direito, em Scene Collection, selecione a Camera. No painel inferior, clique no símbolo da câmera para abrir Object Data Properties. No campo Lens, altere o parâmetro de corte End para um valor bem elevado, como 1.000.000, para expandir a visão da câmera. Se a câmera ainda não englobar seu modelo dentro do retângulo amarelo, teste novos valores de comprimento focal Focal Length. Por fim, centralize seu modelo alterando os valores de Shift X e Y.
Estamos quase lá. Precisamos fazer apenas um último simples ajuste, que é a redução de ruído (granulação) gerada pela renderização com Cycles. Para tal, no painel direito, ative a ferramenta de pós-processamento chamada Denoising em View Layer Properties. Mantenha os valores padrão.
Feito isso, realize a renderização clicando em Render > Render Image na barra de ferramentas ou pressionando F12. O processo pode levar alguns minutos.
Quando finalizar, verifique se o modelo está de acordo com a expectativa, uma vez que os parâmetros utilizados podem variar de acordo com o terreno. Caso queira fazer algum ajuste, utilize as ferramentas dos passos anteriores. No meu caso, por exemplo, optei por reduzir o efeito de reflexão da superfície (Specular)para 0.
Com um resultado satisfatório, salve a imagem em formato PNG clicando em Image > Save As… na barra de ferramentas da janela de renderização.
Com o resultado final, você pode utilizar um editor de imagem para inserir um plano de fundo, rótulos, símbolos, entre outros.
E assim concluímos esse tutorial! Aproveite os comentários para compartilhar seu terreno em 3D e deixar dúvidas se for o caso. Responderemos assim que possível.
Alessandra Ribeiro de Souza é engenheira ambiental, formada pela Universidade Federal de Itajubá (UNIFEI) e Mestre em Engenharia de Energia pela mesma instituição.
Referências consultadas. How to Create 3D Terrain with Google Maps and Blender – CG Geek: https://www.youtube.com/watch?v=Mj7Z1P2hUWk. Creating Shaded Relief in Blender – SomethingAboutMaps: https://somethingaboutmaps.wordpress.com/2017/11/16/creating-shaded-relief-in-blender/ Blender 2.82 Reference Manual: https://docs.blender.org/manual/en/latest/
Excelente tutorial,
muito bom, tive muita dificuldade para configurar a câmara, porém depois de algumas tentativas sem sucesso, consegui obter um bom resultado.
Parabéns.
Excelente tutorial!
Segui exatamente os mesmos passos, porém estou tendo problemas ao clicar no “menu suspenso GIS e selecione Web geodata > Basemap”.
Ele me dá o seguinte erro: “No imaging library available. ImageIO module was not correctly installed”.
Vocês saberiam alguma possível solução?
Boa noite Henrique,
Algumas sugestões do que pode ser feito: 1) Baixar arquivos dll da biblioteca ImageIO no link <https://github.com/imageio/imageio-binaries/tree/master/freeimage> e colar na pasta “/BlenderGIS/core/lib/imageio/resources/freeimage”; 2) Reinstalar o BlenderGIS (ou Blender).
Fonte: https://github.com/domlysz/BlenderGIS/wiki/FAQ#How-to-resolve-the-No-ImageIO-error-
Tá certo!
Muito obrigado!
Eu reiniciei o computador e foi solucionado
Olá. Excelente tutorial, vai me ajudar muito.
Saberia me dizer se é possível extrair os dados após a renderização, para um software SIG?
Bom dia Marcelo,
Após a renderização, você terá um arquivo no formato imagem (JPG, PNG ou outro), você conseguirá inserir a imagem propriamente dita no layout do mapa que você esta criando (tanto no QGIS, quanto ArcGIS). Acredito que após a renderização, você só poderá usar a imagem desta forma, e não poderá extrair dados dela.
Tá certo!
Muito obrigado!
Olá! Excelente material! Teria um tutorial com a versão 2.5?
Bom dia Hanna, não temos tutorial para essa versão do Blender. É importante comentar também que o BlenderGIS solicita que a versão do Blender seja 2.8 ou superior.
Bom dia, Fernando! Poxa vida! A 2.8 fica dando erro no opengl 3.3.
Hanna, aparece alguma mensagem de erro? Dei uma olhada rápida por aqui e achei esse vídeo que pode resolver seu problema: https://www.youtube.com/watch?v=QQ-3Qh6DdL8
Outra opção é buscar n google por ‘blender opengl 3.3 error’, há alguns artigos que fornecem mais detalhes sobre o problema.
Olá Fernando! Finalizei o modelo, mas quando vou exportar para stl, o mesmo vem em branco. Tem alguma sugestão?
Fernando, usando a versão 9.2, o plugin BlenderGIS aparece que não é compatível, há uma solução?
Olá,
estou tentando reproduzir, mas o meu blender não estar importando as texturas,
clicando no atalho Ctrl + shift + T não abre a janela.
O que pode ser? tem alguma ideia?
Boa tarde Herminio,
Também tive o mesmo problema, se eu não me engano, para resolver o problema ative o campo Node: Node Wrangler no menu de Add-Ons em Blender Preferences.
top..estava procurando os efeitos muito bom, melhor dica
obrigado, já estou aplicando em meus projetos.
O Blender e o GIS são ferramentas muito boas!
Trabalho com planejamento territorial e com elas há a possibilidade de várias práticas:
– Produzir material didático, sendo o destaque os modelos de bacia hidrográfica.
– Preparar modelos para demonstrar a quem desejar contratar o trabalho profissional aplicado ao planejamento: demonstração de inundação, plano de recuperação ambiental (somado ao QGIS, por exemplo, com buffer).
Ao instalar o add-on Blender GIS, aparece um sinal de “!” falando sobre a versão dele, no meu antigo notebook funcionava perfeitamente.
Instalei várias vezes, as versões 9.2,9.1 e 8.2 mas nada…
poderia me ajudar?
Boa noita Hanna,
Não sei exatamente qual versão você esta instalando, pois tanto o Blender quanto o BlenderGIS estão na versão 2 ainda. Porém, em teoria, versões superiores à 2.8 devem ser compatíveis. Tentei buscar se há algum relato de incompatibilidade da nova versão (2.92), mas não localizei nada.
Uma sugestão é tentar colocar uma pergunta no https://blender.stackexchange.com/ com o máximo de detalhes possível para verificar se algum teve o mesmo problema e como resolveu.