ダイナモピクチャーズ

LAB

ダイナモ研究所

VR映像への取り組み(2)
レンダリング

パノラマ撮影用カメラブループリントを作成しました。
(②-⑤)公式のプラグインStereoPanoramicMovieCaptureは当時は動作が不安定だったので、UE4のフォーラムなどで一般的な方法として紹介されてたSceneCaptureComponentCubeを使いCubeRenderTargetを元に、カメラ回転を付加するシェーダーを作成しました。

② UE4での作業画面。360°レンダリングは、SceneCaptureComponentCubeから出力されたCubeRenderTargetをマテリアルを介して板ポリにエクイレクタングラー展開、撮影する独自のブループリントを使用。UE4ではよく知られた方法。

③ ②のCubeRenderTargetを展開するための方向ベクトルを作成するマテリアル関数。Custom(コード)から出力された方向ベクトルをFixRotateAboutAxisNormalsでXYZ(UE4のrotateOrder)の順に、カメラ回転量だけ各軸回転させると、カメラ回転込みのエクイレクタングラー展開する事ができる。

④ ③を用いてCubeRenderTargetを展開するマテリアル。隣接する8ピクセルもサンプリングして平均を取りブラーをかける事でジャギーを軽減させている。このマテリアルがアサインさせる板ポリゴンは最前面に描画いてほしいので、TranslucencyでDisable Depth Testを使用している。

⑤ ④の効果比較、上がブラーなし、下がブラーあり。CubeRenderTargetのsizeXを4096(8k相当)、最終出力が4kなので、ブラーを掛けるとスーパーサンプリングな状態に。