[Omniverse] Movie Capture : 動画出力でのサンプリング調整

[Omniverse] アニメーション時のモヤモヤを緩和/Post Processing」では、
PLATEAUのシーンを使い、Sun Studyを使って時間により太陽の動きをシミュレートしました。
今回はmp4の動画ファイルを出力し、そのときのモヤモヤを緩和します。
Omniverse Create 2022.1.3で確認しました。

レンダリングは、RTX-Interactive(Path Tracing)としています。

目安となる解像度とパストレーシングの最終描画時間を知る

Viewportの上にあるShow/Hide(目玉のアイコン)をクリックしてポップアップメニューを表示、
ResolutionとPathTracingをOnにしました。

これにより、解像度とパストレーシングでレンダリングしたときの最終的な経過時間が秒で得られます。

この場合は、解像度は1043 x 500、レンダリング時間は1.18秒となっています。
Sun Studyの時間を変化させて、レンダリング時間がかかる最大をざくっと知っておきました。
この情報は後で使います。

Movie Capture : 動画出力

Sun Studyの5:46AM~6:00PMまでをアニメーション出力することにしました。

メインメニューより「Window」-「Rendering」-「Movie Capture」を選択します。

Movie Captureウィンドウが表示されます。

mp4を出力

「Movie Type」を「sunstudy」に変更。
「Resoultion」で解像度を指定します。ここでは、16:9の900 x 506ピクセルとしました。

Renderingの「Render Preset」でレンダリングの種類を選択します。
ここでは「Use Current」としました。

Viewportで指定していたパストレーシングのレンダリングになります。

Outputの「Path」に出力するパス、「Name」で出力ファイル名と「mp4」を指定しました。

「Capture Sequence」ボタンを押すと、動画出力が開始されます。

プログレスバーが表示されるので、終了まで待ちます。

以下のようにmp4形式で動画出力されました。


ただ、モヤモヤが出ています。
このモヤモヤの正体は、大雑把に言うと「パストレーシングのピクセルサンプリング数が足りない」のが原因になります。
これを調整していきます。

動画出力の流れ

動画出力の際はOutputの「Path」で指定されたパスに「Name」で指定されているフォルダが作成され、
まずそこに1フレームごとに静止画が出力されます。
最後に、それぞれの静止画をマージしてmp4に出力しています。

Overwrite existing frame imagesをOnにする

動画を再度出力する場合の注意点として、Outputの「Overwrite existing frame images」をOnにしておいてください。

こうしないと静止画の画像が上書きされないため、動画出力のパラメータを変えても反映されないように見えてしまいます。

Path Trace samples per pixel(per subframe)を調整

Renderingの「Path Trace samples per pixel(per subframe)」は、「1サブフレーム」でのサンプリング数を指定します。
「サブフレーム」はモーションブラーのために1フレームをさらに分割したときのフレームです。
「Subframes per frame」で確認できます(デフォルト5)。
「Subframes per frame」x「Path Trace samples per pixel(per subframe)」が1フレームでのサンプリング数に相当します。
「Path Trace samples per pixel(per subframe)」のデフォルトは1のため、8を与えてみました。

この場合は、5 x 8 = 40サンプリング/フレームに相当することになります。
このサンプリング数はシーンにより適値が変わります。

参考として、パストレーシングのデフォルトの最大サンプリング数は
Render Settings - Interactive(Path Tracing) - Path-Tracing - Total Samples per Pixelで64が設定されています。

もちろん、このサンプリング数が大きくなればなるほど時間がかかります。
再度「Capture Sequence」ボタンを押して動画出力を行いました。

Capture Progressにプログレスバーが表示されます。
「Current frame time」を見ることで1フレームのレンダリング時間がだいたいわかります。
この値は0.0秒から始まり、1フレームのレンダリングで目まぐるしく更新されます。

このシーンの場合は約1.8秒くらいでしょうか。
「Average time perframe」で1.81秒となっており、平均すると1フレームはこの秒数かかるようでした。
一番はじめに「解像度は1043 x 500、レンダリング時間は1.18秒」という解像度に対するレンダリング時間がある程度求めていました。
この秒数以上なら問題なさそう、というざっくりとした基準になると思います。

動画出力は以下のようになりました。


これで、木の部分でのモヤモヤが解消されました。

今回はここまでです。