Rendering 3D guidato da AR
Lo sviluppo di applicazioni AR deve risolvere un problema fondamentale: il rendering di AR content. Questo articolo usa planar image tracking come esempio per descrivere i moduli di base, il workflow e l'implementazione del rendering di un'applicazione AR.
Workflow tipico di un'applicazione AR
Un'applicazione AR tipica di solito riconosce immagini, oggetti o scene specifiche dalle camera images, ne traccia position e pose, e renderizza virtual content (3D models) secondo quella position e pose.
![]()
Ad esempio, la figura sopra mostra un'applicazione AR per planar image tracking.
Il workflow dell'applicazione è mostrato di seguito.
flowchart TD
CameraDevice[Camera Device]
Tracker[Tracker]
Renderer[Renderer]
CameraDevice -->|Image Frame| Tracker
Tracker -->|Image Frame + Tracked Pose| Renderer
Il workflow contiene i seguenti moduli.
| Modulo | Ruolo |
|---|---|
| Physical camera | Fornisce una sequence di input image frames. Un image frame include l'image, il timestamp in cui l'image è stata generata e talvolta anche position e pose della camera nello spazio |
| Tracker | Calcola position e pose del tracking target dagli image frames. Per tracking target diversi esistono tracker diversi, come planar image tracker e 3D object tracker |
| Renderer | Renderizza la camera image e il 3D model corrispondente al tracked object sullo schermo. Su alcuni AR glasses, la camera image potrebbe non essere renderizzata e potrebbe essere renderizzato solo il 3D model |
Rendering sui telefoni
Il rendering sui telefoni è diviso in due parti: rendering della camera image e rendering dei virtual objects.
Rendering della camera image

Durante il rendering della camera image, ci sono alcuni parametri da considerare.
Scaling mode
Di solito la camera image deve riempire l'intero schermo o una finestra. In questo caso bisogna gestire il problema dell'aspect ratio diverso tra camera image e screen/window.
Se allineiamo il centro della camera image con il centro di screen/window e manteniamo invariato l'aspect ratio, ci sono due scaling modes comuni: fit e fill.
Scaling mode Effetto Fit Mostra tutto il content sullo schermo, ma lascia barre nere a sinistra e destra o sopra e sotto Fill Non lascia barre nere, ma ritaglia parte dell'image a sinistra e destra o sopra e sotto Camera image rotation
Sui telefoni, l'image registrata dalla physical camera di solito è fissa rispetto al corpo del dispositivo e non cambia con la screen display orientation. Tuttavia, i cambiamenti di orientamento del corpo del telefono influenzano il modo in cui definiamo alto, basso, sinistra e destra dell'image. Durante il rendering, anche la current screen display orientation influisce sull'orientamento dell'image visualizzata.
Di solito durante il rendering è necessario determinare un rotation angle della camera image rispetto alla screen display orientation.
Camera image flipping
In alcuni casi viene usata la fotocamera frontale. In questo caso di solito è necessario ribaltare l'image orizzontalmente, in modo che sembri uno specchio.
Rendering dei virtual objects

Quando si renderizzano virtual objects su un telefono, i virtual objects devono essere allineati con la camera image. Questo richiede di posizionare sia la rendering camera sia gli objects in un virtual space che corrisponda completamente al real space, e di renderizzare usando lo stesso field of view e aspect ratio della physical camera. La camera image e i virtual objects subiscono perspective projection transforms identiche, con la differenza che la perspective projection transform della camera image avviene in gran parte nella physical camera, mentre la perspective projection transform dei virtual objects è interamente un processo computazionale.
Rendering sui headset
Il rendering sui headset è diverso da quello sui telefoni e va diviso in due casi.
VST
Video See-Through indica una tecnologia AR in cui un headset cattura immagini tramite physical cameras e poi mostra camera images e virtual content sullo schermo del headset. Un esempio tipico è Vision Pro. Di solito, le perspective projection matrices di camera images e virtual content sono impostate dall'SDK fornito dal headset, e il codice esterno deve solo impostare position e pose del virtual content. La physical camera usata per tracking e la camera image renderizzata sullo schermo possono trovarsi in posizioni diverse, e durante il rendering vengono applicate coordinate transforms.
OST
Optical See-Through indica una tecnologia AR in cui lo schermo del headset è trasparente e il headset mostra solo virtual content sullo schermo. Un esempio tipico è HoloLens. Di solito, la perspective projection matrix del virtual content è impostata dall'SDK fornito dal headset, e il codice esterno deve solo impostare position e pose del virtual content. La physical camera usata per tracking e la camera image renderizzata sullo schermo possono trovarsi in posizioni diverse, e durante il rendering vengono applicate coordinate transforms.
Guide specifiche per piattaforma
AR-driven 3D rendering è strettamente legato alla piattaforma. Consultare le seguenti guide per lo sviluppo in base alla piattaforma target: