2016-12-06

pyro noiseless rendering

Pyro FX を Mantra でレンダリングする際にノイズを低減する方法を説明する。

これは、Houdini Advent Calendar 2016 の 6日目の記事です。

使用したHoudini ビルド: 15.5.673

1. 元シーン作成

  1. Houdini を起動、Create シェルフの Torus を Ctrlキーを押しながらクリック。
      トーラス形状 (torus_object1) が原点に作成される。
  2. torus_object1 を選択したまま、Pyro FX シェルフの Flames (一番左) をクリック。
      ノードネットワークには、シミュレーションネットワークのノードである pyro_sim とレンダリング用出力ノードの pyro_import の二つのノードが出来る。再生すればトーラス形状より炎が上がるのがわかる。
  3. ビューポートのカメラ位置を自分の見たい位置に調節し、Lights and Cameras シェルフの Camera を Ctrl キーを押しながらクリック。
      cam1 が出来る。これがレンダリング用カメラになる。
  4. パラメータビューで cam1 の View タブに行き、Resolution を 1024 x 1024 (または自分の使いたい解像度) に設定する。

      最初の 120フレーム。
  5. ビューポート上で 'D' キーを押し Display Options パネルを表示、下記の変更を行う Pyro ボリュームが見易くなる。
    1. 背景色を変えるには、Background タブの Color Scheme を Light (グラデーション) から Dark (黒)、または Grey (明るいグレー) に変更する。
    2. Scene タブ(16.0) で HDR Rendering をオンにする (15.5 までは Effects タブにあり)。
    3. Geometry タブで Volume Quality を Normal から High に変更する。

      使用するグラフィックボードにより表示に差異あり。
  6. シーンファイルを保存、$HIP を決定し、レンダリング画像およびキャッシュファイルの保存先を決める。
      このファイルをもとにレンダリングの調整を行なっていく。

2. レンダリング

  1. シミュレーションを再生し、64フレーム目に行く。
      このフレームで画質の調整を行なう。
  2. Render View へ行き、Camera を ROP Camera から /obj/cam1 に変更、Render ボタンをクリックして、レンダリングを一度実行。
      この結果、/out/mantra_ipr というレンダリング設定ノードが作成される。
  3. /out/mantra_ipr と表示された脇のボタン () をクリック、このノードのパラメータを別ウィンドウで開く。
  4. Camera 指定の直下にある Override Camera Resolution トグルをオンにして、Resolution Scale を "1/2 (Half Resolution)" とし、以後のレンダリング解像度を 512x512 で行なう。このレンダリング結果がこちら。左が RGB で、右がアルファ。

    Preview をオフにした場合、レンダリング時間2秒。よく見ると炎の周りの煙がピクセル化されていて荒い。
      アルファチャネルを Render View に表示するには、RenderView 下に折り畳まれた Color Correction Bar を表示する。
  5. Render View 下にある "Snap 1" となっているテキストフィールドを、"default" などと書き換え、左側のカメラアイコンをクリック。
      これで今のレンダリング画像がメモリに保存された。左側のスライダで保存した "default"と次にレンダリングを行う "Active Render" とで表示の切り替えが可能。
  6. mantra_ipr ノードの Rendering タブ以下、 Sampling タブに行く。
      炎のような半透明のボリューム形状のレンダリング精度に最も関わるパラメータは、以下の二つ。
      • Volume Quality (デフォルト値: 0.25)
      • Stochastic Samples (デフォルト値: 4)
  7. Stochastic Samples の値を 8 にする。

    レンダリング時間は同じく2秒。
  8. default2 となった新しい名前を stosample8 などとして、カメラアイコンをクリックして保存する。
      これで、default, stosample8, Active Render (stosample8と同じ) の3つをスライダで切り替えることが可能。
  9. Stochastic Samples の値を 16 にする。
      レンダリング時間は3秒。Stochastic Samples が8の場合よりも特にアルファがスムーズになったことがわかる。
  10. stosample9 となった新しい名前を stosample16 などとして、カメラアイコンをクリックして保存する。
      これで、default, stosample8, stosample16, Active Render (stosample16と同じ) の4つをスライダで切り替えることが可能。
  11. Volume Quality を 0.25 から 0.5 にする。
      レンダリング時間は4秒。RGB上でよりスムーズになったことがわかる。
  12. Volume Quality を 1 にすればさらにスムーズになる。ただし、レンダリング時間は8秒。

まとめ

  • Pyro ボリュームだけの場合、Min/Max Ray Samples, Noise Level などはあまり画質に影響を与えず、Volume Quality と Stochastic Samples が最も影響を与える。
    • Volume Quality が RGB に影響
    • Stochastic Samples が アルファに影響
  • Pyro ボリュームをそのままレンダリングしている場合であれば、上記二つはレンダリング時間に大きな負担をかけない。
  • しかし、Pyro をボリュームライトとしてレンダリングする場合、上記のパラメータを高い数値にしておくと、レンダリング時間に大きく跳ね返ってくる。 これに関しては、また次回。

最終更新: 2020-12-23

0 件のコメント:

コメントを投稿