Neste episódio da série básica de fotogrametria com plataforma giratória, veremos como reconstruir a geometria de alta resolução a partir das imagens com transparência geradas no Blender ao final do episódio anterior.
Transcrição do vídeo
Olá a todos! Neste episódio da série básica de fotogrametria com plataforma giratória, veremos como reconstruir a geometria de alta resolução a partir das imagens com transparência geradas no Blender ao final do episódio anterior.
Entre outras coisas, veremos como interromper o processo pela metade para redimensionar a área de reconstrução e depois retomá-lo de onde paramos.
Primeiro, abro o projeto do Meshroom, que criei no segundo episódio e salvei após definir o campo Minimal 2D Motion do nó Feature Matching para 2.
Importo as imagens renderizadas do Blender para a aba Image Gallery. Como você pode ver pelo ícone do obturador vermelho, desta vez as imagens não contêm informações adicionais, pois não são mais as fotografias originais, mas sim renders criados no Blender.

Usando o nó Image Masking, que examinamos no segundo episódio, os dados originais são preservados, mas remover o fundo verde será um pouco mais difícil. Por outro lado, é mais fácil obter um melhor Color Keying no Blender, mas ao custo de perder os dados EXIF originais. No entanto, isso não é um grande problema, pois o Meshroom lidará com isso perfeitamente, como veremos.
Salvo o projeto do Meshroom com os novos dados e clico em um espaço vazio no Graph Editor para desselecionar todos os nós. Em seguida, inicio a reconstrução clicando em Start.
Se agora eu der uma olhada na pasta onde salvei o arquivo MG do projeto, noto a presença da pasta Meshroom Cache e suas subpastas, onde o Meshroom armazenará arquivos de log e arquivos temporários de trabalho para os diversos nós.
Esse recurso do Meshroom é muito útil porque permite processar apenas partes específicas das informações à medida que são manipuladas pelos nós.
Durante o processamento, uma barra de progresso na parte superior exibe o andamento geral do pipeline, enquanto cada nó também tem sua própria barra de progresso. Em ambos os casos, a cor verde indica que o processo foi concluído com sucesso. A cor laranja significa que o processo ainda está em execução. A cor vermelha indica uma falha. A cor ciano mostra que o nó está na fila de execução.

Esses indicadores de progresso podem ser analisados com mais detalhes na aba Task Manager. Informações adicionais podem ser encontradas na seção Log de cada nó.
Outro recurso útil é que, se eu precisar interromper um processo e reiniciá-lo mais tarde, o Meshroom criará novas subpastas para os diferentes nós, garantindo que o trabalho anterior não seja perdido e que eu ainda tenha acesso às diferentes etapas do processamento.
Falando em interrupções, clico em Stop assim que o processamento de Structure From Motion for concluído, que é a primeira parte do pipeline, para que eu possa revisar alguns novos dados e ajustar a área de reconstrução, conhecida como Bounding Box.

Antes de tudo, na parte inferior da aba Image Gallery, podemos ver que o Meshroom reconheceu e processou todas as 146 imagens de entrada, o que me parece um ótimo resultado.
Na aba 3D Viewer, há ícones representando várias câmeras. Esses ícones indicam os pontos de vista a partir dos quais as fotos foram tiradas. Clicar em uma foto na Image Gallery selecionará a câmera correspondente na aba 3D Viewer.
Você pode alterar o ponto de vista na aba 3D Viewer clicando com o botão esquerdo do mouse e arrastando para girar em torno de um ponto de pivô. O zoom é feito com a roda de rolagem do mouse. Clicando e segurando a roda de rolagem ou o botão do meio do mouse, você pode movimentar a visão. Para reposicionar o ponto de pivô, basta dar um clique duplo em um elemento dentro da visualização 3D.

Agora posso selecionar o nó Meshing e ativar a opção Custom Bounding Box para definir uma área de reconstrução personalizada. Esta cena não é particularmente complexa, então esse passo pode parecer desnecessário, mas em outras situações essa opção pode ser muito útil para limitar a reconstrução apenas ao necessário.
No entanto, simplesmente ativar a opção Custom Bounding Box não exibirá o volume de reconstrução. No Meshroom, selecionar um nó não é suficiente para visualizar suas informações ou recursos específicos. É necessário dar um clique duplo sobre ele.
Agora posso definir a Bounding Box interativamente usando os manipuladores de transformação que aparecem no centro dela. As setas permitem mover o centro da Bounding Box. Os quadrados permitem redimensioná-la ao longo de um dos eixos. Por fim, os círculos permitem girá-la em torno dos eixos.
Depois de definir a Bounding Box, posso clicar em Start para retomar o pipeline de reconstrução da geometria do ponto onde parei.

Agora, examinando uma subpasta dentro do Cache do projeto, é possível ver que uma nova pasta foi criada. Isso aconteceu porque o pipeline anterior foi interrompido, então os novos dados estão sendo armazenados em uma nova subpasta.
Essas subpastas têm, por padrão, nomes bastante genéricos, mas é possível renomeá-las nos campos Folder dos diversos nós. Isso é útil se você quiser executar vários testes com parâmetros diferentes, pois pode nomear as pastas de acordo com as alterações feitas. De qualquer forma, você pode simplesmente ordenar as pastas por data para encontrar rapidamente o resultado mais recente do processamento.
Retomei a gravação do vídeo ao final da última etapa do processamento, que é Texturing. Antes de iniciar o processo, não modifiquei os parâmetros padrão deste nó, então o Meshroom deve ter criado um arquivo OBJ com uma textura de Base Color no formato EXR, usando o método UDIM para o mapeamento UV.
No entanto, no menu de opções do Meshroom, não vejo nada que sugira a exportação dessa malha para um local específico no disco.
Mas não há com o que se preocupar, pois a malha e sua textura já foram salvas no disco. Os caminhos dos arquivos podem ser encontrados na parte inferior da aba Attributes no nó Texturing.
De forma mais simples, os arquivos estarão localizados na subpasta mais recente dentro de Texturing.
Copio os arquivos EXR e OBJ para a pasta principal do projeto, renomeando as cópias como High Poly, para que eu possa manter os originais seguros e trabalhar nas cópias no Blender.

Salvo as alterações no projeto no Meshroom e fecho o programa. Vou reabri-lo mais tarde, quando precisar Bake das texturas da versão High Poly para a versão Low Poly. No próximo episódio, mostrarei como importar a versão High Poly para o Blender e limpá-la antes de criar a versão Low Poly. Até a próxima!