Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Game Development
  2. Intel RealSense
Gamedevelopment

Como fazer um modelo 3D da sua cabeça usando Blender e uma câmera RealSense

by
Difficulty:IntermediateLength:MediumLanguages:
This post is part of a series called Intel RealSense for Game Developers.
Text Input for Games With Just an Intel RealSense Camera
Get Your Head in the Game With Intel RealSense
Sponsored Content

This sponsored post features a product relevant to our readers while meeting our editorial guidelines for being objective and educational.

Portuguese (Português) translation by Jonathan Ramos (you can also view the original English article)

Estou muito animado com a computação sensorial: uma ideia onde coisas inteligentes sentem o ambiente, estão conectadas, tornando-se uma extensão do usuário. Como evangelista da Intel Software (e um programador por hobby), tenho bastante sorte de experimentar estas possibilidades usando tecnologia de ponta da Intel. Anteriormente, eu tinha escrito sobre digitalização 3D do mundo ao seu redor em tempo real e colocando um objeto virtual, neste tutorial, eu gostaria de explicar como fazer o inverso, digitalizar você mesmo em 3D e em seguida, acrescentar este objeto no mundo virtual.

Mais especificamente, nós iremos:

  1. Digitalizar sua cabeça usando uma câmera RealSense e o SDK.
  2. Converter o arquivo 3D do formato OBJ para PLY (para edição no Blender).
  3. Converter as cores das vértices para um mapa de textura UV.
  4. Edite a malha 3D para ter um baixo número de vértices e polígonos.

Terminaremos com um objeto 3D colorido e pronto para ser usado na Unity. (No próximo tutorial, vamos ver como realmente enviar isso para Unity, e como você poderia usar em um jogo.)

Você vai precisar:

Digitalizando sua cabeça

Depois de instalar o SDK, vá no Charm Bar (no Windows 8) ou no menu Iniciar (no Windows 7 ou 10) e procure por RealSense SDK Sample Browser. Clique com o botão direito do mouse e escolha Executar como administrador.

Finding the RealSense SDK Sample Brower in Windows 8

No navegador, você encontrará uma seção chamada Common Samples. Estas são amostras que funcionarão na câmeras RealSense frontal e traseira. Encontre a amostra chamada Scan 3D (C++).

The RealSense SDK Common Samples

Como digitalizar sua cabeça

  • Selecione Run na seção 3D do Scan (C++) no navegador.
  • Coloque a cabeça na frente da câmera e você a verá no modo de exibição do scanner. Mantenha até que a segunda janela aparece.
  • Quando a segunda janela aparecer, comece a girar em uma direção (lentamente), e depois inverta para tentar cobrir todos os cantos.
  • Quando um loop for completado, mova a cabeça pra trás e pra frente, e espere um pouco. Nos últimos segundos. Mantenha-se olhando para a frente por cima da câmera, para que seus olhos fiquem em uma posição estática.
  • Quando a verificação for concluída, uma janela será aberta, permitindo que você arraste e gire o modelo. O modelo será salvo na pasta Documentos como 3Dscan.obj.
  • Você pode executar novamente a amostra várias vezes até gostar do resultado.

Dicas para digitalizar

  • A amostra é projetada para rastrear um objeto 3D enquanto ele gira na frente da câmera. Isto significa que você pode fazer uma digitalização de vários lados.
  • Se parte do objeto está girando e outra parte fica estática, isso vai confundir o algoritmo de rastreamento e você vai acabar com uma digitalização ruim. Então, quando digitalizar sua cabeça, não vire apenas seu pescoço para fazer a digitalização, gire todo o seu tronco.
  • Você pode digitalizar a frente, atrás, esquerda e direita. Com prática, é possível digitalizar um objeto de todos os ângulos.
  • Você deve digitalizar em um lugar com boa iluminação. Evite sombras e reflexo brilhantes, pois isso será gravado na textura 3D.

Converter para o formato PLY

O formato OBJ é o formato padrão, que você começa a partir da digitalização. Para usá-lo no Blender (e mais tarde na Unity), podemos convertê-lo para PLY usando uma ferramenta gratuita chamada MeshLab. Então, baixe, instale e execute o MeshLab, se você já não tiver feito isso.

No menu File, selecione Import. Localize o arquivo 3Dscan.obj que você criou na seção anterior.

MeshLabs Import Mesh dialog

Depois que você importar o objeto, ele deve aparecer na tela. Você pode clicar na parte inferior do objeto e arrastar para cima para girar o objeto e examiná-lo.

Você deve ver a malha texturizado. As informações de cor são armazenadas como cores de vértice, significando que cada vértice está colorida com os pixels obtidos a partir da câmera RGB quando ele digitalizou sua cabeça.

My head in MeshLab

Clique em File > Export Mesh As. Na caixa de diálogo que aparecerá, selecione Stanford Polygon File Format (*.ply) no menu Files of type:

Saving an OBJ as a PLY in MeshLab

Salve o PLY em algum lugar fácil de encontrar.

Conversão das cores das vértice em um mapa de textura UV

A ideia aqui é importar o arquivo 3D para o Blender, fazer uma cópia dele, limpar a cópia e mapear as cores das  vértices com um mapa UV para a nova versão duplicada.

Baixe, instale e execute o Blender, se já não tiver feito isso.

Importando o objeto para o Blender

Criar um novo projeto no Blender, selecione Import > Stanford (.ply), selecione o arquivo PLY exportado do MeshLab:

Importing a PLY file in Blender

Depois de importá-lo, você verá que as texturas não estão visíveis:

Textureless head in Blender

No entanto, se você alternar para o modo Texture, você verá que as cores do RGB do exame agora são mapeadas para o modo de textura:

Switching to Texture view in Blender
Utilize este menu para alternar para modo de exibição Texture.

Para ver as cores corretamente, alterne para outro modo de exibição — desta vez, Material. No painel da direita, Clique no ícone Materials e crie um novo Material.

No editor, no menu Shading selecione Shadeless e em Options, marque Vertex Color Paint. Isso definirá as cores da vértice para o material do objeto.

Material options in Blender

Agora, isto ainda não é viável para nós. Está cheio de buracos e o número de polígonos ainda é muito maior do que gostaríamos que fosse para usá-lo em um jogo.

Precisamos criar uma versão desta malha que possamos limpar e mapear as cores das vértices para uma textura UV. Essa versão é a versão que usaremos na Unity.

Criando uma cópia da malha

Selecione Object > Duplicate Objects a pressione Enter. Não mova o mouse.

Duplicating objects in Blender

Em seguida, selecione Object > Move to Layer e selecione o quadrado à direita da camada atual (o segundo quadrado da esquerda na fila de cima).

Moving the mesh to another layer in Blender

Vá para a lista de assets e renomeie as malhas. Nomeie uma como Original Mesh e a outra como Second Mesh. Isto irá ajudá-lo mais tarde.

Reduzindo a contagem de polígonos da cópia

Selecione a segunda malha, selecione a camada relevante e alterne para modo de exibição de Material para Solid.

No painel da direita, clique no ícone que se parece com uma chave inglesa para adicionar um modificador. Vamos reduzir a contagem de polígonos desta malha e limpá-la.

Selecione Tools > Remesh. Na caixa de diálogo, ajuste Oct Tree entre 7 e 8. Em Mode escolha Smooth e ative Smooth Shading. Isso fará você perder o mapeamento do material:

Smooth shading no material mapping in Blender

Clique em Apply. Agora você tem uma malha mais limpa para o mapa de vértice e UV.

A clean mesh in Blender

Aplicando as vértices e o mapa UV

Na segunda malha mude para o modo de edição. Clique em Select > Select All.

A selected mesh

Crie uma nova janela e mude-a para a UV/Image Editor para ver o mapa de UV.

UVImage Editor in Blender

Na janela 3D, selecione Mesh > UV Unwrap > Smart UV Project.

Smart UV Project

Na janela UV Map, selecione New para criar uma textura. Desligue o alfa. Nomeie a textura com o nome que achar apropriado para o modelo final.

Alterne para o modo Object. Você verá um modelo preto e um mapa UV preto. Sem problemas!

Agora selecione as duas camadas clicando com Shift para que ambas ficam visíveis.

Turning on multiple layers in Blender
Selecione as duas camadas...
Two visible layers
... e seu painel de exibição ficará assim.

No lista de objetos, selecione a malha original. Clique no ícone de câmera.

Na seção Bake, marque Selected to Active. Certifique-se que Bake to Vertex Color está desligado.

Bake panel in Blender

Na seção Scene, defina Color Management para None.

Scene panel in Blender

No menu Assets, selecione a malha original. Em seguida, mantenha pressionada a tecla Shift e selecione a segunda malha. (Você deve fazer isso nessa ordem). Certifique-se de que ambas as camadas estão visíveis com os ícones de olho e câmera.

Clique no ícone de câmera. Na seção Bake, clique em Bake.

Baked mesh in Blender

Agora você deve ter uma textura mapeada. Para fazer isso, desligue a primeira camada, você verá apenas a camada com a segunda malha. Selecione o modo de exibição Texture e você vai ver sua malha texturizada com seu mapa UV.

Você vai notar algumas coisas estranhas onde a imagem preencheu áreas vazias da malha:

Auto-filled in areas in a mesh in Blender

Você pode alternar para o modo Texture Paint para limpá-las. Você pode também alternar para modo de Sculpt para preencher as áreas que faltam, bem como para limpar ou adicionar recursos a sua malha.

Exportando a malha

Uma vez que você tenha limpado sua malha, você pode preparar para exportar:

  1. Certifique-se o mapa UV tem o mesmo nome da malha e está no mesmo diretório.
  2. Vá para a janela UV Map, selecione Image > Save As, e navegue até o diretório onde você vai salvar a malha.
  3. Selecione File > Export to .FBX e digite o mesmo nome que você deu ao mapa UV.

Seu modelo está completo!

Conclusão

Você digitalizou sua cabeça, reduziu o o número de polígonos, limpou o modelo e exportou como um modelo 3D pronto para uso em outros aplicativos. Em um futuro tutorial, vamos importar esta malha 3D para a Unity e ver como ela pode ser usada em jogos.

O programa de inovação Intel® Software ajuda desenvolvedores independentes inovadores que tenham capacidade de criar e demonstrar projetos que olham para frente. Os inovadores têm oportunidades de palestrar e apresentar demonstrações em eventos do setor e encontros de desenvolvedores.

Intel® Developer Zone oferece ferramentas e informações para desenvolvimento de aplicações multi-plataforma, plataforma e tecnologia da informação, amostras de código e ajuda de experts para ajudar os desenvolvedores inovar e ter sucesso. Junte-se a nossas comunidades para a Internet das Coisas, Android *, tecnologia Intel® RealSense™, código moderno, Desenvolvimento de jogos e Windows * para baixar ferramentas, acessar os dev kits, compartilhar ideias com os desenvolvedores e participar em hackathons, concursos, roadshows, e eventos locais.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.