« ラジオシティの解像度について(前編) | メイン | CD Morph »
2005年04月03日
ラジオシティの解像度について(後編) [ CINEMA 4D R9 ]
(前編より続く)
前編ではひとつのシーンファイルでテストを延々やったが、あのシーンひとつだけでは心もとないので、特性の異なるシーンファイルを複数使ってテストしてみた。前編でのテストから、シュプランガ反転に影響するのは「最低:最高比」ではなく「最低:シーンサイズ比」ではないかという推測が立ったので、後編のテストでは「最低:最高比」と「最低:シーンサイズ比」の両方に注目して検証していく。
テストするシーンは、最後の「特殊建築」を除いて、どれも過去に制作完了した状態のもので、最低解像度とサンプル数を今回のテストに合わせて変更した。それと、アンチエイリアス/エリアシャドウ/ボリュームライト/拡散鏡面反射・屈折/SSS/SPD等もすべてオフにした。出力解像度も小さくしてある。
各シーンのラジオシティ設定の共通項目は前編のインテリアと同じで、精度「70%」、サンプル数「10」(一部「30」のものもあり)だ。拡散反射回数と最高解像度はシーンごとに元々設定されていた値そのままにしている。
以下のシュプランガ・テストはシュプランガ氏に教わったとおりの、最高解像度を固定し最低解像度を変えつつ時間を測る方法でやっている。プレパスと本パスは別に計測している。
テスト結果に「最低:シーン比」の分析を加えてあるが、数値は「シーンの最大長÷最低解像度」で表記している。「最低解像度はシーンサイズの何分の一」という考え方がわかりやすいだろうという判断からこうした。またこの数値は、「(精度40%のときの)最低解像度部分のサンプルポイントの間隔」の実数値(mm)ということにもなる。
テストごとに最低解像度のサンプル値がまちまちというか、そもそも等差がいいのか等比がいいのかもわからないのでテキトウになっている。グラフのカーブの形の詳細にはあまりこだわらないで、おおまかに上がってるか下がってるか、「底」がどこにあるかだけ見ることにしよう。
前編のテストからレンダリング時間に影響するのは「最低解像度」のほうだけで「最高解像度」はあまり関係ないと判断したので、解像度の最適値は「最低解像度」のみ出すことにする。グラフの底=最短時間の部分が広い場合には、ある程度幅を持たせて最適値をとる。
分析のため最適な「最低解像度」のときの「最低:最高比」と「最低:シーン比」も出す。ここから法則性が見出せればめっけもんだ。
◆インテリア
前編のインテリアのシーン。
・最大長10,000mm
・拡散反射回数8

最適値
・最低解像度 30〜60
・最低:最高比 1:20〜1:10
・最低:シーン比 333〜100
かなり底が広いグラフに見えるが、単に最低解像度10〜60までの刻みが細かいからだろう。
◆コーヒーカップ
これはテーブルにコーヒーカップを置いた単純なシーン。周囲は床オブジェクトと空オブジェクト。カップにはSSSを使っていたので、単なる発光に置き換えた。
・最大長400mm
・拡散反射6回

最適値
・最低解像度 30
・最低:最高比 1:3
・最低:シーン比 13.3
このグラフは最初の押し出しテキストの「囲い〈低〉」のシーンに似ている。シーン自体も、スケールが小さいことや、オブジェクトだけをポツンと置いてるところがよく似ている。
◆さるぞう&ニワトリ
地面は無限平面の床オブジェクトではなく平面オブジェクトを置いている(理由は忘れた)。まるっこいキャラクターに光がまんべんなく入っていて、ディテールをラジオシティで正確に追う必要はないので、最高解像度はかなり低めの甘い設定になっている。
・最大長30,000mm
・拡散反射6回

最適値
・最低解像度 120
・最低:最高比 1:2
・最低:シーン比 250
このシーンは一見「無限平面にポツン」系にみえるが、置かれているキャラクター同士や地面との間でレイが跳ね返っているはずなので実際はポツン系ではないと思う。グラフの形や最低:最高比は上のコーヒーカップのシーンと似ているが、最高解像度が低めなので最低解像度を上げてもサンプルポイントが増えにくいからだろう。
◆ダミー内観
ラジオシティのアーティファクトのテストのために作ったダミーシーン。開口小さめ。
・最大長6,000mm
・拡散反射回数5回

最適値
・最低解像度 10〜40
・最低:最高比 1:20〜1:5
・最低:シーン比 600〜150
これも底が広いグラフになっている。
◆イスのみ
平面オブジェクトにイスを置いただけの単純なシーン。レンダリングが速すぎてキャプチャが撮りにくかったので、サンプル数を「30」に増やした。
・最大長4,000mm
・拡散反射回数2回

最適値
・最低解像度 10〜20
・最低:最高比 1:40〜1:20
・最低:シーン比 400〜200
これは見たところポツン系なのだが、グラフはポツン系には似ていないようだ。イスの底面にレイが反射するせいかもしれない。あるいはイスのマテリアルがちょっと凝ってるからとか、空オブジェクトを3種類(直視・反射屈折・ラジオシティ)使っているからかもしれない。
◆イス内観
建物の内部にイスを置いたシーン。開口が小さいのでかなり暗い(元はボリュームライトで明るくしていた)。暗いシーンでサンプル数が少ないと何も見えないので、サンプル数を「30」に増やした。
・最大長7,000mm
・拡散反射回数16回

最適値
・最低解像度 20
・最低:最高比 1:8
・最低:シーン比 350
ほかの内観と似たような感じ。やはりパストレーシングの計算量が多いシーンでは、最低解像度の上昇に伴うプレパス時間の増大が大きい傾向があるようだ。
ほぼ完全に閉じたシーンで、拡散反射回数が「16」とかなり高めだが、特にレンダリング時間が長くなっているわけではない。拡散反射回数が多すぎることについて気にする必要はなさそうだ。
◆特殊建築について
以後の「特殊建築」はまだいじってる途中(Shadeから移植してCINEMA 4D上で改造中)だが、特殊な例としてテストすることにした。
通常、シーンを構築するときはだいたいのカメラ位置を想定してからディテールの詰め具合を決めるものだが、このシーンの場合はカメラを特定せずに全体を作り込んでいるため、巨大なシーンに高密度なディテールが存在する特殊なシーンになっている。カメラを引いたときは遠くのディテールをある程度まで無視し、カメラがディテールに寄ったときには特に最高解像度を高くして描写することになる。
◆特殊建築 外部
中まで見えてしまうので内部にある細かいものもそのまま置いてあるが、ラジオシティで細部を見せる必要はないので、結局は最高解像度は低めになっている。ガラスはレンダリングタグでラジオシティから見えないようにしてある。仕様上ガラスの奥のオブジェクトのサンプルポイントは表示されないのだが(仮にガラスがラジオシティから見えていても拡散反射成分がなければガラス自体にはポイントは打たれない)、アーティファクトのパターンからだいたいの配置は推測できる。
・最大長100,000mm
・拡散反射回数6回

最適値
・最低解像度 50〜100
・最低:最高比 1:20〜1:10
・最低:シーン比 2000〜1000
シーン全体のサイズが100メートルもあるのでいろいろ特殊なことになってると思われる。最低解像度を上げてもレンダリング時間が増えにくいのは、ポツン系に似て上の空間ががら空きだからだろうか、あるいは最高解像度を低めにしてあるからだろうか。
◆特殊建築 内部
明らかに影響なさそうな最外周を除外して全体のサイズを小さくしたが、それでもかなりでかい。内部に入るとディテールがはっきり見えるので、最高解像度は外部よりずっと高くなっている。ガラスはラジオシティから見えないようにしてある。ついでに影を落とさないのも試してみたが、こっちはほとんど変化がなかったのでやめた。
・最大長56,000mm
・拡散反射回数6回

最適値
・最低解像度 200
・最低:最高比 1:20
・最低:シーン比 280
外部とシーンファイルは同じでも「見せ方」を変えるとぜんぜん数字が変わってくる。
◆分析(1)最低解像度の最適値
ここまでの8つのテストでレンダリング時間が最短になった「最低解像度」での、「最低解像度:最高解像度」の比率と「最低解像度:シーンサイズ」の比率をグラフにまとめると次のようなものになる。最適な数値に幅があるものは中間値をとった。

赤色のほう、「最高解像度÷最低解像度」の値は「3」から「30」までバラバラだ。強いて言えば「10」から「20」の間に集まっているが、「1:10」と「1:20」を「似かよった値」とみていいのかどうか微妙なところだ。前編での、重要なのは「最低:最高比」ではなく「最低解像度」のほうだけだ、という推測を否定する材料にはならないと思う。
緑色のほう、「シーンサイズ÷最低解像度」の値は(b)と(g)を除くと「300」前後に集中している(緑色の帯)。(b)と(g)はシーンサイズが最小(400)と最大(100,000)で他から飛び抜けているので、それが影響しているということも考えられる。たとえば(b)はサイズが「400」しかなく、最低解像度をその1/300にしたら「1.33」になってしまうので、あてはまらなくて当たり前かもしれない(でかいほうも同様)。
というような具合に、重要なのは「最低解像度」と「シーンの全体サイズ」の比率で、「最適な最低解像度」は、ほどほどのサイズと複雑さのシーンなら「シーンの全体サイズの1/300ぐらい」だと考えていいんじゃないだろうか。
シーンごとの最適な最低解像度の値はシュプランガ・テストで求めることができるから、この「1/300」という値もテストの初期値の目安程度の意味しかない。この目安の値よりももっと重要なのは、「最低解像度が低すぎてレンダリングが極端に遅くなる」現象が起きるのは「最低:シーン比」が不適切なときで、「最低:最高比」は関係ないということだ。最低解像度さえ適切に設定してしまえば、最高解像度のほうはユーザーが絵ヅラ重視で任意に決めてもいいことになる。最高解像度を高くしたことでレンダリング時間が増えるとしても、サンプルポイントの増加分だけで済むなら問題ではない。
◆分析(2)シュプランガ・テストの評価のしかた
前編のインテリアと同じように、サンプル数「100」のテストもやって、シュプランガ・テストの確度を検証しておこう。いちばん時間のかかった「特殊建築 内部」を使って、サンプル数「10」のときのグラフの底付近の4例だけ、サンプル数「100」でレンダリングした。
特殊建築内部/最低400:最高4000/サンプル数100のプレパス
比較のために、同じ4例のサンプル数「10」でのグラフも添えておく。


サンプル数「100」になると、レンダリング時間のほとんどがプレパスに占められている。前編のグラフ(5')と(6)での変化もそうだったが、サンプル数の増加によるレンダリング時間の増加は本パスよりプレパスのほうがずっと大きい。サンプル数「100」での合計レンダリング時間のグラフはほとんどプレパス時間のグラフと同じで、これはサンプル数「10」のプレパス時間のグラフとも一致しているのがわかる。つまり、シュプランガ・テストの評価をする場合には、パストレーシングの計算量が多い、あるいはサンプル数が多いシーンでは、プレパス時間のほうを基準にすれば正確な予測ができるということになる。
次に、サンプル数「10」から「100」へのレンダリング時間増加の倍率を表で見てみよう。
| プレパス | 本パス | |||||
|---|---|---|---|---|---|---|
| 最低解像度 | サンプル10 | サンプル100 | 倍率 | サンプル10 | サンプル100 | 倍率 |
| 100 | 155 | 2080 | 13.4 | 164 | 208 | 1.26 |
| 133 | 144 | 1843 | 12.7 | 126 | 152 | 1.20 |
| 200 | 149 | 1854 | 12.4 | 98 | 114 | 1.16 |
| 400 | 230 | 3236 | 14.0 | 81 | 97 | 1.19 |
この4例についてはサンプル数「10」から「100」へのレンダリング時間の増加率はほとんど差がない。インテリアのときと違ってグラフの「底」のところだけを選んだので、ばらつきが小さかったのだろうか。だとすると、元々値が極端なところではばらつきが大きく、値に差が出にくいところではばらつきも小さいということになるので、シュプランガ・テストの確度を保証する結果だと考えていいんじゃないだろうか。
◆分析(3)ストライクゾーン
上のサンプル数「100」のテストでのレンダリング結果の絵は、4枚ともほとんど同じだった。Photoshopのレイヤーで「差の絶対値」で重ねてもうっすらとしか見えないぐらい同じだった。そのうちの1枚だけ出しておく。ベストタイムを出した最低解像度「200」の絵だ。
このテストで出てきた絵はほとんどみんな同じクオリティだったのだが、グラフで見ても最低解像度100から200までの3例は真っ平らに近く、レンダリング時間もほぼ同じになっている。そして、シュプランガ・テストの時点でもプレパスのグラフは真っ平らだ。
全てのテストについて、大なり小なりこの真っ平らな部分がある。この真っ平らな部分は常に最適値の付近にあるので、最適値の「ストライクゾーン」はそれなりに広いということになる。ラジオシティの計算量もほとんど違わない、絵のクオリティにもほとんど違いがないと考えていいんじゃないかと思う。つまり、シュプランガ反転とサンプルポイントが高密度すぎる状態さえ避ければ解像度設定はストライクということだ。
感覚的にもだいたいそんな感じのことが多い。シュプランガ反転は影響があまり大きくなければ気付かないこともありそうだが、絵ヅラで解像度を決めれば高密度すぎにはならないので、あとは多少解像度をいじっても時間にもクオリティにも大差ないことになる。「一時間かけて試行錯誤してレンダリング時間を30分縮めても意味がない」というのが僕の持論なのだが、このストライクゾーンの広さが普遍的なものだとすると、感覚的な試行錯誤で解像度をあれこれ変えてみても、同じようなベストクオリティ付近のゾーン内を行ったり来たりしているだけで、それ以上良くはならないということになる。そんなことやってないでサンプル数を上げてレンダリングしたほうがいいっていうことになる。
◆まとめない
普通ならここで箇条書きにした結論を書くところですが、冒頭で言ったように「自分用メモ」のおすそ分けですんで、あえて書かないことにします。どういう考え方をして詰めていけばいいのか考えて理解することが大事なのであって、何も考えずに設定するための手続きを暗記するのが大事なのではないと思うので。一読して何を言ってるのかわからないのであれば何度でも繰り返し読んでください。何度も読んでいるうちに怪しいと思うところがみつかったり、違うアプローチの仕方を思いついたりする人もいるかと思うので、そのときは僕にも教えてください。CGオタクは希少種です。レッドデータピープルです。故に助け合いが非常に大事です。アディオス!
投稿者 ヒロツ : 2005年04月03日 20:26
トラックバック
このエントリーのトラックバックURL:
http://kowloo.net/hirotsu/mt/mt-tb.cgi/118
コメント
ども、絶滅危惧種のkurosawaです。いやあ、今回の内容濃いですねー。
シュプランガさんに「最低解像度は低すぎてもいけない、グラフにすればある地点から反転がおこる」って言われたときには目からウロコでしたね。
低すぎてもいけないっていうのは、プレパスの補完に時間がかかっていそうだなってところまでは、経験則で分かっていたんですが、ちゃんとグラフにして法則を調べるっていうやり方こそが、個人的には一番の衝撃でした。
ああ,この人すごいまともにCGやってるなあ、と感銘したものです。
今回のこのレポートにも同じ衝撃を受けました。
まさにレッドデータです。まっとうなCGオタです(笑)
経験則ではマクソンの公表している1:3という数字では明らかにおかしいんじゃないかというか、Vrayや他のレンダラーのサンプルの配置のされ方とどうも違うっていうのがあって、インテリアのシーンでは大体1:10を目安に打っていたんですが、ストライクゾーンが広かったおかげでまさにドンピシャで、なんか嬉しいですね(笑)
投稿者 kurosawa : 2005年04月03日 23:44
お久しぶりです。
このように、ひとつの機能等に関して筋道立った考察をされるということが、僕みたいに暇見つけてはちょこちょこと絵を描いているだけの人間からは考えられないです・・。上のkurosawaさんのお言葉を拝借すれば、「すごいまともにCGやっておられるなぁ」と感動しております。暇を見つけたら自分でAdvanced Renderのテストをしたくなるような、そんな力が満ち溢れた記事でした。
このエントリー、印刷しとこうっと。
投稿者 おか : 2005年04月04日 09:42
ヒロツさんこんにちは。
この記事が発表されるのを心待ちにしておりました。
すんごく勉強になりました。
今までマニュアルを鵜呑みにしてきた私ですが、
自分の納得いく作品作りのために
いろいろ試行錯誤していこうと改めて思いました。
この記事はマニュアルに載せるべきです!!
投稿者 T_ABE : 2005年04月04日 13:53
CGオタクのみなさんこんにちは。
コメントありがとうございます。
>>Kurosawaさん
普通のシーンだと15分とかそのぐらいでシュプランガ・テストはできるんで、
「テストすればわかる」っていう発想さえ持てれば簡単なことですね。
経験則のほうは、最低:最高比が1:10とか1:20っていうのより、
絵ヅラでみて「最低解像度のとこのポイント間隔が200mmから300mmぐらい」で
合わせてたのがストライクだったんではないかと。
Kurosawaさんは色々物件持ってると思うんで
暇があったらテストして結果教えてください。
>>おかさん
今回コレを「やるぞ」と思ったきっかけはおかさんのブログだったので、
僕のほうでもおかさんの記事に刺激されて得られた成果でもあります。
おかさんは真っ当な理数系の人ですから、
やれば僕なんかよりきちんとした調査ができると思いますよ。
ちなみに僕は文学部卒です。電卓使っても引き算間違えるので検算が何度も必要です。
>>T_ABEさん
マニュアルっていえば、マニュアルにちゃんとしたこと書いてないのがそもそもダメで、
こういうのをユーザーが自分で調べないといけないのが
おかしいという考え方もあります(笑)
仕事で即戦力にするために導入した人にとっては
こういうのやらなきゃ使いこなせないのはおかしな話ですから、
むしろ大威張りでMAXONに「マニュアルちゃんと作れ」と
要望していいのではないかと思います。
投稿者 ヒロツ : 2005年04月06日 14:41