Compartilhar via


Use SideFX Houdini para transformar nuvens de pontos em objetos 3D otimizados para Dynamics 365 Guides e para componentes de realidade mista em aplicativos criados com Power Apps

Este tutorial fornece instruções passo a passo para as seguintes tarefas:

  • Converta uma nuvem de pontos em um objeto 3D.

  • Otimize um objeto 3D reduzindo a contagem de polígonos para que ele corresponda às metas de desempenho dos aplicativos de realidade mista do Dynamics 365.

  • Exporte um objeto 3D otimizado como um arquivo .glb que pode ser usado em Dynamics 365 Guides componentes de realidade mista em aplicativos criados com Power Apps

  • Crie um modelo de pipeline de processamento para que você possa otimizar rapidamente nuvens de pontos no futuro.

Este tutorial é apenas para fins informativos, para mostrar como SideFX Houdini funciona com a Microsoft Dynamics 365 Guides e Power Apps. O uso de aplicativos de terceiros está sujeito a termos acordados entre você e os terceiros. A Microsoft Corporation não é afiliada, não é parceira e não endossa ou patrocina o SideFX ou qualquer um de seus produtos. Existem vários outros aplicativos de criação de conteúdo que você pode usar para preparar seus objetos 3D.

O que é Houdini?

Houdini é uma ferramenta para criação de conteúdo processual 3D. Ele usa um sistema de ferramentas não destrutivo baseado em nós para projetar pipelines de processos e conteúdo 3D.

Configurar seu ambiente

Para configurar seu ambiente, você deve concluir estas tarefas:

  • Instale a extensão SideFX Labs.

  • Configure o AliceVision para fotogrametria.

Instale a extensão SideFX Labs

SideFX Labs é um campo de testes para ferramentas que podem ajudá-lo a começar a usar o Houdini mais rapidamente. Esta coleção de ferramentas gratuitas inclui ferramentas úteis para converter nuvens de pontos em objetos 3D otimizados. Para usar o SideFX Labs, você deve usar o Houdini 18 ou posterior.

SideFX oferece um vídeo tutorial que ajuda você a instalar essas ferramentas.

Observação

Você deve instalar o Houdini antes de instalar o SideFX Labs. Saiba mais sobre como instalar o Houdini.

  1. Abra Houdini.

  2. Para instalar o SideFX Labs, selecione o sinal de mais Sinal de mais. na parte superior da janela do Houdini, selecione Prateleiras e, em seguida, selecione SideFX Labs caixa de seleção.

    Caixa de seleção SideFX Labs.

  3. Na barra de ferramentas que aparece perto da parte superior da janela, selecione Atualizar conjunto de ferramentas para abrir o instalador.

    Botão Atualizar conjunto de ferramentas.

  4. Selecione Atualizar para instalar as ferramentas.

    Botão Atualizar.

Se a instalação for bem-sucedida, mais ferramentas aparecerão na barra de ferramentas. Você pode então continuar com este tutorial.

Configure o AliceVision para fotogrametria

AliceVision é uma estrutura fotogramétrica de visão computacional desenvolvida pela Mikros Image. Ele fornece reconstrução 3D e algoritmos de rastreamento de câmera. Saiba mais sobre o AliceVision e o plug-in AliceVision.

Para obter informações sobre como instalar e configurar o plug-in AliceVision para Houdini, consulte o tutorial SideFX.

Importe uma nuvem de pontos para o Houdini

Houdini pode importar arquivos de nuvem de pontos no formato de arquivo PLY. Se o seu arquivo estiver no formato PTS, você poderá convertê-lo manualmente para o formato PLY.

Converter um arquivo .pts em um arquivo .ply

  1. Abra seu arquivo .pts em um editor de arquivos de sua escolha e adicione o seguinte cabeçalho.

    ************************
    ply
    format ascii 1.0
    element vertex 534993
    property float x
    property float y
    property float z
    property uchar intensity
    property uchar red
    property uchar green
    property uchar blue
    end_header
    ************************
    
  2. No cabeçalho, ao lado de element vértice, substitua o valor 534993 pelo valor que apareceu originalmente no topo do seu arquivo .pts (mas agora segue imediatamente o cabeçalho).

    Valor no topo do arquivo .pts.

    Este valor é o número total de pontos em sua nuvem de pontos.

  3. Remova o valor original após o cabeçalho. A tabela a seguir mostra uma comparação lado a lado dos arquivos antes e depois de fazer as alterações anteriores. O valor do vértice do elemento é destacado em vermelho.

    Parte superior do arquivo .pts Parte superior do arquivo .ply
    Valor no topo do arquivo .pts Valor no cabeçalho do arquivo .ply
  4. Salve o arquivo para que ele tenha a extensão de nome de arquivo .ply.

Importe o arquivo .ply

  1. Abra Houdini. Uma nova cena é criada automaticamente. Neste procedimento, você construirá uma cadeia de nós para processar a nuvem de pontos em um objeto 3D. Esses nós são construídos no painel inferior direito da janela do Houdini.

    Painel de nós.

  2. Clique com o botão direito no painel inferior direito para abrir o Menu TAB. (Como alternativa, pressione a tecla Tab .)

  3. No menu TAB, selecione Importar > Arquivo e, em seguida, selecione no Geometria painel para posicionar o nó.

    Comando de arquivo.

  4. Clique duas vezes no meio do nó file1 (ou pressione I) para detalhar a seleção do arquivo parte do nó, selecione o botão Seletor de arquivos e selecione o arquivo a ser importado.

    Botão Seletor de Arquivo.

  5. No navegador de arquivos exibido, navegue até o local do arquivo de nuvem de pontos .ply que você deseja importar, selecione o arquivo e selecione Aceitar.

    Botão Aceitar.

    A nuvem de pontos aparece na parte principal da janela. Se você não conseguir ver, tente usar a roda do mouse para diminuir o zoom até conseguir ver toda a nuvem de pontos.

    Nuvem.

Prepare a nuvem de pontos

Reorientar a nuvem de pontos

Às vezes, quando você importa uma nuvem de pontos pela primeira vez, ela apresenta a orientação errada. Você pode corrigir a orientação adicionando um nó de transformação à árvore de nós.

  1. Clique com o botão direito do mouse no painel Geometria para abrir o Menu TAB e selecione Manipule > Transform para adicionar um nó de transformação.

    Comando de transformação.

  2. Arraste do ponto na parte inferior do nó file1 até o ponto na parte superior do nó transform1 . Dessa forma, você conecta a saída do nó file1 à entrada do nó transform1 . Em seguida, selecione no lado direito do nó transform1 . O lado direito do nó transform1 fica azul, e o nó fica ativo na parte principal da janela, para que você possa ver seu modelo depois que ele for reorientado.

    Nó de transformação.

    Dica

    Para visualizar o modelo durante uma etapa específica do processo no Houdini, clique no lado direito do nó apropriado. Esse recurso é útil se você precisar observar seu objeto 3D em um estado anterior e editar as alterações que ocorreram durante esse estado.

  3. Para corrigir a rotação do seu modelo, no painel de opções acima do painel do nó, adicione valores na linha Rotate . Muitas vezes você pode definir o valor x como 270 para girar o modelo para a posição correta. No entanto, se esse valor não funcionar, tente valores diferentes.

    Valor de rotação.

  4. Para centralizar sua nuvem de pontos sobre o ponto de origem, adicione um nó de alinhamento de eixo após o nó de transformação. Para posicionar o nó, passe o mouse sobre o painel Geometria e pressione a tecla Tab para abrir o Menu TAB e selecione Labs>Geo>Labs Axis Align.

    Comando de alinhamento do eixo do Labs.

  5. Arraste para conectar o ponto de saída na parte inferior do nó transform1 ao ponto de entrada na parte superior do axis_align1 nó. Deixe os valores padrão como estão para posicionar sua nuvem de pontos no topo do ponto de origem (um local ideal para isso).

    Nós conectados.

Limpe a nuvem de pontos para remover pontos perdidos

Se a sua nuvem de pontos tiver pontos perdidos que você deseja remover, você poderá selecionar e excluir pontos individuais ou grupos de pontos.

  1. Altere o método Geometry select para Points e o Select ferramenta para Lasso Picking.

    Observação

    Você pode usar um método diferente, se preferir.

    Método de pontos e ferramenta Lasso Picking selecionados.

  2. Selecione os pontos a serem excluídos.

    Pontos a serem excluídos selecionados.

  3. Pressione a tecla Excluir . Um novo nó blast1 é exibido. O ponto de entrada na parte superior deste nó está conectado ao ponto de saída na parte inferior do último nó com o qual você estava trabalhando.

    Nó de explosão.

  4. Continue removendo pontos até ficar satisfeito com os resultados. Cada exclusão adiciona um novo nó blast que você pode visualizar ou remover a qualquer momento.

    Vários nós de explosão.

Converta a nuvem de pontos em uma malha

Tanto os aplicativos glTF quanto os de renderização em tempo real exigem que os objetos sejam representados como uma superfície poligonal triangular. Você pode usar o comando Particle Fluid Surface para conectar os pontos em uma superfície lógica como geometria poligonal.

  1. Selecione no painel Geometria para abrir o Menu TAB e selecione Fluido >Superfície de fluido de partículas. Em seguida, selecione o nó e adicione-o ao painel Geometria .

    Comando Superfície Fluida de Partículas.

  2. Arraste para conectar o ponto de saída na parte inferior do nó transform1 ao ponto de entrada na parte superior esquerda do particlefluidsurface1 nó. Em seguida, selecione no lado direito do nó pariclefluidsurface1 para ativar o nó na parte principal da janela.

    Captura de tela de nós conectados.

    Na parte principal da janela, a nuvem de pontos é renderizada como uma malha. A guia Surfacing é selecionada no painel superior direito acima do painel Geometry .

    Guia Superfície.

  3. Se os dados de cores estiverem associados aos pontos na nuvem de pontos, você poderá usar os atributos de cores adicionando as letras Cd ao final do valor no Campo Transferir atributos . A cor será então mostrada em sua malha.

    Atributo CD.

  4. Se houver furos na malha, conforme mostrado na ilustração a seguir, ajuste a Separação de partículas e Escala de voxel controles deslizantes no painel superior direito para tentar corrigir o problema.

    Controles deslizantes de separação de partículas e escala de voxel.

  5. Para preparar a malha para dizimação (a próxima etapa do processo geral), em Saída, altere o valor de Convert To campo de Surface Polygon Soup para Surface Polygons. Dessa forma, você pode refazer a malha da malha e dizimá-la.

    Campo Converter para.

  6. Clique com o botão direito do mouse no painel Geometria para abrir o Menu TAB e selecione Polígono>Remalha. Um nó de nova malha é adicionado para converter a malha em triângulos. Dessa forma, você pode dizimar o objeto 3D para uma contagem de polígonos que atenda aos seus requisitos de desempenho.

    Comando Remesh.

  7. Arraste para conectar o ponto de saída na parte inferior do nó particlefluidsurface1 ao ponto de entrada na parte superior esquerda do remesh nó. Selecione no meio do nó remesh para ativá-lo no painel acima do painel Geometria . Em seguida, selecione no lado direito do nó remesh para ativar o modelo na parte principal da janela. Agora você pode editar as propriedades da nova malha, e o modelo na parte principal da janela refletirá essas edições.

    Nós conectados.

  8. Experimente as opções em Dimensionamento de elementos para obter os resultados desejados. Para o campo Comprimento de aresta , você pode manter o valor padrão (Uniforme) ou pode selecionar Adaptável e ajuste o controle deslizante Densidade relativa (e outras opções) para produzir a malha desejada.

    Opções de dimensionamento de elementos.

Dizime o objeto 3D para ajudar a melhorar o desempenho

Para atingir objetivos específicos do aplicativo, talvez seja necessário dizimar seu objeto 3D. Decimação é o processo de recalcular os polígonos de superfície de um modelo para criar uma forma semelhante usando menos polígonos. Embora esse processo reduza a fidelidade visual, ele ajuda a melhorar o desempenho. A tabela a seguir mostra uma comparação lado a lado de um modelo de alta qualidade usado para baixa complexidade de cena em HoloLens e um modelo de baixa qualidade usado para alta complexidade de cena.

Objeto 3D de alto polígono Objeto 3D de baixo polígono
Modelo de alto polígono Modelo de baixo polígono
500.000 triângulos 8.000 triângulos

Dizimar um modelo

  1. No painel Geometria , pressione a tecla Tab para abrir o Menu TAB e selecione Polygon>PolyReduce para colocar um nó PolyReduce no Geometry painel.

    Comando PoliReduce.

  2. Arraste para conectar o ponto de saída na parte inferior do nó remesh ao ponto de entrada na parte superior esquerda do polyreduce1 nó. Selecione no meio do nó polyreduce1 e, em seguida, selecione no lado direito do nó para ativá-lo na parte principal da janela.

  3. Em Valor de redução, no campo Alvo , selecione Contagem de polígonos de saída, e, em seguida, use o controle deslizante Number To Keep para ajustar a contagem de polígonos para atender aos seus requisitos de desempenho, mas também manter uma fidelidade visual aceitável.

    Opções de valor de redução.

A nuvem de pontos agora foi convertida em uma malha 3D otimizada. Na próxima etapa, você criará uma textura de alta resolução no objeto 3D para recuperar parte da fidelidade visual que existia antes da dizimação.

Asse uma textura de alta resolução em uma malha de baixo polígono

Uma desvantagem de reduzir o número de polígonos em uma malha é que muitos detalhes podem ser perdidos. Para restaurar alguns desses detalhes, você pode capturá-los e aplicá-los como uma textura colocada em camadas sobre o modelo de baixo polígono. Durante esse processo, conhecido como cozimento de textura, você tira uma foto de todas as superfícies do seu modelo de alto polígono e as une em uma "colcha" que você arma no topo do modelo de baixo polígono. Dessa forma, você obtém o desempenho de um modelo com poucos polígonos, mas mantém alguns dos detalhes mais sutis de um modelo com muitos polígonos.

As coordenadas de textura (também conhecidas como UVs) são pares de números (U e V) que são armazenados na geometria de um modelo. Esses números representam a forma como uma imagem 2D pode ser mapeada para uma superfície 3D e permitem que as propriedades da superfície sejam definidas como uma imagem. As imagens podem ser simples decalques ou componentes de materiais complexos, como rugosidade e metálicos. Você pode gerar manualmente posições UV para uma malha ou o processo pode ser feito de forma semiautomática ou automática. O operador de superfície AutoUV é uma ferramenta do Houdini que pode gerar UVs. Ele usa alguns métodos automáticos durante a criação de UVs.

Asse a textura

  1. Clique com o botão direito do mouse no painel Geometria para abrir o Menu TAB e selecione Labs>UV>Labs Auto UV para adicionar um nó AutoUV à cena.

    Comando AutoUV do Labs.

  2. Em Método, altere o valor do campo Método para UV Unwrap.

    Método UV Unwrap selecionado.

  3. Arraste para conectar o ponto de saída na parte inferior do nó polyreduce1 ao ponto de entrada na parte superior do autouv1 nó.

    Arrastar para criar nós conectados.

  4. Para visualizar os objetos "antes" e "depois" lado a lado, selecione o botão Layout da viewport e selecione Duas visualizações lado a lado.

    Opção de duas visualizações lado a lado.

  5. Na parte principal da janela, no menu suspenso, selecione Set View > UV viewport.

    Comando da janela de visualização UV.

    Os UVs desembrulhados aparecem à esquerda e o objeto 3D aparece à direita.

    UVs desembrulhados e objeto 3D.

  6. No painel Geometria , selecione Labs>Saída>Labs Maps Baker para adicionar um nó maps_baker1 .

    Comando Labs Maps Baker.

  7. Arraste para conectar o ponto de saída na parte inferior do nó autouv1 ao ponto de entrada na parte superior esquerda do maps_baker1 nó. (O ponto superior esquerdo é o nó entrada de resolução BAIXA .)

    Conectando o nó autouv1 ao nó maps_baker1.

  8. Arraste para conectar o ponto de saída na parte inferior do nó particlefluidsurface1 ao ponto de entrada no canto superior direito do maps_baker 1 nó. (O ponto superior direito é o nó entrada de ALTA resolução .)

    Conectando o nó Particlefluidsurface1 ao nó Maps_baker 1.

  9. Selecione o nó maps_baker1 e, em Bake, altere o valor do Campo Pré-visualizar canal para difundir. Em Opções de cozimento, defina o campo Mapa difuso como difuso.

    Opções de cozimento.

    Dica

    Para salvar seu projeto em uma pasta específica, selecione o botão Seletor de arquivos ao lado do campo Diretório de saída que está mostrado na ilustração anterior. Quando você cria uma textura, o arquivo de textura .png é salvo em uma pasta render criada na pasta raiz do projeto salvo. Ao salvar seu projeto em sua própria pasta, você facilita a localização da textura preparada.

  10. Selecione o nó maps_baker1 e, no painel de opções, selecione Bake.

    Captura de tela do botão Assar.

  11. Clique com o botão direito do mouse no painel Geometria para abrir o menu TAB e selecione Gerenciadores>Material Network para adicionar um nó matnet1 à cena.

    Comando Rede de Materiais.

  12. Clique duas vezes no nó matnet1 para abrir o painel VEX Builder .

    Nó Matnet.

  13. Clique com o botão direito no painel VEX Builder e selecione Shaders > Principled Shader para adicionar um material Principled Shader .

    Comando Shader com princípios.

  14. No painel de opções, na guia Superfície , use os controles deslizantes para alterar o valor do campo Rugosidade para 0,6 e o valor do campo Metálico para 0,1. (Você pode definir esses campos como quiser, mas descobrimos que esses valores são um bom ponto de partida quando usados ​​com os valores padrão.)

    Rugosidade e campos metálicos.

  15. Na guia Texturas , em Cor base, selecione Usar textura caixa de seleção. Em seguida, selecione o botão Seletor de arquivos e selecione o *_color.png arquivo de textura que você salvou no render pasta anteriormente. O shader de princípios agora está pronto para uso.

    Observação

    Sinta-se à vontade para modificar ainda mais o material. Para os fins deste tutorial, esta configuração é suficiente.

    Use a caixa de seleção Textura e a textura selecionada.

  16. No painel VEX Builder , selecione o botão Voltar (seta para a esquerda) para retornar ao Painel Geometria .

    Botão para voltar.

  17. Selecione Material > Material para colocar um nó de material no painel Geometria .

    Comando de materiais.

  18. Arraste para conectar o ponto de saída na parte inferior do nó autouv1 ao ponto de entrada na parte superior do material1 nó.

    Conectando o nó autouv1 ao nó material1.

  19. Selecione o nó material1 e selecione o botão Seletor de operador . Em seguida, na caixa de diálogo Choose Operator , selecione file1>matnet1>principledshader1 para selecionar o shader de princípio que você criou anteriormente.

    Escolha o botão Operador e o arquivo de material selecionado.

  20. Selecione no lado direito do nó para ativá-lo na parte principal da janela.

A textura é renderizada na parte superior do seu objeto 3D de baixo polígono. Se parecer aceitável, passe para a próxima etapa.

Textura renderizada no modelo de baixo polígono.

Exporte o modelo para um arquivo .glb

Nesta etapa, você exportará o modelo para um arquivo .glb para que ele possa ser usado com Dynamics 365 Guides e Power Apps.

  1. Clique com o botão direito do mouse no painel Geometria para abrir o Menu TAB e selecione Exportar>Saída ROP GLTF.

    Comando de saída ROP GLTF.

  2. Arraste para conectar o ponto de saída na parte inferior do nó material1 ao ponto de entrada na parte superior do rop_gltf1 nó.

    Conectando o nó material1 ao nó rop_gltf1.

  3. No painel superior, altere o valor do campo Tipo de exportação para glb.

    Glb selecionado no campo Tipo de exportação.

  4. Selecione o botão Seletor de arquivos ao lado do campo Arquivo de saída e insira um nome e um destino para o arquivo . arquivo glb. Certifique-se de adicionar .glb ao final do nome do arquivo. Quando terminar, selecione Aceitar.

    Botão Seletor de Arquivo e campo Arquivo.

  5. Selecione Render to Disk para finalizar a exportação e criar o arquivo .glb.

    Botão Renderizar para disco.

Crie um modelo para reutilizar suas configurações para outras nuvens de pontos

Para economizar tempo e esforço, você pode criar um modelo. Dessa forma, as configurações criadas para uma nuvem de pontos podem ser usadas para outras nuvens de pontos. Embora você ainda precise selecionar manualmente Bake e provavelmente terá que ajustar alguns valores, você pode automatizar a maior parte do processamento.

Criar um modelo

  1. Substitua a geometria que está sendo usada atualmente por uma geometria padrão. Esta etapa torna o arquivo de modelo leve, para que seja carregado rapidamente.

    1. No painel Geometria , selecione no meio do nó do arquivo para alternar para o menu Arquivo na parte superior painel.

    2. Altere o valor do campo Arquivo de geometria para default.bgeo e selecione Recarregar geometria.

    3. Observe que a geometria foi redesenhada para que agora seja um cubo genérico.

    4. Altere o nome do arquivo para algo genérico, como Modelo.

    Geometria redesenhada.

  2. Selecione Arquivo > Salvar e insira um nome que você lembrará, como Prep_Template.

    Salvar comando.

  3. Feche o Houdini.

Usar o modelo

  1. Abra o Houdini, selecione Arquivo>Abrir e selecione o modelo que você acabou de criar.

    Comando aberto.

  2. No painel Geometria , selecione no meio do nó do arquivo para alternar para o menu Arquivo na parte superior painel. Em seguida, selecione o botão Seletor de arquivos ao lado do campo Arquivo de geometria para selecionar o arquivo de nuvem de pontos .ply.

    Nó selecionado e botão Seletor de Arquivos.

  3. Selecione Recarregar geometria para carregar a nuvem de pontos na cena.

    Botão Recarregar Geometria.

  4. Vá para o nó maps_baker1 e selecione Bake para criar uma nova textura para seu objeto 3D.

    Botão Assar.

  5. Selecione no lado direito do nó material1 para visualizar seu modelo consolidado.

    Lado direito do nó Material.

  6. Siga uma destas etapas:

    • Se você estiver satisfeito com o objeto 3D, vá para o nó rop_gltfB e selecione Render to Disk para exportar seu objeto 3D.

      Comando Renderizar para disco.

    • Se você não estiver satisfeito com a aparência do objeto 3D, ajuste as configurações de particlefluidsurface1, remesh, e polyreduce1 nós. Quando seu modelo parecer aceitável, prepare sua textura novamente e exporte o objeto 3D.

Visualize um objeto 3D em Dynamics 365 Guides ou Power Apps

Depois de preparar um objeto 3D, use os links a seguir para saber mais sobre como usar o modelo em Dynamics 365 Guides ou Power Apps:

Mais informações

As capturas de tela neste tutorial foram tiradas do programa Houdini para fornecer instruções claras sobre como usar o software Houdini. Saiba mais sobre SideFX Houdini.

A Microsoft Corporation não é responsável e isenta-se expressamente de qualquer responsabilidade por danos de qualquer tipo decorrentes do uso do Houdini ou da confiança nestas instruções. Este documento foi criado apenas para fornecer informações gerais aos nossos clientes e não leva em consideração quaisquer planos ou especificações de negócios individualizados.

O uso neste documento de nomes e imagens de marcas registradas é estritamente para fins informativos e descritivos, e nenhuma reivindicação comercial de seu uso, ou sugestão de patrocínio ou endosso, é feita pela Microsoft Corporation.