Table of Contents

Ar driven 3d rendering

O desenvolvimento de aplicativos AR requer resolver um problema fundamental: a renderização de conteúdo AR. Este artigo usará o rastreamento de imagens planas como exemplo para descrever os módulos básicos, fluxos e implementação de renderização de aplicativos AR.

Típico fluxo de aplicativo ar

Um aplicativo AR típico geralmente envolve reconhecer imagens, objetos ou cenas específicas a partir de imagens da câmera, rastrear sua posição e pose, e renderizar conteúdo virtual (modelos 3D) de acordo com essa posição e pose.

image tracking

Por exemplo, a imagem acima é um aplicativo AR de rastreamento de gráficos planos

Abaixo está um diagrama esquemático do fluxo do aplicativo.

flowchart TD
    CameraDevice[Camera Device]
    Tracker[Tracker]
    Renderer[Renderer]

    CameraDevice -->|Image Frame| Tracker
    Tracker -->|Image Frame + Tracked Pose| Renderer

O fluxo possui os seguintes módulos.

Módulo Função
Câmera física Fornece uma sequência de quadros de imagem de entrada. Os quadros de imagem incluem a imagem, o timestamp de geração da imagem e, às vezes, também podem incluir a posição e pose da câmera no espaço
Rastreador Calcula a posição e pose do alvo de rastreamento a partir do quadro de imagem. Dependendo do alvo de rastreamento, existem vários tipos de rastreadores, como rastreadores de imagem plana e rastreadores de objetos 3D
Renderizador Usado para renderizar a imagem da câmera e o modelo 3D correspondente ao objeto rastreado na tela. Em alguns óculos AR, pode não renderizar a imagem da câmera, apenas o modelo 3D

Renderização em smartphones

A renderização em smartphones é dividida em duas partes: renderização da cena da câmera e renderização de objetos virtuais.

Renderização da imagem da câmera

camera image

Ao renderizar a imagem da câmera, existem alguns parâmetros que requerem atenção.

  • Modo de escala

    Geralmente é necessário preencher toda a tela ou uma janela com a imagem da câmera, o que pode levar a problemas de incompatibilidade entre a proporção da imagem da câmera e a da tela/janela.

    Supondo que alinhemos o centro da imagem da câmera com o centro da tela/janela, mantendo a proporção inalterada, existem dois modos de escala comuns: escala uniforme e preenchimento uniforme.

    Modo de escala Efeito
    Escala uniforme Exibe todo o conteúdo na tela, mas pode haver bordas pretas nas laterais ou superior/inferior
    Preenchimento uniforme Não há bordas pretas, mas parte da imagem pode ser cortada nas laterais ou superior/inferior
  • Rotação da imagem da câmera

    Em smartphones, as imagens capturadas pela câmera física geralmente são fixas em relação ao corpo do dispositivo e não mudam com a orientação de exibição da tela. No entanto, mudanças na orientação do corpo do telefone afetam nossa definição das direções superior, inferior, esquerda e direita da imagem. Durante a renderização, a orientação atual de exibição da tela também afeta a direção da imagem exibida.

    Normalmente, durante a renderização, é necessário determinar um ângulo de rotação da imagem da câmera em relação à direção de exibição da tela.

  • Inversão da imagem da câmera

    Em alguns casos, a câmera frontal é usada, e nesse momento geralmente é necessário inverter horizontalmente a imagem para que pareça um espelho.

Renderização de objetos virtuais

virtual object

Para renderizar objetos virtuais em smartphones, é necessário alinhar o objeto virtual com a imagem da câmera. Isso requer que coloquemos a câmera de renderização e os objetos em um espaço virtual completamente correspondente ao espaço real, e usemos o mesmo campo de visão e proporção da câmera física para renderização. A transformação de projeção em perspectiva pela qual passam a imagem da câmera e o objeto virtual é exatamente a mesma, exceto que a maior parte da transformação da imagem da câmera ocorre na câmera física, enquanto a transformação do objeto virtual é inteiramente um processo computacional.

Renderização em headsets

A renderização em headsets apresenta algumas diferenças em relação aos smartphones e pode ser dividida em dois casos.

  • VST

    Video See-Through refere-se à tecnologia AR em que o headset captura imagens através de uma câmera física e exibe a imagem da câmera junto com conteúdo virtual na tela do headset. Um exemplo típico é o Vision Pro. Normalmente, a matriz de projeção em perspectiva para a imagem da câmera e o conteúdo virtual é configurada pelo SDK fornecido pelo headset, sendo necessário apenas definir a posição e pose do conteúdo virtual externamente. A câmera física usada para rastreamento e a câmera que renderiza a imagem na tela podem estar em posições diferentes, sendo realizada uma transformação de coordenadas durante a renderização.

  • OST

    Optical See-Through refere-se à tecnologia AR em que a tela do headset é transparente, exibindo apenas conteúdo virtual. Um exemplo típico é o HoloLens. Normalmente, a matriz de projeção em perspectiva para o conteúdo virtual é configurada pelo SDK fornecido pelo headset, sendo necessário apenas definir a posição e pose do conteúdo virtual externamente. A câmera física usada para rastreamento e a câmera que renderiza a imagem na tela podem estar em posições diferentes, sendo realizada uma transformação de coordenadas durante a renderização.

Guias específicos da plataforma

A renderização 3D impulsionada por AR está intimamente ligada à plataforma. Consulte os guias abaixo para desenvolvimento de acordo com sua plataforma de destino: