Table of Contents

Exibição de conteúdo espacial 3D

Ao usar AR, normalmente é necessário exibir objetos virtuais. Em sample de teste simples, formas geométricas simples podem ser usadas, mas para desenvolvimento voltado ao consumidor geralmente é necessário exibir modelos 3D e animações de alta precisão, e eventos e interações podem ser acionados ao clicar em nós do modelo.

Modelos

Os modelos 3D populares atualmente geralmente são compostos por triangle mesh. Para que o modelo pareça realista, precisamos atribuir material a cada triângulo. Material geralmente implementa algum lighting model, e seu conteúdo é composto por texture e parâmetros do lighting model.

  • Texture determina a cor base de cada ponto no triângulo. As texture de todos os triângulos são colocadas em uma ou mais diffuse texture. Em alguns usos avançados, texture também pode ser usada para representar a direção normal ou outros parâmetros de cada ponto.
  • Lighting model define como um objeto interage com a luz. Um exemplo comum é PBR. Lighting model geralmente é implementado com shader. Os parâmetros de um PBR lighting model incluem cor, metallic, roughness etc.

No desenvolvimento de aplicações, modelos 3D geralmente não são carregados diretamente em OpenGL / Metal / Vulkan / Direct3D, mas carregados usando um 3D engine. Um 3D engine exige alguns formatos específicos de modelo 3D, como o formato obj / mtl, antigo e relativamente legível, e o formato glTF atualmente popular.

Animação

Para fazer o modelo se mover, é necessário skeletal animation. Bones se refere a grandes nós do modelo 3D que mantêm movimento consistente durante movimento rigid-body.

Para exibir animação, é necessário atualizar continuamente em runtime a posição e a pose (transformation matrix) dos nós do modelo. A maioria dos 3D engine fornece recursos de animação. Basta editar a animação no software de criação de animações e exportá-la em um formato suportado pelo 3D engine, então ela pode ser usada no 3D engine. O formato glTF mencionado acima também inclui recursos de animação.

Interação

Quando o usuário clica em um nó do modelo, às vezes é necessário acionar eventos e interações. Normalmente, bones em skeletal animation são nomeados, e collision detection ou ray detection é usado para acionar eventos no clique e retornar o nome do bone clicado. O tratamento de eventos pode ser feito com scripts ou código da aplicação.

Nota

Se você não tem experiência com 3D engine, é altamente recomendável considerar Unity para desenvolver sua aplicação. EasyAR Sense Unity Plugin oferece bom suporte a Unity. Se você usar outros 3D engine, poderá enfrentar menos suporte e menos recursos disponíveis.