Blender PT

Blender 3D, Modelação, Renderização, Arte tudo em Português

Você não está autenticado.

#1 2016-10-27 00:05:25

zeroshift
Moderator
De: Palmela
Registado: 2013-02-24
Mensagens: 291

XYZ2OBJ - Gerar terrenos em 3D

Olá,

Tenho andando já a algum tempo as cabeçadas para resolver este pequeno problema que é: criar modelos 3D de terrenos com texturas e informação de elevação de maneira +/- automática.

A maneira mais simples para mim e para os utilizadores que encontrei foi converter ficheiros XYZ em OBJ.

XYZ2OBJ
Github
Binário Jar

1) Para transformar um GeoTIFF em XYZ, instalem o QGIS (opensource) e corram este comando (é uma aplicação que é incluída com o QGIS):

gdal_translate -of XYZ elevation.tif elevation.xyz

2) Com o ficheiro XYZ, alimentem o programa em java que criei:

java -jar bin/xyz2obj.jar elevation.xyz 0.01 1 41.015070 -8.341233 16 output true

Em que os parâmetros por ordem são:
-"elevation.xyz" é o ficheiro de entrada com os dados;
-"0.01" é a escala do modelo, se colocarem 1, o modelo fica a escala 1:1, assim está a 1:100;
-"1" é o numero de quadriculas em torno do ponto central que o programa vai criar;
-"41.015070 -8.341233" é a coordenada central do modelo, a partir da qual vai buscar as quadriculas em torno;
-"16" é numero de divisões das quadriculas;
-"output" é a pasta de saída onde são colocados os OBJ, MTL e PNG;
-"true" é o parâmetro para ativar o download das texturas ao serviço de mapas do Bing, "false" desativa este passo;

O OBJ importado deve usar o Z como "up vector" e o Y como "forward vector".

A baixo mostro um modelo obtido em torno das coordenadas das Minas de Pejão:
minas_peijao.png

Qualquer duvida, façam o favor de perguntar! E peço desculpa por não ser muito claro de usar, mas andei muito tempo as voltas com isto (a complicar desnecessariamente) e quis por um ponto para apresentar algo que funcione.

Nota:
A utilização das texturas do Bing tem termos e condições, se não forem usadas nos browsers e em serviços de mapas públicos, pode estar a violar os termos de utilização, por isso recomendo, que usem as texturas apenas para estudo, investigação, projetos escolares e refiram sempre que usam o Bing. No futuro devia dar para suportar outros serviços como o Mapbox que se pode pagar para usar para qualquer fim.

Termos:
Ficheiro XYZ - Uma lista simples de coordenadas de latitude e longitude mais a elevação.
Ficheiro GeoTIFF - Um TIFF que guarda a informação de elevação mais meta-informação de geográfica.
Jar - É o que se chama a uma aplicação feita em Java, tem de instalar o JRE para correr a aplicação, deve funcionar também com open-jdk.

Cumprimentos

Offline

#2 2016-11-01 08:25:30

rapid
Membro
De: Castelo de Paiva
Registado: 2013-02-24
Mensagens: 75

Re: XYZ2OBJ - Gerar terrenos em 3D

Bom trabalho Zeroshift!

Para mim vai ser muito útil para o projeto das Minas do Pejão!

Offline

#3 2016-11-01 12:30:21

zeroshift
Moderator
De: Palmela
Registado: 2013-02-24
Mensagens: 291

Re: XYZ2OBJ - Gerar terrenos em 3D

Olá Rui,

Obrigado, entretanto se for necessário, também tenho aqui um ficheiro XYZ com as elevações da região para alimentar o programa, assim dá para gerar qualquer outro ponto próximo:
ZIP Elevações

Entretanto estive a experimentar com a ilha do Pico e creio que para distancias muito grandes, torna-se difícil fazer seja o que for, o Bing começou a falhar bastante, e precisa de muita memoria para lidar com o ficheiro XYZ (500Mb via um GeoTiff do http://earthexplorer.usgs.gov/), creio que será necessário algumas optimizações...

pico_island_bing.jpg

Cumprimentos

Offline

Rodapé do site