R15のGI

CINEMA 4DおよびBodyPaint 3Dに関する一般的な議論や情報交換をするフォーラムです。

R15のGI

投稿記事by tofuji » 木 9 05, 2013 4:53 am

 さて、それではR15のデモ版を使ってGIをテストしてみます。

 8月に作った写真合成のシーンファイルをR14とR15に読み込ませてレンダリング時間を比較したところ、
R14.034が79秒、R15.037demoが350秒となりました。つまり、R15はR14に比べて4.4倍遅いということになります。

画像

サンプルファイル
http://www2.11moon.com/sample_files2013 ... esult4.zip


 これからGIの設定をいろいろと変えてみますが、CPUが1/3以下しか働いていないので、妥当といえば妥当な結果です。
 また、GIの設定を変えてどうにかなったとしても、一つ前のバージョンのファイルをそのままレンダリングできないというのは大きなマイナスです。

 いろいろな理由で古いバージョンを使っているプロダクションはたくさんありますし、
最新バージョンを使っているプロダクションでも、仕事の都合で古いファイルを再利用することはよくあります。
 そうした場合に、毎回レンダリング設定を根本からやり直す必要があるわけです。

 CINEMA 4Dでは、R12(リニアワークフロー)、R13(フィジカルレンダラー)、R14(GIモードの変更)、R15(GIモードの変更)
と4回連続してこの問題が発生しました。
それでは、CINEMA 4DのGIは「それほど高速に使いやすくなったのか」というとそんなことはありません。右往左往しているだけです。
 使えない新機能を付けるのは構いませんが、従来からあった使える機能はそのままにしておいてほしいものです。


---

 次に、イラディアンスキャッシュを新しい方式に変更してみましたが、よけい遅くなりました。

画像


 R14で大きく変わった「高」、「中」、「低」の中身はR15でまた変わっているようです。


---

 仕方がないので、サンプル数の値を大幅(1/8)に減らしてみました。

画像


 すると、レンダリング速度は22〜23秒と16倍も速くなりました。CPUが遊んでいる時間が減ったからだと思われます。

 ちなみにR14でサンプル数を同じように減らすと19秒になります。
ただし、R14の方が(少なくとも表向きは)イラディアンスキャッシュが細かくなっているので、レンダリング速度が同じになったわけではありません。
パラメータを同じにすれば、依然としてR15はR14よりはるかに遅いです。


---

 残された可能性は、R15はR14よりも粗いパラメータで同等のレンダリングができる、しかも高速に、ということです。
しかし、このシーンでは違いがよくわかりません。
 そこで、計算が難しいシーンを作って比較してみました。

画像

シーンファイル
http://www2.11moon.com/sample_files2013 ... ting_1.zip


 いろいろモードを変えて比較してみた結果、次のようなことが判りました。

1. 同じパラメータではR15の方が遅い。遅さは50%から350%で、設定やシーンによって大きく変わる。画質は同程度。
したがって、R15でパラメータを下げれば速くなるが、画質も下がる。

 現在のところ、R15でR14と同等の画質を同等の時間で得る方法はわかりません。少なくとも私には。


2. 「サンプル」数と画質の関係はR14でもR15でも変わらない(レンダリング速度は遅くなっている)。


3. 新しいイラディアンスキャッシュモードでは、各パラメータと画質やレンダリング速度の関係が、
古いイラディアンスキャッシュモードとかなり変わっている(ただし、何かがよくなっているとは思えない)。


4. QMCは、当然ながら全く使えない(テストをする気にさえならない)。


5. ラジオシティマップは、拡散反射を一回しか計算しないので、ほとんどの場合使えない(R13までのスカイトレーサーに似ている)。


6. ライトマップは、光漏れやノイズが非常に多いので全く使えない(少なくとも現状では)。
なんでこんな恥ずかしい機能を追加したのか知性を疑う。


7. プリセット(モード)から「フルアニメーション」とか「NET Render」といったトラップがなくなった。
 いいことではあるが、初心者はどうしたらいいんだろう。


---

 私はCINEMA 4DをR5から使ってきましたが、R15は初めてレンダラーが退化したバージョンです。
まあ、予想通りではありますが、悲しいことです。

 レンダラーだけで評価するなら、R14が一番優れています。しかし、R14にはOpenGLやスナップのバグが多いので、
総合的に考えるとR12が一番優れていると思います。
 R11までは、リニアワークフローや64bitに対応していないので、今の時代に使うのはちょっとつらいです。
最後に編集したユーザー tofuji [ 金 9 13, 2013 11:40 pm ], 累計 2 回
---

Toshio Fuji<gtofuji@gmail.com>

掲示板に書いたサンプルのまとめサイト
http://www2.11moon.com/index_as.html
tofuji
 
記事: 803
登録日時: 木 3 10, 2011 10:41 am
お住まい: 東京都渋谷区

Re: R15のGI

投稿記事by tofuji » 金 9 06, 2013 12:34 pm

 それでは次に、R15のGIの考え方と、具体的なパラメータの値について説明します。

 まず、MAXONの宣伝によるとR15のGIは「きれいになった」とか「速くなった」となっていますが、
両方そろえるとウソになります。
 正しくは、「きれいになったが、それ以上に遅くなった」であり、
「簡単なシーンでは速くなったが、重いシーンでは遅くなった」です。


 R15ではイラディアンスキャッシュの計算方法が変わりましたが、
これは簡単に言うとR14までオプション扱いだったいろんな機能を内部に統合したものです。
 したがって、光漏れやノイズ等が減っていますが、それ以上に重くなっています。

 「それ以上に」というのは、R14までであれば、単にサンプル数を増やすことでより短時間に同等の絵を出せていた、
という意味です。

 また、R14以前のファイルをR15に読み込むと、プライマリが「イラディアンスキャッシュ(旧)」という従来の計算方法になりますが、
セカンダリに(旧)を指定することはできません。
 そして、恐ろしいことに新しいイラディアンスキャッシュのパラメータを指定する方法がありません(お任せになります)。

 そのようなこともあって、R14以前のファイルをR15に読み込んでそのままレンダリングすると、重いファイルほど遅くなります。
 ただし、軽いファイルでは速くなる場合もあります。
 
 というわけで、R14以前のファイルをR15に読み込んでレンダリングする場合は、毎回GIの設定を変更する必要があります。


---

 R15でも実用になるのは「イラディアンスキャッシュ」だけです。
「ラジオシティマップ」や「QMC」や「ライトマップ」は無視して構いません。
 もしかしたら、これらの方式を使える場合があるかもしれませんが、その場合は当然イラディアンスキャッシュも使えるはずで、
無理してこれらの方式を使う必要はありません。
 
 
 それでは、まずR14で間接照明のシーンをレンダリングしてこれをリファレンスとし、R15でどうなるか実験してみます。

画像

サンプルファイル
http://www2.11moon.com/sample_files2013 ... ting_7.zip


 R14では「205秒」でした。アニメーションには辛いですが、静止画用としては十分な画質です。
 注意すべき点は、ガラスキューブの左の「屈折コースティクス」、左の壁の桟の周囲の「ノイズ」、正面の壁下端の「光漏れ」等です。

 これをR15に持っていってそのままレンダリングすると、計算時間は455秒となり、2.2倍の時間がかかりました。
画質は基本的に同じです。

 計算が重い部分に1個のコアがひっかかり、他のコアが休んでしまう現象が顕著に見られます。
これは、ストカスティックサンプルが大きい場合(4000以上)にひどくなり、小さい場合(1000以下)にはほとんど生じません。
 R14でも同じ現象はありましたが、気にするほどではありませんでした。


---

 次に、せっかくですからプリセットも調べてみます。

画像


1. 「インテリア・プレビュ」は、ラジオシティ・マップを使うモードです。
 拡散反射を1回しか計算しない機能(合計では2回)が、なんで「インテリア向け」に使われているのか理解に苦しみます。

 計算は81秒と速いですが、暗くてノイズが多く、プレビューの役にも立ちません。


2. 「インテリア・プレビュ(拡散反射回数・高)」は、ライトマップを使うモードです。

 計算は65秒と速く、明るいのでプレビューとしては使えます。


3. 「インテリア・高」は、イラディアンスキャッシュを使うモードです。
 しかし、拡散反射回数を自由に設定できるにもかかわらず、2回になっているためまともな絵がでません。
 また、レンダリング時間も258秒とかなり長くなります。

 試しに拡散反射回数を4回にしてみたところ、明るくなりましたが、計算時間は367秒に伸び、ノイズだらけでした。
「インテリア・高」は全体的にバランスの悪い設定で、なんでプリセットに入っているのか判りません。

画像


4. 「インテリア・高(拡散反射回数・高)」は、ライトマップを使うモードです。

 計算時間は91秒と非常に速いのですが、ノイズはむしろプレビュより増えています。
 マニュアルを読んで全てのパラメータを試してみましたが、
計算時間を10分以上(R14の3倍以上)与えてもノイズや光漏れを実用レベルに抑えることはできませんでした。

 ライトマップは、少なくとも現状では簡単なシーンに対するプレビュにしか使えません。
 マニュアルにもちゃんと「計算は速いが、光漏れする」と書いてあります。
「だったらなんでそんな使えない機能を金取って搭載したんだ」と誰でも思うでしょうね。


---

 最後に、R15における実用的な設定について説明します(修正、2013.10.22)。

 現在調整中


---

 R15のイラディアンスキャッシュが遅い理由は、次の絵を見れば一目瞭然です。

画像


 R14までのイラディアンスキャッシュは、必要に応じてサンプルポイントの密度を変えていました。
 つまり、明るさの変化が少ない部分は荒く、変化する部分は細かくサンプルしていたのです。

 このサンプル密度の最適化が、各レンダラーの画質とレンダリング速度を左右する最も重要なポイントで、
Vrayが評価されている理由の一つもこの部分の賢さにあります。

 ところが、R15は全くサンプル密度を最適化しません。不要なところでもビッチリ計算しています。
むしろ、こんだけ無駄な計算をやっても1.4倍の時間で終わるわけですから、「速い」とほめてあげたい気もしますが、頭悪すぎです。

 
 確かにR15は、光線の計算一本一本が速くなっているので、最適化が必要ない単純なシーンや、
ノイズや光漏れの目立たない明るいシーンではR14より速くなっています。

 しかし、そんなシーンを作るのはR14以前でも簡単なわけで、ユーザがR15に求めていたのは
「R14で作るのが難しいシーンをなんとかすること」だったはずです。しかし、残念ながら現実のR15は全くその回答になっていません。

 そのうち少しは修正されると思うので、特にR15の新機能が必要な人以外はそれまで使わないことをお勧めします。
---

Toshio Fuji<gtofuji@gmail.com>

掲示板に書いたサンプルのまとめサイト
http://www2.11moon.com/index_as.html
tofuji
 
記事: 803
登録日時: 木 3 10, 2011 10:41 am
お住まい: 東京都渋谷区

Re: R15のGI

投稿記事by tofuji » 火 2 04, 2014 3:01 pm

 R15のGI機能である「IR+LM」がR14の「IR」よりもいいという話があったので、再度テストしてみました。


 まず、ライトマップ(LM)の性質を一言でいうと、「速いが汚い」です。
これらの性質は、両方とも光の計算を「再利用する」ことによって生じます。

 一般に、「ライトマップは計算を再利用するから速い」と書かれていますが、「計算誤差も再利用されるので汚くなる」とはどこにも書かれていません。
不公平だと思います。

 常識的に、サンプル(測定)を繰り返してその値の平均を取れば、誤差が減り、画質は向上します。
ただし、これは「独立したサンプル」の場合です。
 もし、二回目以降のサンプルに最初のサンプルの値を流用すれば、誤差が増殖し、画質は汚いままです。

 例えば、統計の仕事をしている役所や会社で、「面倒だから、1ページ分の測定結果を100ページ分にコピペした」とか、
「面倒だから、20年前の調査結果を毎年コピペしていた」といった「手抜き」がばれて新聞に出ることがありますが、全く同じです。

 ライトマップの本質は「手抜き」であり、だから「速いが汚い」のです。


---

 「ライトマップが汚い」という事実は、実験をしなくても次の二つの事実から類推できます。

1. なぜライトマップを「プライマリの方式」として選択できないのか。
 汚すぎるので、セカンダリ以降の補助的な計算にしか使えない。

2. なぜライトマップには「プレフィルタ」と「補間方式」という2段階のぼかし機能がついているのか。
 汚すぎるので、盛大にぼかさないと使えない。


---

 それでは、まずR14のIRを「お手本」とします。

お手本(4_4096_16_200sec)
画像

サンプルファイル
http://www2.11moon.com/sample_files2014/20140204a/indirect_lighting_7_R14.zip

 サンプルの誤差を明示するために「補間方式」を「なし」にしているので、サンプルの段差が見えます。
しかし、「光漏れ」、「段差のノイズ」等はなく、「平面のちらつき」も軽微です。
 もう少し「サンプル」と「半径」を上げれば十分納品できます。レンダリング時間は200秒でした。


---

 次に、R15に移ります。

サンプルファイル
[url]http://www2.11moon.com/sample_files2014/20140204a/indirect_lighting_7_R15.zip [/url]


1. まず「インテリア - 高(拡散反射回数: 高)」のデフォルトを調べる(16_10000_0.01_8_23sec)。
画像

 一見そんなに悪くないですし、レンダリング時間も23秒と高速です。

 ただし、中央の柱の右側、および下に光漏れが発生しています。
このままサンプルを上げて解決できれば何の問題もないのですが、どうなるでしょうか。

 それから、立方体の影を見ると「LMが屈折コースティクスを計算しない」ということが判ります。


2. プレフィルタを外す(16_10000_0.01_23sec)。
画像

 次に、プレフィルタを外してみます。これが「LMの素の絵」です。
光漏れが解消していることから、「光漏れがプレフィルタによって発生していた」ということが判りました。


3. パス数を上げる(16_100000_0.01_162sec)。
画像

 次に、プレフィルタなしでスムーズな絵を出すため、「パス数」を上げてみます。
レンダリング時間は162秒と実質的にR14より長くなりましたが(R15ではこの後さらにIRの計算が必要だから)、
「段差のノイズ」、「平面のちらつき」とも致命的に残っています。

 また、LMはQMCと同様サンプル密度が均一なので、パス数を上げても「段差のノイズ」は解決できません。


4. パス数を戻して、サンプルサイズを小さくする(16_10000_0.001_29sec)。
画像

 それでは、段差のノイズを小さくするために「サンプルサイズ」を小さくしてみます。
見事に「汚い絵」が得られました。

 この絵を2.と比較すると、「同じパス数でサンプルサイズを小さくすると、個々のサンプルは汚くなる」ということが判ります。


5. そのままパス数を上げる(16_100000_0.001_175sec)。
画像

 そこで、パス数を上げてみました。R15ではこれ以上大きなパス数や、細かいサンプルサイズを指定できないので、
これが「LMで得られる最も精細でスムーズな絵」といえます。LMを使う人は、この絵をよく頭の中に叩き込んでおいてください。

 レンダリング時間は175秒で、R14のお手本よりかかっています。



---

 さて、ここまでの実験をまとめます。

1. LMでプレフィルタを使うと光漏れが発生する。
 当然。

2. LMはサンプル密度を最適化しない。
 したがって、「段差のノイズ」を減らすにはサンプルサイズを小さくするしかない。

3. LMでパス数を上げてもノイズが減らない。
 間違った計算結果を再利用しているから。

4. 素のLMは使えない。
 つまり、LMを仕事で使いたかったら、光漏れ覚悟でプレフィルタを最適化するしかない。

 結局、LMで一番重要なパラメータは「プレフィルタ」だと言えます。


---

 それでは、プレフィルタを最適化するための「戦略」を説明します。

1. IRよりレンダリングが遅くてはLMを使う意味がないので、IRより速くなるように最適化する。

2. IRよりきれいな絵を出すことは無理なので、LMは「汚い絵でも構わない仕事」か「シーンが単純で汚さが目立たない仕事」に割り切って使う。
 ただし、このような楽な仕事はIRでやっても問題なく終わるので、わざわざ面倒なLMを使う状況は考えにくい。



---
 
 次に、プレフィルタの性質についてまとめます。

1. プレフィルタを大きくすると光漏れするが、小さくするとノイズやちらつきが増える。

2. 両方を同時に満たすにはサンプルサイズを小さくする必要があるが、そうするとレンダリング時間が長くなる。

 つまり、LMを最適化するには「パス数」、「サンプルサイズ」、「プレフィルタサンプル数」の三つを連動して最適化する必要があります。



---

1. パス数とサンプルサイズを上げる(16_20000_0.005_40sec)。
画像

 デフォルトの設定では光漏れが発生し、段差のノイズも目立つことからパス数を2倍、サンプルサイズを半分にします。
依然として汚いですが、レンダリング時間は40秒と許容範囲内です。


2. プレフィルタを8にする(デフォルト)(16_20000_0.005_8_39sec)。
画像

 汚いですが、光漏れは発生していません。


3. プレフィルタを16にする(16_20000_0.005_16_39sec)。
画像

 汚いですが、プレフィルタ8よりはスムーズになり、まだ光漏れは発生していません。

 
4. プレフィルタを32にする(16_20000_0.005_32_39sec)。
画像

 プレフィルタ16よりスムーズになりましたが、光漏れが発生しています。つまり、使えません。

 「ノイズ」や「ちらつき」は、現実世界で例えれば「壁の汚れ」のようなものです。
しかし「光漏れ」は、「壁の隙間や穴」であり、絵に致命的な悪影響を与えます。

 さらに問題なのは、この光漏れが「正しい値」としてIRに引き渡され、IRの計算結果をも狂わせることです。
したがって、絶対に光漏れを発生させてはいけません。



---

 以上の実験から、デフォルトに対して、

1. パス数は2倍(20000)

2. サンプルサイズは半分(0.005)

3. プレフィルタは2倍(16)

 あたりがLMの最適値だと思われます。

 絵だけ見ると汚いですが、これがLMの限界であり、LMを使うのならこの絵で我慢するしかないのです。


1. IRの計算を追加した絵(16_20000_0.005_16_IR_202sec)
画像

 IRの計算を追加すると、LMの計算はその陰に隠れノイズやちらつきはかなり目立たなくなります。
計算時間は202秒で、R14と同等、画質も同等です。静止画なら仕事に使えるでしょう。

ただし、R14はサンプルを増やすことでまだまだ画質を上げられますが、R15のLMはこれ以上上げるのは厳しいと思います。
 LMの唯一のアドバンテージとして、拡散反射回数を上げられるというのがありますが、個人的にはIRの4回で十分です。

 また、そもそも総レンダリング時間に占めるLM計算の時間はたかだか19%に過ぎず、「LMは速い」ということにどれだけの意味があるのか疑問です。
それよりも「いろんな状況に少ないパラメータで対応できる」とか、「パラメータの働きが単純で理解しやすい」ことの方がはるかに重要だと思います。


2. アニメーションの比較
R14
http://www2.11moon.com/sample_files2014/20140204a/room_R14_IR_63min.mp4

R15
http://www2.11moon.com/sample_files2014/20140204a/room_R15_IRLM_55min.mp4

 アニメーションで見ても画質は同等ですが、どちらも納品品質に達していないので比較してもあまり意味がありません。

 このシーンの照明は非常に厳しいので、現在のGIとコンピュータできれいなアニメーションを作るのは困難です。
何年か先に検討することになるでしょう。
---

Toshio Fuji<gtofuji@gmail.com>

掲示板に書いたサンプルのまとめサイト
http://www2.11moon.com/index_as.html
tofuji
 
記事: 803
登録日時: 木 3 10, 2011 10:41 am
お住まい: 東京都渋谷区

Re: R15のGI

投稿記事by tofuji » 水 2 05, 2014 9:05 pm

 R15のIR(イラディアンスキャッシュ)について、それなりの使い方が判ったので説明します。

 
 まず、R14とR15のIRの最大の違いは「スムージング(エラー補正を含む)」です。
 R14ではエラー補正機能を外すことができ、私が実験した限りでは、全部切ると一番いい結果が得られました。
ところが、R15ではエラー補正を切ることができません。

 その結果、R15でR14と同様の設定にすると「2倍遅い」という結果になっていました。
使わなくても裏でいろんな機能が働いているんだから、当たり前です。
 R15を使い始めて5ヶ月になりますが、R15でR14よりいい結果を得られたことは一度もありません。


 私はCINEMA 4Dのエラー補正機能を全く信用していないので、これまでは「とにかく使わない」という方針でやってきました。
しかし行き詰まっていることもあり、「機能を切れない以上、可能な範囲で最適化するしかない」ということで新しい実験をしました。



---

 前の投稿で使ったシーンをベースにして、デフォルトに近い設定から始めます。

 サンプルファイル
http://www2.11moon.com/sample_files2014/20140205d/indirect_lighting_8.zip

1. デフォルトに近い状態(128_30_0_20sec)
画像

 シーンのコントラストが高いので、大量のノイズが出ています。アニメーションすればもちろんちらつきます。
レンダリング時間は20秒でした。


2. サンプル数を上げる(1024_30_0_50sec)
画像

 そこで、サンプル数を8倍に増やしてみました。ノイズは減りましたが、まだまだです。
レンダリング時間は50秒に延びました。


3. さらにサンプル数を上げる(4096_30_0_153sec)
画像

 サンプル数をさらに4倍に増やしました。大体ノイズは治まりましたが、レンダリング時間は153秒と、かなり延びてしまいました。

 しかし、エラー補正機能を使わないR14ではここまでサンプル数を上げる必要がありました。
と同時に、R14はエラー補正を外せるので半分程度の時間で同じ絵を出すことができました。


 さて、ここからが新しい実験です。


4. サンプル数を戻して、スムージングを上げてみる(128_30_100_28sec)
画像

 サンプル数を戻してスムージングを上げてみることにしました。
すると、劇的に絵が改善されました。

 左の壁はダメですが、奥の壁はこれで十分です。
レンダリング時間は多少延びましたが、それでも28秒です。


5. 再度サンプル数を上げてみる(1024_30_100_57sec)
画像

 スムージングをかけたまま、再度サンプル数を上げてみます。

 すると、左の壁もそれなりの品質にすることができました。
レンダリング時間はさらに伸びて57秒になりましたが、3.に比べればまだ半分以下です。


6. 密度を上げてみる(1024_40_100_77sec)
画像

 密度を上げてみました。密度を上げてもノイズやちらつきそのものは減りませんが、細かくなります。
細かくすると、スムージングしやすくなり、また光漏れ等の破綻が起こる確率が減ります。

 レンダリング時間は77秒に延びましたが、それでもまだ3.の半分以下です。

 R15のIRでは、この辺りの設定で使うのがよさそうです。


7. サンプル数と密度を元に戻して、スムージングをさらに上げてみる(128_30_150_138sec)
画像

 それでは、スムージングの値をさらに上げるとどうなるか、見てみます。
比較のため、サンプル数と密度は4.と同じに戻します。

 結果は、激しく光漏れしました。
しかもレンダリング時間は138秒と異常に延びています。これは計算が破綻している証拠です。


8. スムージングをさらに上げてみる(128_30_200_53sec)
画像

 さらにスムージングの値を上げます。

 結果は、依然として光漏れしていますが、レンダリング時間は53秒と短くなりました。
補間計算が破綻しすぎて計算をスルーしているのだと思います。

 
 7.と8.の絵を見ると、壁も床もツルツルです。確かにノイズはありませんが、決してフォトリアルには見えません。
エラー補正というのは結局「嘘」です。
 照明をまじめに計算しているのではなく、CINEMA 4Dがペタペタ適当に絵を描いているのです。

 R15ではエラー補正を使うしかないのですが、「エラー補正はフォトリアルの対極にある」ということをよく覚えておいてください。


9. スムージングをさらに上げてみる(128_30_500_21sec)
画像

 さらにスムージングの値を上げます。

 すると、補正計算が全てスルーされ、絵はノイズだらけのまま残りました。
レンダリング時間は元と同じ21秒です。

 なんでこんなバカな設定が許されているのか理解に苦しみますが、おそらくこの機能もすぐになくなると思うので、
深くは追求しないことにします。


10. ムービー(69分)
http://www2.11moon.com/sample_files2014/20140205d/room_R15_69min.mp4


 最後に、この設定でレンダリングしたムービーを出します。
R14よりわずかにレンダリング時間が長いですが、画質はR14と同等になっています。

 
tofuji
 
記事: 803
登録日時: 木 3 10, 2011 10:41 am
お住まい: 東京都渋谷区


Return to ユーザフォーラム

オンラインデータ

このフォーラムを閲覧中のユーザー: Yahoo [Bot] & ゲスト[2人]