Table of Contents

AR-gesteuertes 3D rendering

Die Entwicklung von AR-Anwendungen muss ein grundlegendes Problem lösen: das Rendering von AR content. Dieser Artikel verwendet planar image tracking als Beispiel und beschreibt die grundlegenden Module, den Ablauf und die Rendering-Implementierung einer AR-Anwendung.

Typischer Ablauf einer AR-Anwendung

Eine typische AR-Anwendung erkennt meist bestimmte Bilder, Objekte oder Szenen aus camera images, verfolgt deren position und pose und rendert virtual content (3D models) entsprechend dieser position und pose.

image tracking

Die obige Abbildung zeigt beispielsweise eine AR-Anwendung für planar image tracking.

Der Ablauf der Anwendung ist unten dargestellt.

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

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

Der Ablauf enthält die folgenden Module.

Modul Aufgabe
Physical camera Liefert eine sequence von input image frames. Ein image frame enthält das image, den timestamp der image-Erzeugung und manchmal auch position und pose der camera im Raum
Tracker Berechnet position und pose des tracking target aus image frames. Je nach tracking target gibt es verschiedene trackers, zum Beispiel planar image tracker und 3D object tracker
Renderer Rendert die camera image und das dem tracked object entsprechende 3D model auf den Bildschirm. Bei einigen AR glasses wird die camera image möglicherweise nicht gerendert, sondern nur das 3D model

Rendering auf Telefonen

Rendering auf Telefonen besteht aus zwei Teilen: Rendering der camera image und Rendering der virtual objects.

Rendering der camera image

camera image

Beim Rendering der camera image müssen einige Parameter beachtet werden.

  • Scaling mode

    Üblicherweise muss die camera image den gesamten Bildschirm oder ein Fenster ausfüllen. Dabei muss das unterschiedliche aspect ratio zwischen camera image und screen/window behandelt werden.

    Wenn der Mittelpunkt der camera image am Mittelpunkt von screen/window ausgerichtet und das aspect ratio beibehalten wird, gibt es zwei gängige scaling modes: fit und fill.

    Scaling mode Wirkung
    Fit Zeigt den gesamten content auf dem Bildschirm, lässt aber links und rechts oder oben und unten schwarze Balken
    Fill Lässt keine schwarzen Balken, schneidet aber links und rechts oder oben und unten Teile des image ab
  • Camera image rotation

    Auf Telefonen ist das von der physical camera aufgezeichnete image normalerweise relativ zum Gerätekörper fixiert und ändert sich nicht mit der screen display orientation. Änderungen der Ausrichtung des Telefonkörpers beeinflussen jedoch, wie wir oben, unten, links und rechts des image definieren. Beim Rendering beeinflusst auch die aktuelle screen display orientation die Ausrichtung des angezeigten image.

    Normalerweise muss beim Rendering ein rotation angle der camera image relativ zur screen display orientation bestimmt werden.

  • Camera image flipping

    In manchen Fällen wird die Frontkamera verwendet. Dann muss das image normalerweise horizontal gespiegelt werden, damit es wie ein Spiegel aussieht.

Rendering von virtual objects

virtual object

Beim Rendering von virtual objects auf einem Telefon müssen die virtual objects mit der camera image ausgerichtet werden. Dazu müssen sowohl rendering camera als auch objects in einem virtual space platziert werden, der vollständig dem real space entspricht, und mit demselben field of view und aspect ratio wie die physical camera gerendert werden. Camera image und virtual objects durchlaufen identische perspective projection transforms, mit dem Unterschied, dass die perspective projection transform der camera image größtenteils in der physical camera stattfindet, während die perspective projection transform der virtual objects vollständig ein Rechenprozess ist.

Rendering auf headsets

Rendering auf headsets unterscheidet sich vom Rendering auf Telefonen und muss in zwei Fälle unterteilt werden.

  • VST

    Video See-Through bezeichnet eine AR-Technologie, bei der ein headset über physical cameras images aufnimmt und anschließend camera images und virtual content auf dem Bildschirm des headset anzeigt. Ein typisches Beispiel ist Vision Pro. Üblicherweise werden die perspective projection matrices von camera images und virtual content durch das vom headset bereitgestellte SDK gesetzt, und externer Code muss nur position und pose des virtual content setzen. Die physical camera für tracking und die auf dem Bildschirm gerenderte camera image können sich an unterschiedlichen positions befinden; beim Rendering werden coordinate transforms angewendet.

  • OST

    Optical See-Through bezeichnet eine AR-Technologie, bei der der Bildschirm des headset transparent ist und das headset nur virtual content auf dem Bildschirm anzeigt. Ein typisches Beispiel ist HoloLens. Üblicherweise wird die perspective projection matrix des virtual content durch das vom headset bereitgestellte SDK gesetzt, und externer Code muss nur position und pose des virtual content setzen. Die physical camera für tracking und die auf dem Bildschirm gerenderte camera image können sich an unterschiedlichen positions befinden; beim Rendering werden coordinate transforms angewendet.

Plattformspezifische Leitfäden

AR-driven 3D rendering ist eng mit der Plattform verbunden. Nutzen Sie je nach Zielplattform die folgenden Leitfäden für die Entwicklung: