Rendering 3D orientado por AR
O desenvolvimento de aplicações AR precisa resolver um problema fundamental: o rendering de AR content. Este artigo usa planar image tracking como exemplo para descrever os módulos básicos, o workflow e a implementação de rendering de uma aplicação AR.
Workflow típico de uma aplicação AR
Uma aplicação AR típica geralmente reconhece imagens, objetos ou scenes específicos a partir de camera images, rastreia sua posição e pose, e renderiza virtual content (3D models) de acordo com essa posição e pose.
![]()
Por exemplo, a figura acima mostra uma aplicação AR de planar image tracking.
O workflow da aplicação é mostrado abaixo.
flowchart TD
CameraDevice[Camera Device]
Tracker[Tracker]
Renderer[Renderer]
CameraDevice -->|Image Frame| Tracker
Tracker -->|Image Frame + Tracked Pose| Renderer
O workflow contém os seguintes módulos.
| Módulo | Função |
|---|---|
| Physical camera | Fornece uma sequence de input image frames. Um image frame inclui a image, o timestamp em que a image foi gerada e, às vezes, também a posição e pose da camera no espaço |
| Tracker | Calcula a posição e pose do tracking target a partir dos image frames. Dependendo do tracking target, existem vários trackers, como planar image tracker e 3D object tracker |
| Renderer | Renderiza a camera image e o 3D model correspondente ao tracked object na tela. Em alguns AR glasses, a camera image pode não ser renderizada, e apenas o 3D model é renderizado |
Rendering em telefones
O rendering em telefones é dividido em duas partes: rendering da camera image e rendering de virtual objects.
Rendering da camera image

Ao renderizar a camera image, há alguns parâmetros que precisam de atenção.
Scaling mode
Normalmente a camera image precisa preencher toda a tela ou uma janela. Nesse caso, é necessário lidar com a diferença de aspect ratio entre a camera image e a screen/window.
Se alinharmos o centro da camera image com o centro da screen/window e mantivermos o aspect ratio inalterado, há dois scaling modes comuns: fit e fill.
Scaling mode Efeito Fit Mostra todo o content na tela, mas deixa barras pretas à esquerda e à direita ou acima e abaixo Fill Não deixa barras pretas, mas corta parte da image à esquerda e à direita ou acima e abaixo Camera image rotation
Em telefones, a image registrada pela physical camera geralmente é fixa em relação ao corpo do dispositivo e não muda com a screen display orientation. Mas mudanças na orientação do corpo do telefone afetam como definimos cima, baixo, esquerda e direita da image. Durante o rendering, a screen display orientation atual também afeta a orientação da image exibida.
Normalmente, durante o rendering, é necessário determinar um rotation angle da camera image em relação à screen display orientation.
Camera image flipping
Em alguns casos, a câmera frontal é usada. Nesse momento, a image geralmente precisa ser invertida horizontalmente para parecer um espelho.
Rendering de virtual objects

Ao renderizar virtual objects em um telefone, os virtual objects precisam se alinhar com a camera image. Isso exige colocar tanto a rendering camera quanto os objects em um virtual space que corresponda completamente ao real space, e renderizar usando o mesmo field of view e aspect ratio da physical camera. A camera image e os virtual objects passam por perspective projection transforms idênticas, exceto que a maior parte da perspective projection transform da camera image ocorre dentro da physical camera, enquanto a perspective projection transform dos virtual objects é inteiramente um processo computacional.
Rendering em headsets
O rendering em headsets é diferente do rendering em telefones e precisa ser dividido em dois casos.
VST
Video See-Through é uma tecnologia AR em que o headset captura images por physical cameras e depois exibe as camera images e o virtual content na tela do headset. Um exemplo típico é Vision Pro. Normalmente, as perspective projection matrices das camera images e do virtual content são configuradas pelo SDK fornecido pelo headset, e o código externo só precisa configurar a posição e pose do virtual content. A physical camera usada para tracking e a camera image renderizada na tela podem estar em posições diferentes, e coordinate transforms são aplicadas durante o rendering.
OST
Optical See-Through é uma tecnologia AR em que a tela do headset é transparente e o headset exibe apenas virtual content na tela. Um exemplo típico é HoloLens. Normalmente, a perspective projection matrix do virtual content é configurada pelo SDK fornecido pelo headset, e o código externo só precisa configurar a posição e pose do virtual content. A physical camera usada para tracking e a camera image renderizada na tela podem estar em posições diferentes, e coordinate transforms são aplicadas durante o rendering.
Guias específicos de plataforma
AR-driven 3D rendering está intimamente relacionado à plataforma. Consulte os guias a seguir para desenvolver de acordo com sua plataforma alvo: