Editando o mesh do X-Plane com o MeshRemexe


mesh_edit_1

Introdução:

Adicionando declividade nas pistas, o X-Plane trouxe uma nova dimensão na simulação de voo, se aproximando ainda mais da realidade que encontramos nos aeroportos. Mas nem sempre essa característica se aproxima do real e às vezes impossibilita até mesmo a operação nesses cenários.

Por muito tempo, a edição do mesh no X-Plane foi algo pouco explorado. Mesmo com documentação e alguns programas, essa tarefa não era fácil. Uma linguagem muito técnica e ferramentas que funcionam através de linha de comando afastaram muitos desenvolvedores de cenários. Gostaria de apresentar uma nova alternativa para este problema. Uma ferramenta para auxiliar algumas etapas da edição do mesh. O programa foi desenvolvido em Python e, teoricamente, deve funcionar em qualquer sistema operacional, desde que atendidos os requisitos das bibliotecas. Para facilitar, compilei um executável para Windows.

Download:

A edição do mesh ainda não está perfeita, pois existem algumas limitações:

  1. A partir do X-Plane 10, as elevações são definidas através de um arquivo raster, um arquivo que pode ser visualizado como um arquivo de imagem, onde a cor de cada pixel representa uma elevação. A resolução deste arquivo não é grande o suficiente para editarmos diretamente. Então a elevação de cada vértice é calculado fazendo uma interpolação desses valores. Mas ainda pode ser inserido as elevações manualmente, ou seja, atribuindo um valor como era o sistema do X-Plane 9. Então a grande limitação é que o X-Plane 9 aceita apenas números inteiros (metros). Ou seja, para valores definidos entre 1.00 e 1.99, no X-Plane será interpretado como 1.00 destoando dos valores obtidos a partir da interpolação. Essa perda de precisão acontece na conversão para DSF (arquivo de definição de cenário). Por que o programa mantém essa precisão se não é utilizada? Espero que no futuro, alguma atualização do XPTools ofereça essa funcionalidade.
  2. O mesh do X-Plane aceita um sistema de camadas múltiplas de texturas. Isso é definido a partir de modelos geográficos, uma vez que o mesh é alterado, nem sempre essas camadas coincidem com a área original. Esta questão é uma limitação temporária, pois tenho algumas ideias para resolver isto. Mas para não demorar ainda mais, utilizando texturas phootoreais (drapped polygons) é possível minimizar este problema. Então por enquanto o programa adiciona apenas uma camada de textura, sem opções de transparências, que deve ser escolhida manualmente.

O que podemos fazer com este programa?

  • Podemos criar ilhas, lagos, rios, canais, etc. Com a ressalva que não serão criadas ou excluídas as linhas de litoral (praias).
  • Aumentar ou simplificar a resolução do mesh adicionando ou eliminando vértices.
  • E é claro, editar as elevações dos vértices.

O que precisamos fazer para começar?

Precisamos definir nossa área de trabalho. Podemos utilizar programas como o GoogleEarth ou SAS Planet para definir a área através de um polígono. Este polígono pode ter 3 ou mais vértices e deve ser exportado no formato kml. É importante ressaltar que essa área definirá no alcance de edição, ou seja, se tentar alterar algum valor de elevação fora desta área, será mantida a elevação padrão do X-Plane.

google_earth_select

Localizando o arquivo DSF
Os arquivos de cenários do X-Plane ficam na pasta:

…/X-Plane 10/Global Scenery/X-Plane 10 Global Scenery/Earth nav data/

Para sabermos o arquivo exato, podemos utilizar as coordenadas através do menu “configurações” -> “Entrada e Saída de dados” -> “lat, lon, altitude” (marque o quadro da direita). Com a informação na tela, podemos definir o arquivo a ser utilizado sando a seguinte regra:

Se temos as coordenas lat -20.73 e lon 43.8, o nome do arquivo terão os número inteiros menores que estes valores. Então teremos –21+043. E o nome da pasta terão as dezenas de número inteiros menores que estes valores, sendo -30+040. Então nosso arquivo se encontra em:

…/X-Plane 10/Global Scenery/X-Plane 10 Global Scenery/Earth nav data/-30+040/-21+043.dsf

Convertendo o DSF em TXT:

Antes de utilizar o arquivo, é importante ressaltar que estas arquivo estão compactados no formato 7zip. Então é necessário extrair o arquivo antes de converter.
Baixe o XP Tools em: http://developer.x-plane.com/tools/xptools/

Com o arquivo DSF extraído, existem duas formas de converter:

  • Simplesmente executando o XGrinder e arrastando o arquivo DSF para dentro da janela.
  • Executando via linha de comando.

Ex:

DSFTool.exe -text2dsf “C:\temp\+56-133.txt” “C:temp\+56-133.dsf”

Utilizando o programa

tela_1
  1. Selecione o idioma.
  2. Selecione a aba “Extrair Mesh”.
  3. Selecione a versão do X-Plane.
  4. Selecione o arquivo dsf convertido para txt com o DSF_Tools.
  5. Se estiver utilizando o X-Plane 10, selecione o arquivo “elevation.raw”.
  6. Defina a área onde deseja editar o mesh. Selecione um arquivo “.kml” (polígono) definido com o GoogleEarth ou insira as coordenadas diretamente no campo. A área deve conter três ou mais coordenadas, o formato é em graus e decimais de graus. Valores negativos para longitudes oeste e latitudes sul.
  7. Deixe esta opção marcada para adicionar textura ao objeto. Com esta opção, serão criados dois arquivos adicionais. Um kml para visualizar a área da textura e um arquivo “.jpg”. Caso o mesh extraído contenha partes com água, serão criados mais dois arquivos.
  8. Clique em gerar e serão criados vários arquivos que o ajudarão na edição do mesh.
    • Arquivo “.gap”: É um arquivo compactado com informações úteis para ser utilizado na etapa de inserção do mesh.
    • Arquivo “.obj”: Arquivo contendo o mesh para ser editado em algum programa 3d compatível.
    • Arquivo “.kml”: Arquivo com a área da textura. Pode ser utilizado para criar uma textura photoreal para o OBJ.
    • – Se houver áreas com água, serão criados os arquivos “_sea.obj”, “_sea_box.km”l e “_sea.jpg”.
  9. Sair: fecha o programa e salva o preenchimento dos campos no arquivo “meshremexe.ini”

Editando o mesh:

Por padrão, o programa copia um pequeno arquivo de imagem para representar a textura de terreno (verde) e de água (azul).

green_blue_texture

Para ajudar na edição, podemos utilizar uma textura photoreal no modelo.

photoreal_texture

Para isso, precisamos salvar a imagem a partir de algum servidor de mapas. Para esta tarefa utilizarei o SAS.Planet. https://bitbucket.org/sas_team/sas.planet.bin/downloads

Abra o SAS.Planet, vá em “operations” -> “open” -> selecione o arquivo “_box.kml”. Será mostrado uma caixa de diálogo mostrando alguns parâmetros, clique em “start”.

sas_planet_selection

Com o polígono sendo mostrado no mapa, clique com o botão direito, escolha “Selection Manager”.

Na caixa de diálogo, escolha a segunda aba “Stitch”:

Em “output format” escolha “JPEG”.

Em “save to” navegue até a pasta de edição do cenário e sobrescreva o arquivo de imagem. Escolha o zoom e clique em Start. Se necessário, repita o processo para a área que contém água.

save_texture

Com a imagem salva, vamos importar o arquivo OBJ no sketchup. http://www.sketchup.com/pt-BR/download

Para esta tarefa precisamos instalar o plugin SketchUp2XPlane: http://marginal.org.uk/x-planescenery/tools.html

Ao iniciar o Sketchup, lembre-se de deletar qualquer objeto antes de importar o arquivo. Depois de importar, para visualizar o modelo, vá em “camera” e escolha “zoom Extents”(control+shift+E).

Se necessário, importe também o objeto correspondente a área com água. Mas lembre-se se separá-los posteriormente.

Realize e edição, salve e exporte como “X-Plane Object”.

mesh_edit

Inserir o mesh editado:

tela_2
  1. Selecione a aba “Inserir Mesh”.
  2. Selecione o arquivo “.gap” criado na etapa anterior.
  3. Ao selecionar o arquivo “.gap”, será carregada uma lista contendo as texturas disponíveis para aquela região. Selecione uma.
  4. Esta opção é referente à resolução da textura do terreno. A maioria dos terrenos do X-Plane define isso automaticamente ignorando este parâmetro. Utilize caso não tenha um resultado satisfatório com a aparência da textura.
  5. Selecione o arquivo “.obj” com o mesh editado. Este arquivo é referente apenas às partes de terra.
  6. Se o mesh editado possui área com agua (lagos, rios, mar etc.) deixe esta opção marcada.
  7. Selecione o OBJ correspondente à área com água.
  8. Clique em “inserir”. Será criado um arquivo “_mesh_inserted.txt”.
  9. Sair: fecha o programa e salva o preenchimento dos campos no arquivo “meshremexe.ini”.

Converter de volta para DSF

Utilize o XPTools para converter o arquivo “_mesh_inserted.txt” para DSF. Lembre-se de renomear o arquivo DSF com o nome original do arquivo.
Pode utilizar o novo DSF na pasta original do arquivo ou dentro da pasta “custom scenery”. Para esta opção, precisamos de uma estrutura específica.
Dentro de custom scenery, crie uma pasta, dê o nome do cenário. Dentro desta pasta cria uma chamada “Earth nav data” e mais uma outra com as dezenas de inteiros menores que o nome do arquivo.
Exemplo:

…\X-Plane 10\Custom Scenery\SBFN_Mesh\Earth nav data\-10-040\-04-033.dsf

Agora é só testar o cenário!

mesh_edit_2

Para ilustrar melhor, fiz dois vídeo tutoriais mostrando duas situações


sobre Joz

Especialista em navegação aérea, piloto privado, controlador de tráfego aéreo, formado em Computação pela UFRPE e técnico em Telecomunicações ETFPE.


Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Time limit is exhausted. Please reload CAPTCHA.

46 thoughts on “Editando o mesh do X-Plane com o MeshRemexe

  • Camilo Matos

    Ola Joz.
    Estive a experimentar a tua aplicação MehRemexe, e continua com um bug, no meu caso quando estou a fazer a importação da alteração do meu mesh, ele crasha.
    Da a sensação que ele aguenta ficheiros .dsf muito grandes.

        • Joz Autor do post

          Camilo, vi que a coordenada que você passou é do aeroporto de Leiria. Preciso da sua “área de seleção”. Normalmente são 3 ou mais coordenadas.
          Já tentou utilizar outras áreas e DSFs? Precisamos saber se o bug ocorre em qualquer área, área específica, seleção específica, etc.

          Abraços

          • Camilo Matos

            1

            -8.82502712229293,39.7831238128166,0 -8.81575740793746,39.7830083853736,0 -8.81668008783859,39.7763462448858,0 -8.825220241342,39.7765111571378,0 -8.82502712229293,39.7831238128166,0

  • Diego

    Hi Joz, need your help with something

    I was trying to fix a mesh (00-078) and everything went perfet until the last step “INSERT MESH”

    The process stops on step 4/6 (Arround 40% of it).

    So I checkd the app logs and I found this

    ——————————————————————–
    Exception in Tkinter callback
    Traceback (most recent call last):
    File “Tkinter.pyc”, line 1536, in __call__
    File “meshRemexe_09b9.pyw”, line 1764, in insertPatch
    File “meshRemexe_09b9.pyw”, line 2035, in writeStripList
    ZeroDivisionError: float division by zero
    ——————————————————————–

    Any idea about what causes this?

    BTW, the Sketchup part is made over Mac OS (El Capitan). All other the rest steps are made over Windows 7 64Bits.

    Thanks in advance for your help

  • José Pires

    Obrigado a quem tem o suficiente respeito pela língua portuguesa utilizando-a para explicar coisas tão interessantes e importantes para quem gosta da simulação e não tem os suficientes conhecimentos de outras línguas para poder aprender noutros locais.Bem Haja a quem tem o gosto de transmitir aos outros aqulo que sabe.Da minha parte o meu muito Obrigado.Tenho lido tudo o que tem publicado e de tudo tenho gostado muito.Obrigado pela ajuda .Agora vou tentar começar a aplicar na prática o aperfeiçoamento do que puder e souber nos pequenos aeródromos deste Portugal tão posto de lado ao que a cenários diz respeito .Não sei é se vou ter capacidade para isso.Pelo menos vou tentar.
    Um Bom Ano Novo para Todos

  • Fabio

    Joz, a malha quando alterada no DSF, vai sempre ser lida pelo XP no tile inteiro né!? Digo, não tem como recortar só a área do aeroporto, editar, e o XP carregar aquele pedaço alterado, mas o restante do tile carregar do default (ou o que estiver abaixo na cadeia do cenário), certo?

    Pergunto isso, pensando em relação ao mesh HD do AlpilotX, por exemplo. Caso alguém queira fazer alguma edição na malha, vai ter que considerar os 2 e fazer o processo nos 2 DSFs (original e HD) ou então, se fizer só com o original, o usuário que instalar o cenário editado, vai perder o HD naquele tile, caso tenha, não é?

    Meus parabéns por essa ferramenta incrível! Simplesmente espetacular!

    • Joz Autor do post

      Obrigado Fábio. Sim, o X-Plane um tile inteiro por vez. Fiz um teste com o MeshHDv3, até demorou um pouco mais para processar, mas funcionou perfeitamente. Tente fazer alguns testes também, se tiver problemas é só falar.

  • Sandro

    Joz!! Tudo bem!!?

    Estou usando a versão atualizada fazendo passo a passo bem devagar. Gera todos os arquivos, exporta sem da erro nenhum.
    Abro o X-Plane mas nada mudou!! Fiz um segundo teste exagerando nas elevações, o que claro não é o correto, mas apenas para efeito de teste.
    Estou usando o Mesh HD V3.. a área que estou tentando corrigir é o aerodromo de SDAM (Amarais – Campinas) -23-048.dsf

    O que poderia ser!?? Será que estou usando o dsf errado!!? Peguei as coordenadas do jeito que vc ensina no vídeo!!

    Abraço!

    • Joz Autor do post

      Verifica no scenerypack.ini a ordem de carregamento dos cenários. Se você alterou o meshHdV3 e este está na pasta custom scenery, então você substituir pelo arquivo modificado.

  • Maclovi

    Boa tarde.
    Venho fazendo alguns trabalhos desde a versão 7 e esta forma mais atualizada de realizar esses trabalhos veio de encontro aos meus anseios. Seguindo os passos do seu tutorial: Editando mesh no X-Plane: corrigindo elevações, dois pontos não deran certo: a descompactação do arquivo .dsf pelo 7zip que acusou arquivo corrompido/dados inexistentes para descompactação. Mesmo assim eu prossegui os passos mesmo sem “descompactar” o arquivo .dsf e tudo correndo bem. Mais adiante outro entrave encontrado foi que o SketchUp não importou o arquivo .obj (0 triangles). Aí foi onde eu parei.
    Detalhes: estou usando o X-Plane v9,70, tenho sim instalado o plugin sketchup2xplane.
    Ademais, excelente site e parabéns pela iniciativa. Fico no aguardo de uma possível ideia para solução dessas dificuldades. Forte abraço

    • Maclovi

      Boa noite.
      Descobri meu problema. Como eu tenho cenários editados, eu estava usando o arquivo .dsf do cenário editado, dentro de Custom Scenery. Mesmo não conseguindo “descompactar” com o 7zip, tudo correu bem até o fim.
      Eu só não consegui “imitar” seu gesto no SketchUp de nivelar os vértices tal como no vídeo tutorial, se puder esclarecer…
      Forte abraço,
      Mac

      • Joz Autor do post

        Olá Maclovi, para nivelar os vértices, selecione a ferramenta mover. É importante não ter nenhuma face ou aresta selecionada, senão fica difícil selecionar o vértice. Uma vez selecionado o vértice, tecle seta para cima ou para baixo para limitar o movimento apenas no eixo vertical. Com o eixo travado, clique em outro vértice para servir de guia para deixar na mesma elevação.
        Você pode utilizar a seção do fórum para postar dúvidas. Assim fica mais fácil adicionar algum material.
        Abraços.

  • Rambo

    bem fiz tudo que esta no video, mas na parte do mesh remexe, vc não diz gual os comandos por ex.: ao mover eu cliquei no M para solta , pois se pucha e deixar fica deformado, mas mesmo fazendo isto o terreno não fico como real fico do mesmo jeito, poderia me dizer gual os comandos, para pega no mesh remexe e no X grider não tenho aquela opção que colocou então deixei o do programa, mas mudo o terreno cor mas não voltou como real, SWWM/SBGV

    • Joz Autor do post

      QUanto aos comandos, acredito que você esteja se referindo ao sketchup, pois tanto meshremexe quanto o xgrinder não existe comandos. No sketchup, tentei mostrar o dizer o nome da função. Pois, no padrão, não existem teclas para todos as funções. Além disso no sketchup é possível modificar as teclas de atalhos, e como modifiquei bastante os atalhos nem sempre sei qual tecla/função é default ou modificada.
      Solicito ir praticando utilizando o cenário de Lafaiete, assim pode minimizar algum engano ou esquecimento das etapas necessárias.
      Abraços

  • Guilherme

    Olá Joz,

    estou tentando editar o DSF -24-047.dsf do HD Mesh V3 mas o MeshRemexe trava ao gerar o OBJ. Eu descompactei com o 7z e gerou um DSF de 100mb e o XGrinder gerou um txt de 919mb.

    Tentei gerar o OBJ varias vezes com o MeshRemexe e sempre trava num ponto diferente, porém, uma das vezes ele gerou o OBJ, mas ficou faltando o arquivo GAP.

    O log dá o erro abaixo:

    MemoryError
    Exception in Tkinter callback
    Traceback (most recent call last):
    File “Tkinter.pyc”, line 1536, in __call__
    File “meshRemexe_09b91.pyw”, line 443, in splitDsf

    Tem como resolver isso?

    • Joz Autor do post

      Olá Guilherme, isso é um problema de memória. Provavelmente da própria biblioteca do python ao lidar com arquivos extremamente grandes. De qualquer maneira tenho que investigar e tentar contornar isso. Qual a configuração da sua máquina? Tente definir uma área pequena para corrigir o mesh.
      Poderia informar qual a sua área de seleção?
      Minha sugestão é que você utilize o fórum (hangarxplane.com.br/forum) e crie um tópico sobre o problema adicionando mais informações.

      • Guilherme

        Olá Joz,

        Estou tentando editar a cabeceira 18 da pista de Jundiaí. A área selecionada já é bem pequena, mas mesmo assim o Meshremexe não consegue nem gerar o OBJ. Na verdade, uma única vez, das várias que tentei, ele quase finalizou o processo, chegando a gerar o OBJ perfeitamente. Porém, ele não gerou o GAP. Então eu fiz toda a edição e na hora de inserir o Mesh eu percebi que não tinha o arquivo de GAP.

        Isso aconteceu também com uma área do aeroporto de Aspen “KASE” que eu tentei editar.

        Minha máquina é Win 7 Ultimate, i7 4770K a 4.8ghz, 16GB 2400mhz RAM DDR3, Nvidia GTX Titan.

        Vou abrir o tópico no forum, assim também fica mais fácil de acompanhar sua resposta.

  • Maclovi Bitencourt

    Olá.
    Desculpa fazer esta pergunta por aqui, mas não encontrei um fórum adequado com o assunto.
    Ultimamente tenho encontrado dificuldade na edição pois no processo, não está sendo gerado o arquivo _box.kml e ao abrir o arquivo .obj com o sketchup, são gerados 0 triangulos.

  • José Mário Salomão de Omena

    Joz, sou Delegado de Polícia no Rio de Janeiro, sou Piloto Privado de Helicóptero, Sou Piloto de Recreio de Ultraleve anfíbio e terrestre e piloto de Autogyro, e o principal, SOU SEU FÃ.
    Sou sócio do Clube da Aeronáutica na Barra da Tijuca e também frequentador do Clube Ceu, atualmente funcionando em Guaratiba, na direção da estação do BRT Pingo D’Água.
    Eu tenho a humilde pretensão de “criar” o Clube Ceu no seu atual endereço, com a pista e tudo mais.
    Ocorre que o relevo do local no X-Plane, na forma original, não permite, além de no seu vídeo de correção de relevo existirem ferramentas que eu não sei onde adquirir.
    Queria saber se isso é possível e se voce teria como nos ajudar. Se voce colocar no Google “Delegado Omena” vai aparecer diversas reportagens do passado comigo. Obrigado e parabéns, você é o maior.

    • Joz Autor do post

      Olá Omena, obrigado pelo comentário. Posso dizer antecipadamente que você pode fazer, com pequenas restrições, tudo que imaginar no relevo do x-plane. No começo é um pouco difícil, mas pega-se o jeito.
      Todas as ferramentas descritas tanto no vídeo quanto no tutorial deste post são gratuitas e os links para download estão disponíveis ao longo do texto.
      Fique a vontade para perguntar e tirar dúvidas sobre o processo.

      Abraços

  • Axel

    I followed your instructions, but always get very small .obj files (1 kB) and sketchup reports

    “imported 0 triangles”

    any idea ?
    area is
    8.27,-82.88;8.25,-82.88;8.27,-82.86;8.25,-82.86

    (Panama)

  • Fabiano Zannin

    Olá, estou mexendo com o X plane 11, onde preciso mudar um mesh. porem na versão atual do x plane 11 ao extrair o dsf no XGrinder o mesmo nao extrai o elevation.raw e sea_level.raw. Ele extrai apenas o .txt

    – Fiz o teste tambem no x plane 10, e o x plane 10 e extrai perfeitamente.
    Voce poderia ver o que esta ocorrendo?
    OBS: o X plane 11(beta) é diferente do X plane 11 final!!! onde no beta ele extrai perfeitamente

    • Joz Autor do post

      Olá Fabiano, obrigado pelo comentário. Lembre-se que antes de utilizar o X-grider o DSF precisa ser descompactado. Para isso, renomeie a extensão com “.7z” e descompacte utilizando o 7zip ou WinRar. Notei que existe uma atualização do instalador do X-Plane 11. http://www.x-plane.com/desktop/try-it/ E quando testei, solicitou refazer o download dos cenários. Ainda não testei a edição após esta atualização. Vou verificar assim que possível.
      As versões betas normalmente diferem pouca coisa das versões finais, a não ser quando existe uma grande modificação. Ex. da v11.09 para v11.10b. As dezenas decimais indicam uma grande implementação, caso contrário, seguiria como v11.0985624b, etc.

  • Elcio Galetti

    Olá Joz,

    Estou tentando trabalhar com o x-pane 11, mas na hora de usar o meshRemesh, ele somente cria 3 arquivos (.obj .gap e .jpg), o .KLM não é criado.

    O check box do KLM está ticado como no tutorial.

    estou usando o arquivo de elevação e não o de sea_level