UE4から出力したパノラマをwebGLで見る

2021年あけましておめでとうございます.
昨年は本当に大変な一年となりましたが,ひとまず無事切り抜けることができました.感謝という他ありません.苦しくなるようなニュースも見聞きしていますが,明日は我が身とも言えます.危機感を持ちつつ今年も精進していきたいと思います.

マスクなしの頃の日常がもはや懐かしい…

いつもは参拝に行きますが,さすがに今年は外出は控えて引きこもっています.せっかくなので昨年から勉強していたことを形にしておきたいと思い,UE4でパノラマ出力してwebGLで見るまでを試していました.

サンプルはこちらのURLから(少し重めのコンテンツなのでスマホやWifiでない方はご注意ください)※IEでは見れません.あと読み込めない場合はリロードしてみてください.
https://makototamura.com/webgl/Sample/panorama/apartman/room1/index.html

UE4からレイトレーシング4Kパノラマを出力する

シーンは時間短縮のためマーケットプレイスで良さそうなインテリアシーンを購入.レイトレーシングとはいうものの,ワークフローを確認するためでもあったため,あまり細かい設定はしていません.ところどころPreviewの文字が見えますし,反射もおかしな箇所がありますが無視してパノラマレンダリングの要領をつかむことに時間を割きました...

問題のパノラマの出力方法ですが, StereoPanoramicMovieCapture プラグインを使用する方法は動作が重かったため,SceneCaptureCubeを使用しました.

ただ,一か所のキャプチャなら簡単でしたが,4Kのキューブマップを沢山配置するとリアルタイムでキャプチャしているためさすがに重く,レンダリング時以外は解像度を小さくするなど何か工夫が必要だなと感じるところですが,そもそもUE4自体それほど詳しくないのでこの辺りに関しては追々考えることにします.

そもそそもリアルタイムレイトレーシングしながらで4Kパノラマを複数キャプチャしてたら重いのは当然ですね.

レンダリングはMovie Render Queueを使う

Movie Render Queueを使うことにします.こちらはシーケンサーのレンダリング設定とは違い作業画面とレンダリング時の品質を切り離すことができるので,非常に便利です.特にコンソール変数を使用する事で好みの設定を作れますし,もちろんプリセットとして保存することもできます.DCCツールのレンダリング設定と似ているといえば似ていますね.ただこちらはアニメーションレンダリング用ですが.しかし今回はアニメーションではなくパノラマ1枚1枚のレンダリングに使用しています.品質の上げ方は調べながら試したのでまだまだ改善の余地ありです.

Movie Render Queueの良いところはいわゆるスクリーンショット型レンダリングではないため,作業時は低負荷で行い,レンダリング時は高品質で行うというまんまプリレンダリングのような振る舞いが可能な点でしょうか.これは便利だ.

ドキュメントはこちら
https://dq8iqaixvew1d.cloudfront.net/ja/RenderingAndGraphics/RayTracing/MovieRenderQueue/index.html

webGLへ

あとはwebGLで見れるようにするだけです.いちおうここではスポットの座標確認用にCinema 4Dを使用していますが,他のDCCツールやwebGLビューワーなどを使っても問題はないです.スポット座標の書き出しから設定までもう少し効率化できれば作業時間は短くできそうです.Cinema 4Dから書き出したデータから座標値を読み込めば良いだけなのでそれも追々テストしたいと思います.時間短縮は本当に大事だ.

それにしてもwebGLの他の方のリッチコンテンツを見るとすごいなと感心するばかりです.