Table of Contents

AR 駆動の 3D レンダリング

AR アプリケーションの開発では、AR コンテンツのレンダリングという基本的な問題を解決する必要があります。この記事では、平面画像トラッキングを例に、AR アプリケーションの基本モジュール、フロー、およびレンダリング実装について説明します。

典型的な AR アプリケーションフロー

典型的な AR アプリケーションは通常、カメラ画像から特定の画像、物体、またはシーンを識別し、その位置と姿勢を追跡し、その位置と姿勢に従って仮想コンテンツ(3D モデル)をレンダリングして表示するプロセスです。

image tracking

上図は平面グラフィックトラッキングの AR アプリケーション例

以下はアプリケーションフローの概要図です。

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

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

フローには以下のモジュールが含まれます。

モジュール 役割
物理カメラ 入力画像フレームのシーケンスを提供。画像フレームには画像、画像生成のタイムスタンプが含まれ、場合によってはカメラの空間的位置と姿勢も含まれる
トラッカー 画像フレームから追跡対象の位置と姿勢を計算。追跡対象に応じて、平面画像トラッカーや 3D オブジェクトトラッカーなど様々なトラッカーが存在する
レンダラー カメラ画像と追跡対象に対応する 3D モデルを画面にレンダリングするために使用。一部の AR グラスではカメラ画像をレンダリングせず、3D モデルのみをレンダリングする場合もある

スマートフォン上のレンダリング

スマートフォン上のレンダリングは、カメラ画面のレンダリングと仮想物体のレンダリングの 2 つに分けられます。

カメラ画面のレンダリング

camera image

カメラ画面レンダリング時には、いくつかの注意すべきパラメータがあります。

  • スケーリングモード

    通常、カメラ画面を画面全体またはウィンドウ全体にフィットさせる必要があり、この際にカメラ画面と画面/ウィンドウのアスペクト比が一致しない問題が発生します。

    カメラ画面の中心と画面/ウィンドウの中心を揃え、アスペクト比を維持することを前提とすると、一般的なスケーリングモードは 2 つあります:等倍スケーリング、等倍フィット。

    スケーリングモード 効果
    等倍スケーリング 画面にすべてのコンテンツを表示するが、左右または上下に黒帯が生じる
    等倍フィット 黒帯は生じないが、左右または上下で画面の一部が切り取られる
  • カメラ画像の回転

    スマートフォンでは、物理カメラが記録する画像は通常、本体に対して固定されており、画面表示方向の変化に伴い変化しません。しかし、スマートフォン本体の向きの変化は、画像の上下左右の方向定義に影響を与えます。レンダリング時には、現在の画面表示方向も表示される画像の方向に影響します。

    通常、レンダリング時には、画面表示方向に対するカメラ画像の回転角度を決定する必要があります。

  • カメラ画像の反転

    フロントカメラを使用する場合など、鏡のように見えるように画面を左右反転させる必要がある場合があります。

仮想物体のレンダリング

virtual object

スマートフォン上で仮想物体をレンダリングするには、仮想物体とカメラ画面を位置合わせする必要があります。これには、レンダリングカメラと物体の両方を現実空間と完全に対応する仮想空間に配置し、物理カメラと同じ視野角、アスペクト比を使用してレンダリングする必要があります。カメラ画面と仮想物体が通過する透視投影変換は全く同じですが、カメラ画面の透視投影変換の大部分は物理カメラ内で発生し、仮想物体の透視投影変換は完全に計算プロセスです。

ヘッドマウントディスプレイ上のレンダリング

ヘッドマウントディスプレイ上のレンダリングはスマートフォンとは若干異なり、2 つのケースに分けられます。

  • VST

    Video See-Through は、ヘッドマウントディスプレイが物理カメラで画像を捕捉し、そのカメラ画像と仮想コンテンツをヘッドマウントディスプレイの画面に表示する AR 技術を指し、代表例は Vision Pro です。通常、カメラ画像と仮想コンテンツの透視投影行列はヘッドマウントディスプレイが提供する SDK によって設定され、外部では仮想コンテンツの位置と姿勢のみを設定します。追跡に使用する物理カメラと画面上にレンダリングされるカメラ画像のカメラは異なる位置にある可能性があり、レンダリング時に座標変換が行われます。

  • OST

    Optical See-Through は、ヘッドマウントディスプレイの画面が透明で、ヘッドマウントディスプレイが画面上に仮想コンテンツのみを表示する AR 技術を指し、代表例は HoloLens です。通常、仮想コンテンツの透視投影行列はヘッドマウントディスプレイが提供する SDK によって設定され、外部では仮想コンテンツの位置と姿勢のみを設定します。追跡に使用する物理カメラと画面上にレンダリングされるカメラ画像のカメラは異なる位置にある可能性があり、レンダリング時に座標変換が行われます。

プラットフォーム別ガイド

AR 駆動の 3D レンダリングはプラットフォームに密接に関連しています。対象プラットフォームに応じて、以下のガイドを参照して開発を行ってください: