nDisplay のプロジェクション ポリシー

マルチスクリーン ディスプレイに対応するために Unreal Engine でサポートされているポリシーのリファレンス。

Choose your operating system:

Windows

macOS

Linux

nDisplay のプロジェクション ポリシー

新機能の開発戦略の一環として、Epic Games は Unreal Engine (UE4) ) に機能を追加できる既存のツールの評価を常時実施しています。調査を重ねた結果、Epic Games の拡張ディスプレイの目標実現に役立つ次の複数のテクノロジーを見出しました。

現在サポートされているプロジェクション ポリシーは以下の通りです。

ポリシー

説明

"screen"

"simple" (シンプル) という名称を "screen " に変更

"camera"

カメラ

"manual"

手動

"mesh"

基にするメッシュ (4.25 で追加)

"picp_mesh"

Picp_mesh

"mpcdi"

MPCDI

"picp_mpcdi"

PICP_MPCDI

"easyblend"

Easyblend

Simple (Screen (スクリーン) に名称を変更)

Simple は標準の 2D フラット パネル ディスプレイでのレンダリングに使用される標準のポリシーです。このポリシーでは、カメラ錐台をビルドするために 3D 空間における矩形を使用する必要があります。この矩形 ( screen ) は、次のようにコンフィグ ファイルに定義してから、simple プロジェクション ポリシーで参照する必要があります。

[screen] id="scr_demo" loc="X=2,Y=0,Z=0" rot="P=0,Y=0,R=0" size="X=1,Y=1"
[viewport] id="vp_demo" x="0"  y="0"  width="800" height="800" projection="proj_simple_demo"
[projection] id="proj_simple_demo" type="simple" screen="scr_demo"

この例では、nDisplay のルート部から 2 m の場所にあるプロジェクション スクリーンを定義しています。スクリーンのサイズは 1 x 1 平方メートルです。

Camera (カメラ)

nDisplay では通常の Unreal Engine のカメラや Cine カメラからビューを取得できないため、 camera ポリシーが導入されました。このポリシーを使用すると、任意の UE4 カメラのビューを nDisplay のビューポートにマッピングできます。

[viewport] id="vp_demo" x="0"  y="0"  width="800" height="800" projection="proj_camera_demo"
[projection] id="proj_camera_demo" type="camera"

CameraPolicy.png

コンフィギュレーション ファイルが基づいている主な概念の 1 つは、アプリケーションとアプリケーションのコンテンツ (アセット) から nDisplay トポロジーを完全に分離することです。完全に分離することで、任意のコンフィグ ファイルをあらゆるアプリケーションで使用することができます。このような理由から、ブループリントや C++ API を使用してカメラを手動で設定する必要があるのです。

以下で取り上げる mesh ポリシーにも同じ理由が当てはまります。

Manual

nDisplay で未サポートのキャリブレーション システムの汎用的なソリューションとして、新たに manual プロジェクション ポリシーが導入されました。このポリシーで重要なのは、特定のビューポートの視錐台をユーザーが明示的に設定するということです。

ステレオ レンダリングでは、2 つの視錐台が必要です。プロジェクション マトリクスまたは視錐台の角度のいずれかを指定することで、視錐台を 2 つ使用することができます。次は、モノラル セットアップおよびステレオ セットアップに対応したそれぞれのアプローチのサンプルです。

### ケース 1:カスタマイズされたマトリクスで指定された視錐台

[viewport] id=vp_1 x=0   y=0   width=1000  height=600 projection=proj_manual_1
[viewport] id=vp_2 x=0   y=0   width=1000  height=600 projection=proj_manual_2
[projection] id=proj_manual_1 type="manual" rot="P=0,Y=0,R=0" matrix_left="[0.5 0 0 0] [0 0.999999 0 0] [1 0 0 1] [0 0 1 0]" matrix_right="[0.500001 0 0 0] [0 1 0 0] [-1 0 0 1] [0 0 1 0]"
[projection] id=proj_manual_2 type="manual" rot="P=0,Y=0,R=0" matrix="[0.500001 0 0 0] [0 1 0 0] [-1 0 0 1] [0 0 1 0]"

### ケース 2:カスタマイズされた角度で指定された視錐台

[viewport] id=vp_1 x=0   y=0   width=1000  height=600 projection=proj_manual_1
[viewport] id=vp_2 x=0   y=0   width=1000  height=600 projection=proj_manual_2
[projection] id=proj_manual_1 type="manual" rot="P=0,Y=0,R=0" frustum_left="l=-15 r=0 t=10 b=-10" frustum_right="left=0 right=15 top=10 bottom=-10"
[projection] id=proj_manual_2 type="manual" rot="P=0,Y=0,R=0" frustum="l=0 r=15 t=10 b=-10"

Mesh (メッシュ) ベースおよび PICP_Mesh

たわみ付けレンダリングのワークフローを簡素化するために、次の 2 つの新しいプロジェクション ポリシーが追加されました。

  • 通常使用される "mesh" ポリシー

  • "picp_mesh" という名称のインカメラ VFX ポリシー (インカメラ視点画像、すなわち picp )

  • これにより、PFM (ポータブル フロート マップ) ワークフローを使用することなくメッシュを割り当てるだけで、レンダリング出力を効果的に幾何学補正できるようになりました。

通常の使用

*` [projection] id="proj_picpmesh_right" type="mesh" `

  • 幾何学補正メッシュのソースは、次のように "mesh " プロジェクション セットを含むビューポートに割り当てられた SceneMeshComponent 参照で表されます。

  • [viewport] id="warped_viewport" x="0" y="0" width="1152" height="960" projection="proj_picpmesh_right"

  • 幾何学補正のマッピングには UV チャンネル 0 を使用します。

DisplayClusterProjection.png

インカメラ VFX

  • インカメラ VFX 視錐台レンダリング用にメッシュベースの幾何学補正 "picp_mesh" ポリシーが作成されました。

  • [projection] id="proj_picpmesh_up" type="picp_mesh"

  • メッシュの割り当てには、DisplayClusterProjectionAPI ではなく、PICP Module API を使用する必要があります。

InCameraVFX.png

MPCDI および PICP_MPCDI

この業界プロトコルである MPDCI に基づく複雑なプロジェクトに対応するため、MPDCI 規格に対応しました。

MPCDI (Multiple Projection Common Data Interchange) 規格は、VESA の Multi-Projector Automatic Calibration (MPAC) タスク グループによって開発されました。MPCDI は、プロジェクション キャリブレーション システムが、マルチディスプレイ構成でデバイスと通信するための標準のデータ形式です。

この規格では、マルチプロジェクター システムが、個々のディスプレイ コンポーネントを幅広いデバイスを使用して単一のシームレスな映像に結合するために必要なデータを生成する方法を提供します。この規格により、システムに導入された新しいハードウェアを簡単に統合できます。

MPCDI は、以下をはじめとするコンテンツ制作者やベンダーによって業界全体で使用されています。

  • Scalable Display Technologies

  • VIOSO

  • Dataton Watchout

  • 7thSense Design

MPCDI 規格に対応することで nDisplay は複雑なプロジェクター システムを記述するデータを標準化および定型化された方法で読み取り、格納することができます。そのため、ユーザーは業界の幅広いツールと簡単に通信および相互作用することができます。

MPCDI は実装されたばかりであるため、Unreal Engine にはプレビス機能はまだ搭載されていません。この問題を回避するために、Unreal Editor 内で、およびランタイム時に MPCDI ファイル データをプレビューするためのソリューションを開発中です。

現段階では、ユーザーは MPCDI ファイルから生成されたメッシュ データに基づいた物理ディスプレイのプロシージャルなメッシュを生成できます。

mpcdi プロジェクション ポリシーを使用する方法は 2 つあります。1 番目の方法は、ネイティブなアプローチで、使用する .mpcdi ファイル、バッファ、リージョンをユーザーが指定する必要があります。2 番目は、.mpcdi に格納されているファイル (基本的にはファイル アーカイブ) をユーザーが明示的に指定する方法です。

.mpcdi ファイルの使用方法

[projection] id=proj_mpcdi_demo type="mpcdi" file="D:\config.mpcdi" buffer="Mosaic" region="displayOrigin" origin=mpcdi_origin

明示的な指定

[projection] id="proj_mpcdi_demo" type="mpcdi" pfm="geom_left.pfm" alpha="geom_left_a.png" beta="geom_left_b.png" scale=1 origin=stage_origin

EasyBlend (Scalable Display)

EasyBlend キャリブレーション データの統合は_Scalable SDK_ によって可能になります。この SDK では幾何学補正/ブレンド/台形補正機能を使用できます。そのため、曲面やドーム形の面など、平面以外の複雑な表示面にマルチプロジェクターを使用して表示することができます。

Scalable Display Technologies は、複雑なプロジェクション システムのソフトウェアと SDK に注力している企業です。同社の SDK は、幾何学補正とブレンドによって単一の映像を拡大表示するソリューションを提供します。Scalable Display Technologies は、大型の映像の幾何学補正やブレンドを処理する EasyBlend ソリューションを既に提供していたため、Epic Games では Unreal Engine に EasyBlend ソリューションを組み込むことにしました。

Unreal Engine の nDisplay では、サポートしているすべてのモード (MPCDI に基づくネイティブの幾何学補正とブレンド、およびカスタム実装) で業界標準のミドルウェアである Scalable SDK と EasyBlend を組み込むことで、幾何学補正とブレンドをサポートしています。

EasyBlend との統合を実装したことで、複雑なプロジェクション システム構成でもシームレスなエクスペリエンスを提供できるようになりました。サードパーティ製のツールまたはソフトウェアを使用してキャリブレーションが完了すると、ユーザーは nDisplay コンフィギュレーション ファイルでパラメータを 2、3 個指定するだけで実行可能な状態にすることができます。

[projection] id=proj_easyblend_1 type="easyblend" file="E:\LocalCalibrationFlat\ScalableData.pol" origin=easyblend_origin_1 scale=0.1
[projection] id=proj_easyblend_2 type="easyblend" file="E:\LocalCalibrationFlat\ScalableData.pol_1" origin=easyblend_origin_1 scale=0.1
[projection] id=proj_easyblend_3 type="easyblend" file="E:\LocalCalibrationFlat\ScalableData.pol_2" origin=easyblend_origin_1 scale=0.1

VIOSO

複雑なサーフェス上でのプロジェクター ラッピングとソフトエッジ ブレンドで VIOSO キャリブレーション データのネイティブ SDK 統合の利用が可能となりました。VIOSO のツールおよびソフトウェアでキャリブレーションを完了後、プロジェクトで使用するために nDisplay コンフィギュレーション ファイルにパラメータをいくつか追加します。

[projection] id=proj_vioso_1 type="vioso" file="D:\left.vwf" origin="origin_vioso" base="[1000 0 0 0] [0 1000 0 0] [0 0 1000 0] [0 0 1000 1]"

DomeProjection

巨大なドーム型のサーフェス上でのプロジェクター ラッピングとソフトエッジ ブレンドで DomeProjection キャリブレーション データのネイティブ SDK 統合の利用が可能となりました。DomeProjection のツールおよびソフトウェアでキャリブレーションを完了後、プロジェクトで使用するために nDisplay コンフィギュレーション ファイルにパラメータをいくつか追加します。

[projection] id=proj_domeprojection_1 type=domeprojection file="D:\static\config.xml" origin=domeprojection_origin_1 channel=0
[projection] id=proj_domeprojection_1 type=domeprojection file="D:\static\config.xml" origin=domeprojection_origin_1 channel=1
[projection] id=proj_domeprojection_1 type=domeprojection file="D:\static\config.xml" origin=domeprojection_origin_1 channel=2
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
閉じる