Azure Remote Rendering が動作するしくみ
Azure Remote Rendering は多数のコンポーネントで構成されており、それらはさらに複数のプロセスで構成されています。 このユニットでは、Azure Remote Rendering 内の次のコンポーネントと、各コンポーネントでの動作の基になっているプロセスについて説明します。
コンポーネント | 説明 |
---|---|
変換 | Azure Remote Rendering で使用する 3D アセットを準備します。 |
レンダリング セッション | クライアント デバイスと、リモート レンダリングを実行するサーバーとの間の接続を提供します。 |
クライアント SDK | HoloLens 2 などのデバイス上で、ローカルとリモートのホログラムを結合します。 |
変換
変換プロセスにより、Azure Remote Rendering で使用できるように 3D アセットが準備されます。これは、実行時に可能な限り効率的にレンダリングできるようにするために必要です。 モデルを Azure Blob Storage にアップロードすることにより、プロセスを開始します。
注意
現在、Azure Remote Rendering で変換できるモデル形式は、Filmbox (FBX) と Graphics Language Transmission Format です。
モデルをアップロードした後、変換プロセスを実行します。 変換が完了すると、変換されたモデルが Blob Storage に書き戻されます。
ヒント
アクティブにレンダリングされていないモデルは、Blob Storage 内に変更されずに残っています。
レンダリング セッション
変換が済んだら、クライアント デバイスと、変換された 3D モデルをレンダリングするサーバーの間にセッションを確立する必要があります。 このプロセスには 3 つのステップがあります。
- セッションを要求します。
- セッションに接続して、リモート レンダリングを実行します。
- セッションを終了します。
セッションとは
Azure Remote Rendering は、複雑なレンダリング タスクをクラウドにオフロードすることによって機能します。 これらのレンダリング タスクは、特定のクラウド サーバーで実行される必要があります。 サーバーには、複雑な 3D モデルをレンダリングするために必要な種類の GPU が搭載されています。 どのようなサーバーでも使用できるのではないため、必要な機能を備えたサーバーを使用できるように確保する必要があります。 これを行うには、"セッション" を要求します。
セッションには、次のコンポーネントが含まれています。
使用するサーバーを確保するためのリース要求。 リース要求において、実行するサーバーのサイズを選択します。 Standard または Premium を選択できます。 実行中のセッションの間に、このサイズ設定を変更することはできません。
重要
Standard サイズのサーバーによる Remote Rendering では、最大シーン サイズが 2,000 万多角形に制限されます。 Premium サイズのサーバーによる Remote Rendering では、ハードの上限は適用されません。ただし、コンテンツがサービスのレンダリング能力を超えた場合、パフォーマンスが低下する可能性があります。
モデルの読み込みと操作に関するすべてのコマンド。
レンダリング完了後にクラウド サーバーを解放するためのリース終了要求。
セッションは、次の表で説明する 3 つの基本フェーズで構成されます。
フェーズ | 説明 |
---|---|
セッションの開始 | このフェーズでは、Azure Remote Rendering によってセッションが自動的に作成されます。 ユーザーは、サーバーのサイズを要求し、セッションの Azure リージョンを指定します。 その後、セッションは開始中としてマークされます。 適切なサーバーが見つかると、Azure によって適切なサイズの VM がサーバーにコピーされて、Azure Remote Rendering ホストが作成されます。 VM が開始すると、セッションの状態は準備完了に移行します。 |
セッションの接続 | セッションの状態が準備完了になったら、デバイスをそれに接続できます。 接続されている間、3D モデルを読み込んで変更するためのコマンドが、デバイスによって送信されます。 |
セッションの終了 | セッションが不要になったら、それを停止する必要があります。 セッションを手動で停止しない場合、セッションのリース時間が経過すると自動的にシャットダウンされます。 |
レンダリング モード
レンダリング時には、サーバーからデバイス上でローカルに実行されているアプリケーションに、レンダリングされたフレームが返送されます。 次の表では、2 つのレンダリング モードについて説明します。
モード | 説明 |
---|---|
TileBasedComposition | このモードでは、関連するすべての GPU によって、画面に表示する特定のタイルがレンダリングされます。 Azure からクライアント デバイスにビデオ フレームとして送信される前に、メイン GPU でこれらのタイルを使用して最終的な画像が作成されます。 このモードのレンダリング品質は、DepthBasedComposition モードより若干優れています。 |
DepthBasedComposition | このモードでは、関連するすべての GPU により全画面解像度でレンダリングされますが、対象はメッシュのサブセットのみです。 メイン GPU での最終的な画像の合成により、パーツが深度情報に従って適切にマージされます。 |
注意
セッションに接続するときに、リモート レンダリング モードを指定します。
クライアント SDK
フレームがデバイスに到着した後、画像内に存在する可能性のあるすべてのローカル ホログラムと合成されます。 これにより、リモートとローカル両方のホログラムを組み合わせることができる真のハイブリッド レンダリング エクスペリエンスが提供されます。 つまり、多角形の数が多いリモート オブジェクトをレンダリングするだけで済みます。
ヒント
メニューや小さいモデルなどのコンテンツはローカル環境に保持します。