CINEMA 4D GI勉強会のまとめ
7月11日にGIアニメーションで発生するチラツキのGIフリッカーを消すにはどうしたらよいかということをテーマに勉強会を実施した。
参加者は、@gurukun237 さん@_koyo さん @llcheesell さん、@Aono_Y さん、 @seventhgraphics さんと@cr_market の6名。
当日は、色んな話が出て、それをまとめるのは難しいので、個人的に思いついたGIに関する設定方法としてまとめる。
GIフリッカーの原因
GIフリッカーの原因は、GIの計算を軽くするために使われているイラディアンスキャッシュやライトマップなどのGI計算の補間技術にある。たとえば、QMCのようなオブジェクトピクセルに対して総当りで計算するので、GIフリッカーは発生しない。その代わり、サンプル数が少ないと好感度フィルムで撮影したようなグレインノイズが発生するし、計算も非常に遅い。
イラディアンスキャッシュやライトマップは、シーンに合わせて計算するポイントを適度に抽出(サンプリング)して各ポイント間を補間して計算するため、グレインノイズはなくスムーズな結果が得られる。この時のサンプルされるポイントの位置や補間の計算がフレーム間で微妙に変わることがチラツキ(GIフリッカー)の原因となる。
R15では、この問題を解消するためにイラディアンスキャッシュが見直されレンダリング結果がQMCに近くなるアルゴリズムが採用された。というのも、フリッカーのないQMCに結果が近づけば、フリッカーが発生しないはずというわけだ。もう一つのメリットとして、以前のバージョンではGIフリッカーの発生を抑えるため、イラディアンスキャッシュをフレーム間で補間することで解決しようというアプローチが取られていたが、GIアニメーションをレンダリングするには全フレームをプレパス計算を1台のマシンで計算して、全体のキャッシュファイルを作成しなければならず、さらにあとのフレームになるほどレンダリング時間がかかるという問題が発生していた。そのため、GIの計算にネットワークレンダリングが使えないという大きな問題を抱えていたが、各フレームの計算結果をQMCに近づけることで、アニメーション全体のプレパス計算も不要になるコンセプトをもとに開発された。
GIフリッカーをなくすにはQMCを
では「そうやって開発されたR15で、実際にはGIフリッカーは消えるの?」と聞かれたら、答えは「シーンによる」。すこし動きが速めで、光がよく回るようなシーンではプライマリとセカンダリにイラディアンスキャッシュを設定して、サンプル数を高めにしてやるとフリッカーは気にならないことが多い。しかし、小さい光源で拡散反射光で全体を照明するようなシーンやディテールの非常に細かいシーンはどうしてもフリッカーが発生する。
レンダリング設定を変えてレンダリングしたが、IR+IR、IR+LMはマフラーのあたりにフリッカーが発生している。QMCは若干ノイズを感じられるが、フリッカーはない。レンダリング時間はどれも1時間強。
設定は、フィジカルスカイでサンプル品質は低
- IR+IR: 反射回数3 / サンプル数128
- IR+LM: 反射回数16 / サンプル数512 / パス数10000 / サンプルサイズ5cm / スケールワールド / ラジオシティマップを構築オン / プレフィルタオン / 補間方式固定
- QMC: 反射回数3 / サンプル数16
このへんは勉強会に参加した人たちも、色々設定を行っているがどうしても消えないため、GIは使わずにGI風のライティングをしたり、結局QMCで計算してしまうということだった。また、事前に海外のアーティストにもGIアニメーションのレンダリング設定をどうしているか聞いたが、結局はQMCが一番いいという結論だった。
実際、外構のようなオープンな空間であれば、拡散反射回数を1~2回に抑えることによってQMCでも許容できる時間でレンダリングできる場合があるようだ。
オープンなシーンはQMC+フィジカルレンダラーで
QMCで品質を上げるのはサンプル数を上げるだけだ。他の設定は一切ない。ただ、サンプル数は上げるとそれに比例してレンダリング時間が伸びる。ここで注意が必要なのは、レンダラーはフィジカルレンダラーを使うべきという点。次の図を見てもらうとわかるが、GIの設定が同じでもノイズの量が全く違う。フィジカルレンダラーを使うと、同じサンプル数でもノイズが減っているのがわかる。フィジカルレンダラーのサンプリングがGIのノイズも減らしてくれる。
ただし、フィジカルレンダラーのサンプル品質を上げると全体のレンダリング時間が伸びるので、最終レンダリングではフィジカルレンダラーのサンプル品質とGIのサンプル数のバランスを考えて調整する必要がある。
設定の追い込み方としては、GIのサンプル数は極力減らし(1~4)、フィジカルのサンプル品質は低か、プログレッシブにしてライティングを調整。ファイナルレンダリング用の設定は、フィジカルのサンプル品質を低~中あたりに決め打ちして、GIのサンプル数をレンダリング時間と品質のバランスがとれたところまで上げるという感じが良いだろう。
GIのサンプル数については、イラディアンスキャッシュほど高い値を使う必要はない。
V-Rayもブルートフォースのスピードアップをしたり、Arnoldが注目されている件も考えると、QMCのような総当り方式が間違いないという結論に。
インテリア系のシーンだが、QMCでは現実的なレンダリング時間で行えないので、この辺についてはまだ研究の余地があるという結論に。