« 2005年03月 | メイン | 2005年05月 »

2005年04月30日

連休? [ CG・制作進行中 ]

 世間さまでは連休のようですが僕は普段通りであります。

 かわいいでしょ。デザインのネタ元はこちら。
 NAGUMO DESIGN

投稿者 ヒロツ : 06:14 | コメント (0) | トラックバック (0)

2005年04月26日

ウォーターボーイズ [ 映画 ]

 いまさらだけども。
 「スウィングガールズ」の評で“ウォーターボーイズと同工異曲”っていうのがあったけど、まさにそんな感じで、個々のネタは違うんだけど、展開はほとんど同じ。そもそもタイトルからしてそうだし、竹中直人の役どころまで同じなので、作り手が確信を持って同じことやってるのは明らかだな。
 特訓したのは中心メンバーだけなのになぜかその他大勢もレベルアップしてるっていうのまで「スウィングガールズ」と同じですごく可笑しかったんだけど(つまり「ウォーターボーイズ」を先にみた人は「スウィングガールズ」をみて同じことを思ってるわけだ)、クライマックスのシンクロのシーンが「本物」なのでそういう些細なことはどうでもよくなってしまう。こういうのって大事だ。
 あと、ヒロイン役の平山綾がマンガから出てきたみたいな可愛さで、「甘酸っぱい系」のネタにリアリティとかそういうのを超越した説得力があった。演技とかは別にどうってことなくても、こういうふうに役者の「旬」をフィルムに焼き付けてある映画は貴重だ。「マーズ・アタック」のナタリー・ポートマンとかね。

投稿者 ヒロツ : 21:33 | コメント (0) | トラックバック (0)

2005年04月23日

CD Morph出たよ [ CINEMA 4D Plugins ]

 cactus3d.com | Cinema 4D Plugins

 マニュアルとリソースの日本語版はDanに送ってあるので、くれと言えばくれると思います。CD Morphは操作が非常に簡単なので、ちょっといじってみれば便利さがわかると思います。ちゅーかC4D本体のモーフやMOCCAのポーズミキサーだと、モーフターゲットひとつにつきオブジェクトをひとつ複製しなきゃいけないので、全身ワンスキンの人体のあちこちにいっぱいモーフを入れてボーンと併用なんてことは事実上不可能だし、むにむに動く女体とか作れないッスよ。

投稿者 ヒロツ : 14:59 | コメント (0) | トラックバック (0)

2005年04月18日

Celshade [ CG・いろいろ ]

 おくればせながらsio29さんのCelshadeを使ってみた。

 ゲーム用のシーンツールとして開発してるんだそうで、エッジが描かれてアンチエイリアスも効いた状態の表示でリアルタイムにぐりぐる回せる。セルシェーディングの影色やエッジ線はマテリアル毎に細かく設定できる。まだ未実装の機能が多いけど、今後がすごく楽しみ。

 配布元 塩肉亭

 実はCINEMA 4DのSketch and Toonにもエディタビューでトゥーン線を表示する機能があるんだけど、せいぜい「どこに線が出るか」の確認用程度の機能で、クオリティはこんなもんだし、速度もめちゃくちゃ遅い。トゥーンシェーディングもエディタビューではUVにのっけたグラディエントとしてしか表示できないので、このへんは統合アプリだから特殊な機能の部分は割り切ってるんだろうな〜という感じ。

投稿者 ヒロツ : 12:17 | コメント (4) | トラックバック (0)

2005年04月17日

スウィングガールズ [ 映画 ]

 普通に面白い映画だった。時代性もないし、特にターゲットにしてる客層もないし、出演者にスターもいない(竹中直人はいるけど)。物語の面白さ、映像と音楽と演技、そういう真っ当な映画的要素だけでちゃんと楽しませてくれる。音楽をきっちり映画の要素として消化してるし、女子高校生がビッグバンドジャズをやるというシチュエーションを作り出すストーリーテリングのマジックには恐れ入った。
 こういう、普通でまともに面白い映画を作れる映画監督がまだ日本にいて、映画を世に出す機会があるっていうのを知って安心したりした。というか、実はこの人の自主制作のデビュー作を観たことがあるんだけど、それは「スウィングガールズ」の中の「状況が悪い方向に転がっていく要素」だけを抽出したような非常にやりすぎな映画で(面白いんだけど一般受けするとは思えない)、なんでこの人自分の才能こんな使い方してんだろうと思ったもんだったが、ちゃんとお客を楽しませる方向で仕事してたのね今は。今更だけど「ウォーターボーイズ」も借りてきた、今日。

投稿者 ヒロツ : 18:11 | コメント (0) | トラックバック (0)

マリみて「妹オーディション」/今野緒雪 [ 読書 ]

 今回はわりと面白かった。やっぱね、頭のおかしいやつエキセントリックなキャラにひっかきまわさせて無理矢理ストーリーを転がしてくより、ちゃんと伏線を張ってつないでくほうが面白いって。一般生徒をダメ人間扱いしてる描写が多いのはやっぱ「学園貴族もの」だからしょーがないのかな。ちょっと鼻につく。「四女」が突然浮上してきたけど、この人も一般人じゃないしな。なんだかんだ言ってもストーリー的には、薔薇の館の住人になるにはそれなりのバックグラウンドがないと駄目、ってことでしょうか。

投稿者 ヒロツ : 18:03 | コメント (0) | トラックバック (0)

霧の中の二剣士/フリッツ・ライバー 浅倉久志訳 [ 読書 ]

 結構異色な巻。
 「ランクマーの夏枯れ時」はファファードとグレイ・マウザーの仲違いから始まってるあたりからしても異色なんだが、柱になってるのがランクマーの新興宗教ネタで、ヒロイック・ファンタジーという感じでは全くない。主人公が奇矯な有力人物に翻弄される一寸先は闇の展開はポール・オースターみたいな匂いすらしている。それでいて喜劇味もあり奇怪な恐怖もありで、このシリーズが普通のファンタジーの枠だけに収まらないということを象徴しているような一編。名作。
 もう一編異色な中編「魔道士の仕掛け」。舞台がネーウォンでなく古代の地球で、二人はニンゴブルによってあちこちの異世界に送り込まれてるのだというつなぎの短編から続いている。第三の主人公ともいうべきアフラという人物が登場するのだが、これがまた萌え系妹キャラなんですよ。結末にはネーウォンへ戻る二剣士にこのアフラが同行するかのような台詞がある。この巻はこの中編で終わっていて、残りの4巻5巻は本邦未訳なのだが、もしかして残り二巻は二剣士+アフラのトリオ展開になるのか!? 今ごろになって二剣士が完訳されたのは、萌え系妹キャラを時代が呼んだからなのか!? どうなる次巻!

投稿者 ヒロツ : 17:45 | コメント (0) | トラックバック (0)

エマ(5)/森薫 [ マンガ ]

 スゲエ。ヴィクトリア朝関係の描写のエスカレート具合もすごいし、使用人その他大勢の端役に至るまで描き分けと性格づけが徹底されてるのもすごいし、言い訳とか馴れ合いとかが全然ない真剣勝負のストーリーテリングもすごい。1巻あたりを読むとただのホンワカしたあたりさわりのない時代ものマンガなのに、化けたというか育ったというか。
 ビーム本誌の連載が非常にデンジャラスな感じになってるんだけど、まさか鬱展開で落として終わりってこともないだろうし、どうなるんだろうな。

投稿者 ヒロツ : 17:37 | コメント (0) | トラックバック (0)

SEX(6)/上條淳士 [ マンガ ]

 カホがAカップ!? そんな馬鹿な!!

投稿者 ヒロツ : 17:34 | コメント (0) | トラックバック (1)

2005年04月13日

mmViewer [ CG・いろいろ ]

050413_mmv.gif

 メタセコのデータをデスクトップに表示するビューワーアプリ。操作はメタセコファイルをドラッグ&ドロップするだけ。OpenGLで軽快動作。すんばらしい。

 配布元 → mmViewer

 情報 → 3Dビューワを夢想するBBS2

 せっかくなのでゴスロリちゃん(黒)MQOデータ → 050413_gothmqo.zip

投稿者 ヒロツ : 15:56 | コメント (2) | トラックバック (0)

2005年04月10日

CD Morph [ CINEMA 4D Plugins ]

 Cactus Danの新しいキャラクターアニメーションツール、「CD Morph」がアナウンスされましたよ。

 CGTalk - New CD Morph plugin coming soon

 モーフのコントロールを一方向のスライダ数個じゃなくボックス型に集約するやつとか、あとアニマスのスマートスキンみたくボーンの回転量とモーフのブレンド量をシンクロさせるのもありますね。

 ちなみにまた僕が日本語化することになっております。また、っていうかCD IK Toolsの日本語版はどうなったんだという話も。いや、データはもうCactus Danに渡してあるんですが、あっちの都合でまだリリースになってないようです。サイトをリニューアルするとか言ってたので、CD Morphのリリースと一緒にドカンと出てくるんではないかと。

投稿者 ヒロツ : 22:24 | コメント (0) | トラックバック (0)

2005年04月03日

ラジオシティの解像度について(後編) [ CINEMA 4D R9 ]

(前編より続く)

 前編ではひとつのシーンファイルでテストを延々やったが、あのシーンひとつだけでは心もとないので、特性の異なるシーンファイルを複数使ってテストしてみた。前編でのテストから、シュプランガ反転に影響するのは「最低:最高比」ではなく「最低:シーンサイズ比」ではないかという推測が立ったので、後編のテストでは「最低:最高比」と「最低:シーンサイズ比」の両方に注目して検証していく。

 テストするシーンは、最後の「特殊建築」を除いて、どれも過去に制作完了した状態のもので、最低解像度とサンプル数を今回のテストに合わせて変更した。それと、アンチエイリアス/エリアシャドウ/ボリュームライト/拡散鏡面反射・屈折/SSS/SPD等もすべてオフにした。出力解像度も小さくしてある。

 各シーンのラジオシティ設定の共通項目は前編のインテリアと同じで、精度「70%」、サンプル数「10」(一部「30」のものもあり)だ。拡散反射回数と最高解像度はシーンごとに元々設定されていた値そのままにしている。

 以下のシュプランガ・テストはシュプランガ氏に教わったとおりの、最高解像度を固定し最低解像度を変えつつ時間を測る方法でやっている。プレパスと本パスは別に計測している。
 テスト結果に「最低:シーン比」の分析を加えてあるが、数値は「シーンの最大長÷最低解像度」で表記している。「最低解像度はシーンサイズの何分の一」という考え方がわかりやすいだろうという判断からこうした。またこの数値は、「(精度40%のときの)最低解像度部分のサンプルポイントの間隔」の実数値(mm)ということにもなる。
 テストごとに最低解像度のサンプル値がまちまちというか、そもそも等差がいいのか等比がいいのかもわからないのでテキトウになっている。グラフのカーブの形の詳細にはあまりこだわらないで、おおまかに上がってるか下がってるか、「底」がどこにあるかだけ見ることにしよう。

 前編のテストからレンダリング時間に影響するのは「最低解像度」のほうだけで「最高解像度」はあまり関係ないと判断したので、解像度の最適値は「最低解像度」のみ出すことにする。グラフの底=最短時間の部分が広い場合には、ある程度幅を持たせて最適値をとる。
 分析のため最適な「最低解像度」のときの「最低:最高比」と「最低:シーン比」も出す。ここから法則性が見出せればめっけもんだ。


◆インテリア

 前編のインテリアのシーン。
 ・最大長10,000mm
 ・拡散反射回数8

050328_radires_a.gif

 最適値
 ・最低解像度 30〜60
 ・最低:最高比 1:20〜1:10
 ・最低:シーン比 333〜100

 かなり底が広いグラフに見えるが、単に最低解像度10〜60までの刻みが細かいからだろう。


◆コーヒーカップ

 これはテーブルにコーヒーカップを置いた単純なシーン。周囲は床オブジェクトと空オブジェクト。カップにはSSSを使っていたので、単なる発光に置き換えた。
 ・最大長400mm
 ・拡散反射6回

 コーヒーカップ/最低20:最高90のプレパス

050328_radires_b.gif

 最適値
 ・最低解像度 30
 ・最低:最高比 1:3
 ・最低:シーン比 13.3

 このグラフは最初の押し出しテキストの「囲い〈低〉」のシーンに似ている。シーン自体も、スケールが小さいことや、オブジェクトだけをポツンと置いてるところがよく似ている。


◆さるぞう&ニワトリ

 地面は無限平面の床オブジェクトではなく平面オブジェクトを置いている(理由は忘れた)。まるっこいキャラクターに光がまんべんなく入っていて、ディテールをラジオシティで正確に追う必要はないので、最高解像度はかなり低めの甘い設定になっている。
 ・最大長30,000mm
 ・拡散反射6回

 さるぞう&ニワトリ/最低60:最高240のプレパス

050328_radires_c.gif

 最適値
 ・最低解像度 120
 ・最低:最高比 1:2
 ・最低:シーン比 250

 このシーンは一見「無限平面にポツン」系にみえるが、置かれているキャラクター同士や地面との間でレイが跳ね返っているはずなので実際はポツン系ではないと思う。グラフの形や最低:最高比は上のコーヒーカップのシーンと似ているが、最高解像度が低めなので最低解像度を上げてもサンプルポイントが増えにくいからだろう。


◆ダミー内観

 ラジオシティのアーティファクトのテストのために作ったダミーシーン。開口小さめ。
 ・最大長6,000mm
 ・拡散反射回数5回

 ダミー内観/最低5:最高200のプレパス

050328_radires_d.gif

 最適値
 ・最低解像度 10〜40
 ・最低:最高比 1:20〜1:5
 ・最低:シーン比 600〜150

 これも底が広いグラフになっている。


◆イスのみ

 平面オブジェクトにイスを置いただけの単純なシーン。レンダリングが速すぎてキャプチャが撮りにくかったので、サンプル数を「30」に増やした。
 ・最大長4,000mm
 ・拡散反射回数2回

 イスのみ/最低40:最高400のプレパス

050328_radires_e.gif

 最適値
 ・最低解像度 10〜20
 ・最低:最高比 1:40〜1:20
 ・最低:シーン比 400〜200

 これは見たところポツン系なのだが、グラフはポツン系には似ていないようだ。イスの底面にレイが反射するせいかもしれない。あるいはイスのマテリアルがちょっと凝ってるからとか、空オブジェクトを3種類(直視・反射屈折・ラジオシティ)使っているからかもしれない。


◆イス内観

 建物の内部にイスを置いたシーン。開口が小さいのでかなり暗い(元はボリュームライトで明るくしていた)。暗いシーンでサンプル数が少ないと何も見えないので、サンプル数を「30」に増やした。
 ・最大長7,000mm
 ・拡散反射回数16回

 イス内観/最低40:最高160のプレパス

050328_radires_f.gif

 最適値
 ・最低解像度 20
 ・最低:最高比 1:8
 ・最低:シーン比 350

 ほかの内観と似たような感じ。やはりパストレーシングの計算量が多いシーンでは、最低解像度の上昇に伴うプレパス時間の増大が大きい傾向があるようだ。
 ほぼ完全に閉じたシーンで、拡散反射回数が「16」とかなり高めだが、特にレンダリング時間が長くなっているわけではない。拡散反射回数が多すぎることについて気にする必要はなさそうだ。


◆特殊建築について

 以後の「特殊建築」はまだいじってる途中(Shadeから移植してCINEMA 4D上で改造中)だが、特殊な例としてテストすることにした。
 通常、シーンを構築するときはだいたいのカメラ位置を想定してからディテールの詰め具合を決めるものだが、このシーンの場合はカメラを特定せずに全体を作り込んでいるため、巨大なシーンに高密度なディテールが存在する特殊なシーンになっている。カメラを引いたときは遠くのディテールをある程度まで無視し、カメラがディテールに寄ったときには特に最高解像度を高くして描写することになる。


◆特殊建築 外部

 中まで見えてしまうので内部にある細かいものもそのまま置いてあるが、ラジオシティで細部を見せる必要はないので、結局は最高解像度は低めになっている。ガラスはレンダリングタグでラジオシティから見えないようにしてある。仕様上ガラスの奥のオブジェクトのサンプルポイントは表示されないのだが(仮にガラスがラジオシティから見えていても拡散反射成分がなければガラス自体にはポイントは打たれない)、アーティファクトのパターンからだいたいの配置は推測できる。
 ・最大長100,000mm
 ・拡散反射回数6回

 特殊建築外部/最低100:最高1000のプレパス

050328_radires_g.gif

 最適値
 ・最低解像度 50〜100
 ・最低:最高比 1:20〜1:10
 ・最低:シーン比 2000〜1000

 シーン全体のサイズが100メートルもあるのでいろいろ特殊なことになってると思われる。最低解像度を上げてもレンダリング時間が増えにくいのは、ポツン系に似て上の空間ががら空きだからだろうか、あるいは最高解像度を低めにしてあるからだろうか。


◆特殊建築 内部

 明らかに影響なさそうな最外周を除外して全体のサイズを小さくしたが、それでもかなりでかい。内部に入るとディテールがはっきり見えるので、最高解像度は外部よりずっと高くなっている。ガラスはラジオシティから見えないようにしてある。ついでに影を落とさないのも試してみたが、こっちはほとんど変化がなかったのでやめた。
 ・最大長56,000mm
 ・拡散反射回数6回

 特殊建築内部/最低400:最高4000のプレパス

050328_radires_h.gif

 最適値
 ・最低解像度 200
 ・最低:最高比 1:20
 ・最低:シーン比 280

 外部とシーンファイルは同じでも「見せ方」を変えるとぜんぜん数字が変わってくる。


◆分析(1)最低解像度の最適値

 ここまでの8つのテストでレンダリング時間が最短になった「最低解像度」での、「最低解像度:最高解像度」の比率と「最低解像度:シーンサイズ」の比率をグラフにまとめると次のようなものになる。最適な数値に幅があるものは中間値をとった。

050328_radires_j.gif

 全グラフの一覧

 赤色のほう、「最高解像度÷最低解像度」の値は「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」でのグラフも添えておく。

050328_radires_h2.gif

050328_radires_i.gif

 サンプル数「100」になると、レンダリング時間のほとんどがプレパスに占められている。前編のグラフ(5')と(6)での変化もそうだったが、サンプル数の増加によるレンダリング時間の増加は本パスよりプレパスのほうがずっと大きい。サンプル数「100」での合計レンダリング時間のグラフはほとんどプレパス時間のグラフと同じで、これはサンプル数「10」のプレパス時間のグラフとも一致しているのがわかる。つまり、シュプランガ・テストの評価をする場合には、パストレーシングの計算量が多い、あるいはサンプル数が多いシーンでは、プレパス時間のほうを基準にすれば正確な予測ができるということになる。

 次に、サンプル数「10」から「100」へのレンダリング時間増加の倍率を表で見てみよう。

プレパス本パス
最低解像度 サンプル10サンプル100倍率 サンプル10サンプル100倍率
100 155208013.4 1642081.26
133 144184312.7 1261521.20
200 149185412.4 981141.16
400 230323614.0 81971.19

 この4例についてはサンプル数「10」から「100」へのレンダリング時間の増加率はほとんど差がない。インテリアのときと違ってグラフの「底」のところだけを選んだので、ばらつきが小さかったのだろうか。だとすると、元々値が極端なところではばらつきが大きく、値に差が出にくいところではばらつきも小さいということになるので、シュプランガ・テストの確度を保証する結果だと考えていいんじゃないだろうか。


◆分析(3)ストライクゾーン

 上のサンプル数「100」のテストでのレンダリング結果の絵は、4枚ともほとんど同じだった。Photoshopのレイヤーで「差の絶対値」で重ねてもうっすらとしか見えないぐらい同じだった。そのうちの1枚だけ出しておく。ベストタイムを出した最低解像度「200」の絵だ。

 このテストで出てきた絵はほとんどみんな同じクオリティだったのだが、グラフで見ても最低解像度100から200までの3例は真っ平らに近く、レンダリング時間もほぼ同じになっている。そして、シュプランガ・テストの時点でもプレパスのグラフは真っ平らだ。
 全てのテストについて、大なり小なりこの真っ平らな部分がある。この真っ平らな部分は常に最適値の付近にあるので、最適値の「ストライクゾーン」はそれなりに広いということになる。ラジオシティの計算量もほとんど違わない、絵のクオリティにもほとんど違いがないと考えていいんじゃないかと思う。つまり、シュプランガ反転とサンプルポイントが高密度すぎる状態さえ避ければ解像度設定はストライクということだ。
 感覚的にもだいたいそんな感じのことが多い。シュプランガ反転は影響があまり大きくなければ気付かないこともありそうだが、絵ヅラで解像度を決めれば高密度すぎにはならないので、あとは多少解像度をいじっても時間にもクオリティにも大差ないことになる。「一時間かけて試行錯誤してレンダリング時間を30分縮めても意味がない」というのが僕の持論なのだが、このストライクゾーンの広さが普遍的なものだとすると、感覚的な試行錯誤で解像度をあれこれ変えてみても、同じようなベストクオリティ付近のゾーン内を行ったり来たりしているだけで、それ以上良くはならないということになる。そんなことやってないでサンプル数を上げてレンダリングしたほうがいいっていうことになる。


◆まとめない

 普通ならここで箇条書きにした結論を書くところですが、冒頭で言ったように「自分用メモ」のおすそ分けですんで、あえて書かないことにします。どういう考え方をして詰めていけばいいのか考えて理解することが大事なのであって、何も考えずに設定するための手続きを暗記するのが大事なのではないと思うので。一読して何を言ってるのかわからないのであれば何度でも繰り返し読んでください。何度も読んでいるうちに怪しいと思うところがみつかったり、違うアプローチの仕方を思いついたりする人もいるかと思うので、そのときは僕にも教えてください。CGオタクは希少種です。レッドデータピープルです。故に助け合いが非常に大事です。アディオス!

投稿者 ヒロツ : 20:26 | コメント (4) | トラックバック (0)

ラジオシティの解像度について(前編) [ CINEMA 4D R9 ]

 日本全国128名(当社調べ)のヒロツブログ読者の皆さんこんにちは! 今日はその128名様の中でも特にハードコアCGオタクな16名(推計)の皆さんに大ネタをお届けします!

 CINEMA 4Dのラジオシティ設定で特にわかりにくいのはサンプルポイントの「解像度」ですな。

 1)最低解像度と最高解像度の二つを組み合わせて使う
 2)解像度がシーンの全体サイズに依存するのでシーンによって数値が変わる
 3)数値の大小が単純に品質対所要時間のトレードオフになるのではなく、値を下げすぎるとかえって時間がかかるようになる

 こういう事情があるので、「最適な値」を見極めるのがかなり難しくなっております。もちろん、そのシーンを実際に何パターンもテストレンダリングすれば最適な値がいくらなのかはわかりますが、本番のレンダリング時間をいくらか短くするためにそれより長い時間をかけてテストレンダリングしたのでは本末転倒。僕の場合は結局、経験則でなんとなく決めて、時間的にやばくなければそのままにしていることが多いです。

 とはいえ解像度のことはつねづね疑問でもあったので、いろんなシーンでテストした結果を分析してみたら、なかなか面白い結果になりました。面白いので一連のテスト結果と考察をブチまけておくことにします。
 ただし、別に「ラジオシティはこうやれ」とか奨めるつもりは全くないし、格別親切な書き方もしておりません。テストは入念にやっていますが、肝心の足し算や引き算を間違えている可能性も捨てきれません(実際何箇所か引き算を間違えていて後で直したところがあります)。僕の自分用メモ程度のものなので、それをのぞき見するぐらいの気持ちで読んでいただきたい。テストの方法や分析の考え方についてはそれなりに詳しく書いてあるので、興味を持ってもらえたのであれば、ぜひ手持ちのシーンで同じようなテストを(あるいは別のテストを)やってみて、そこから自分なりのノウハウをつかみとってください。ついでにテスト結果を僕にも教えてくれればうれしいです。

 
◆公式情報

 解像度に限らずラジオシティ全般に関して、マニュアルにはロクなことが書かれてない。そもそもAdvanced Renderのマニュアルでラジオシティについて書かれている部分がたった11ページしかないのだが、詳しい理屈は抜きでいきなり数字だけ書いてあったりするので、それを実際のワークフローで応用するときの方針が立てにくい。
 MAXONサイトのリソースのページにも「ラジオシティの設定について」という記事がある。R7時代に書かれたものだそうだが、幸か不幸かラジオシティについては現行のR9でもR7からほとんど変化ないので今でも通用する(本家のマニュアルだって全然変わってないみたいだし)。これも短い記事だが、なにしろマニュアルの情報が少ないので、このぐらいのものでも貴重だ。

 さて、「解像度」については、マニュアルでもMAXONサイトの記事でも「最低解像度を小さくしすぎるな」と警告している。他の設定と違って「最低解像度」の値が単純なトレードオフをするものではないから、警告すること自体は必要だ。
 そして、最低解像度と最高解像度の比率について具体的に「適切な値」が挙げられているのだが、こっちのほうは、僕の実感からすると適切とは思えない値になっている。

 Advanced Renderのマニュアルでは、以下のように書かれている。

ただし、最小解像度の値を小さくし過ぎると、サンプルポイント間の補間計算が難しくなるため、かえってレンダリング時間が増加し、しかも画質まで低下するので気をつけて下さい。
まとめ:
- 最高解像度の値は、<シーンの大きさ>÷<最も小さい形状の大きさ>に指定する。
- 最低解像度の値は、<最高解像度>÷<2~4>に指定する。

 最高解像度を最小のディテールに合わせるところまでは納得できる。しかし、最低解像度の値は最高解像度の1/2から1/4というのはどうだろう。

 MAXONサイトの記事のほうでも似たようなことが書かれている。

「最高解像度に比べて最低解像度の値を小さくしすぎると、何もしない場合に比べてレンダリング速度が極端に遅くなり、しかも画質まで低下する」のです。
 これは少ないサンプリングポイントから無理に細かい情報を類推しようとするために起こる現象です。最低解像度の最適値は条件によって変るので一概には言えないのですが、一般的に「最高解像度の1/3以上」です。
 最後に解像度の値の設定方法についてまとめると、まずシーンに含まれる一番細かい部分と同等以下の間隔にサンプリングポイントが配置されるように、最高解像度の値を指定してください。次に最低解像度の値をその1/3に指定してください。これでほとんどの場合は適切なバランスでレンダリングできるはずです。

 こちらは「1/3以上」となっていて、最高解像度を最小ディテールに合わせ、最低解像度はその1/3、これでほとんどの場合オッケーと書いてある。

 マニュアルと公式サイトの記事だから当然誰もが最初はこれを信用するわけだが(僕も信じていた)、実際にラジオシティを使って、ある程度の数の制作をこなしてみると、この1/2、1/3、1/4という値が適切であるとはとても思えなくなってくる。実感としては1/10から1/20でも問題ない。どういうことなんだろうか?
 もうひとつ、「極端に遅くなる」のが「最低解像度と最高解像度の比率」によるものだとすると、一旦「最適な値」に設定した後にカメラアングルの変更などによって「最高解像度」を上げる必要が出てきたときには、「最低解像度」もそれだけ上げなくてはならないことになる。本当なんだろうか?


◆定説を疑え

 まず、「最低解像度の最適値は最高解像度の1/2から1/4(または1/3)」という定説について検証してみることにする。

 テストに使うシーンは単純なものだ。

 サンプルファイル

 真ん中にオブジェクトを置き、発光させた空オブジェクトによる天空光だけでシーンを照らしている。真ん中に置いてあるオブジェクトは、だいたい200*600mmの大きさの「解像度」というテキストを押し出しNURBSで立体にして、キャップに5mm幅のベベルをつけたものだ。
 MAXONの「ラジオシティの設定について」のページで解像度のテストに使っているシーンファイルと似ているが、ラジオシティの計算に負荷をかけるための仕掛けがしてあるところが違う。このシーンは外周に5000mm角の「囲い」がついている。この囲いが低いとき(高さ100mm)には、押し出しテキストに当たったパストレーシングのレイはほぼそのまま空オブジェクトに向かって逃げていくので、ラジオシティの計算は非常に軽い。一方、この囲いを高くしたとき(2000mm)には、パストレーシングのレイが囲いに当たって跳ね返るため、ラジオシティの計算が重くなる。シーンの最大サイズは床面の長さの5000mmなので、囲いの高さが100mmでも2000mmでも、解像度には影響しない。

 ラジオシティ設定は「最低解像度」以外はすべて共通。最高解像度を固定したまま最低解像度だけを変更して、最低解像度と最高解像度の比率の変化によってレンダリング時間がどう変わるかをテストする。これもMAXONのサイトの記事のテストと同じだ。
 最高解像度は「1000」。これは公式情報の推奨通りに、最小ディテールのサイズ(ベベル幅の5mm)でシーン全体サイズ(5000mm)を割った値だ。
 最低解像度は「50」、「100」、「200」、「333」の4通りで、それぞれ最高解像度との比が「1:20」、「1:10」、「1:5」、「1:3」となる。

 プレパスとレンダリング画像はこんな感じになっている。囲いが低いほうと高いほうで、解像度が最も粗い「50」と最も細かい「333」を載せておく。囲いが高いほうは天空光が遮られるので全体に暗い。

 レンダリング時間はこうなる。

050401_radires_3.gif

 囲いが低いほうは、最もレンダリング時間が短くなるのは最低解像度「333」、最低:最高比が「1:3」のところで、こちらの例でいうと、たしかに最低:最高比の最適値は「1:3」ということになる。MAXONの記事にあるテストでも同じ傾向の結果を出している。
 ところが囲いが高いほうは、レンダリング時間が最も短いのは最低解像度「100」で、最低:最高比「1:10」のところだ。それより最低解像度を上げるとレンダリング時間は長くなる(グラフには入れなかったが最低解像度が「500」だと1000秒を超える)。僕の経験から来る実感でも、何人かのCINEMA 4Dユーザーに聞いたところでも、最低:最高比は「1:10から1:20ぐらいが最適らしい」ということになっているので、こちらのグラフのほうがリアリティがあるというか、「現場」の事情に則しているといえる。

 なぜこんなふうにまるっきり違う結果になっているかというと、前述のように、「ラジオシティの計算負荷」が違うからだ。そのへんを詳しく見るために、レンダリング時間をプレパスと本パス(プレパスの絵を消しながら本番の絵が出てくるところ)に分けたのが次のグラフだ。

050401_radires_4.gif

 囲いが低いほうでは、プレパスも本パスも最低解像度が高くなるほど時間が短くなっている。
 プレパスの計算には、サンプルポイントの配置を決める計算と、サンプルポイントごとにパストレーシングをする計算の両方が含まれているはずだ。最低解像度が上がればサンプルポイント数が増加し、それに比例してパストレーシングの計算量も増えるはずだが、このシーンは元々のパストレーシングの計算が非常に軽いためにその影響はあまり大きくない。プレパスの計算時間は一貫して下がっていくので、もう一方の計算量の減少、サンプルポイントの密度が高くなることでポイント配置を決める計算が軽くなることの影響のほうが大きいのだろう。
 本パスの計算時間が一貫して下がっていくのは、サンプルポイントの密度が低いと補間の計算が重くなる(公式情報)=密度が高くなるほど計算が軽くなっているためだ。

050401_radires_5.gif

 囲いが高いほうでは様子が違う。本パスのグラフは同じように一貫して下がっていくが、プレパスはほんのわずかに下がった後は上昇していき、最低解像度「200」と「333」では合計レンダリング時間の大半を占めるようになる。
 これは、囲いがあるために元々パストレーシングの計算量が多く、最低解像度の上昇=サンプルポイントの増加によるパストレーシングの計算量の増加の影響が非常に大きいためだ。囲いをさらに高くしたり、拡散反射回数を増やしたりすると影響はもっと大きくなる。逆にレンダリングタグでラジオシティから見えなくしたり、マテリアルを発光のみにして拡散反射成分をなくしたりすると、囲いの影響はなくなる。

 マニュアルでは「1/2から1/4」、MAXON サイトの記事では「1/3」という数字が上げられているが、これらの数字は平面にオブジェクトをポツンと置いただけの、パストレーシングの計算量がごく小さいシーンか、最高解像度がかなり低い設定で済むような単純なオブジェクトだけのシーンのテストからはじき出されたもので、ある程度以上「重い」シーンには通用しないという疑いが濃厚だ。パストレーシングが重いシーン、ディテールが込み入ったシーンでは最適値は1/10にも1/20にもなり得る。


◆シュプランガ・テスト

 実は、最低/最高解像度を決める方法については、1月のユーザーミーティングでMAXON本社から来たシュプランガ氏(Marcus Spranger氏)にいろいろ教えてもらった(マニュアルはさておきスタッフにはちゃんとわかってる人がいるようだ)。
 シュプランガ氏も「最低解像度の値が低すぎるとレンダリング時間はむしろ長くなる」ということには注目していて、最低解像度が「低すぎる」状態にならないようにして最適な値を出すためのテスト方法を教えてくれた。ここに本人直筆メモがある。以下、氏に敬意を表してこのテストを「シュプランガ・テスト」と呼ぶことにする(勝手に)。

example:
max=500
min=10/20/30/40/80

1.step
Low stoch.samples
→ try to find good max.resolution

2.
try to find best min/max ratio

 最高解像度を固定して最低解像度を変えていくというところは上のテストと同じだが、「レンダリング時間をいくらか縮めるために、その何倍もの時間をかけてテストする」というような矛盾が起きないように、サンプル数は低く抑えてテストする(Low stoch.samples)という工夫がされている。具体的にはサンプル数は「10」ぐらいでいい。解像度とレンダリング速度の関係は、サンプル数が多いか少ないかの影響はないらしい。だったらサンプル数が少ないほうがテストが早くできるというわけだ。
 出力解像度(イメージサイズ)も小さくしていいが、やたら小さくすると本番との誤差が大きくなる恐れがあるので程々にしておく。その他、アンチエイリアスや、拡散鏡面反射などのゴージャスなオプションも切る。

ステップ1:最高解像度の適正値を探る(try to find good max.resolution)

 最高解像度の適正値は、オブジェクトの最もサンプル密度を必要とする部分(メモの左の図では壁と床のキワの部分)にビッシリとサンプルが打たれるまで最高解像度を上げていって求める。細いオブジェクトやはっきりした凹凸だけじゃなく、こういう「広い平面同士がぶつかるカド」の部分でも特にアーティファクトが出やすいので、弱点としてマークしておく必要がある。
 ここでは最高解像度が「500」になったケースを仮定している(max=500)。住宅インテリアぐらいのスケールのものをmm単位で作ってる人にとってはなかなかリアリティのある値じゃないかと思う。

ステップ2:最低解像度と最高解像度のベストな比率を探る(try to find best min/max ratio)

 最高解像度をステップ1で求めた「500」に固定したまま、最低解像度を10/20/40/80等と上げながらレンダリング時間を測っていく。
 前述のとおり最低解像度が低すぎるとレンダリング時間が長くなるので、極端に低い値(ここでは「10」)ではレンダリング時間は長い。そこから値を上げていくと、サンプルポイントは増えているにもかかわらず、レンダリング時間は短くなっていく。これは最低解像度の値が「低すぎて逆効果」な状態から正常な状態に変化していっている結果だ。
 そして、ある値を境に、最低解像度を上げるとレンダリング時間も長くなり始める。これ以後、最低解像度を上げるほどレンダリング時間は長くなっていくが、これは単純にサンプルポイントが増えて計算量も増大した結果で、品質対所要時間のトレードオフが正常に行われていると考えられる。
 このメモでは同じ最高解像度で最もレンダリング時間が短くなる最低解像度の値が「ベスト」とされているが、これはレンダリング時間を最短に抑えるという観点からの判断だ。それより高くするぶんには普通のトレードオフなので、やりたければやってもかまわない。

 このテストをやることで「最低解像度が低すぎてレンダリング時間が無駄に長い」状態になる値は簡単に検出できる。所要時間のグラフが本来あるべき「品質対時間比」とは反転するゾーンを避ければいいわけだ。このグラフの反転箇所を、氏に敬意を表して「シュプランガ反転」と呼ぶことにする(また勝手に)。


◆テスト環境と使用するインテリアのシーン等

 以下いろいろテストする。
 テストに使ってるCIENMA 4DはR9.1のWindows版、マシンはCPUがP4/2.4GHzでメモリ1GB(さっきのテストも同じ環境)。

 シーンは、それなりにちゃんとしたインテリアパースを使う。これはこれで特殊なシーンだが、実際にパースを作っている人にとってリアリティのあるテストというならこういうものになると思う。

 ラジオシティの解像度はシーン全体のサイズに対する相対値なので、シーンのサイズも確認しておこう。このシーンの最大長はZ方向の10,000mmだ。ただしこの「mm」という単位はユーザーが目安にするための表示でしかなく、CINEMA 4Dのアプリの環境設定に存在するだけでシーンファイルには書き込まれていない。同じファイルを単位「m」のCINEMA 4Dで開けば最大長は10,000mになる。ラジオシティ設定に関しては単に数値だけ「10,000」というのを見ておけばいい。

 レンダリング設定のラジオシティのとこはこうなってる。以下の実験では、解像度以外は基本的にいじらない。サンプル数が「10 」と低いのは前述の通りシュプランガ・テストの基本。

050325_radires_2.gif

 拡散反射回数が「8」と高めになっているが、このぐらいやらないと引っ込んだところが明るくならないし、多少高めでも特に弊害もないので、経験的にこうしている。これに関してはマニュアルでは不思議な説明がされている。

この値は1から100まで指定できますが、ほとんどのシーンではデフォルトの3で十分な画質が得られるはずです。この値を大きくするとレンダリング時間が長くなります。特に閉じたシーン(周囲を完全に壁に囲まれたシーン)では、拡散反射した光線が何回もオブジェクトにぶつかるため、この効果が顕著になります。逆に開いたシーンでは、1回か2回の拡散反射でほとんどの光線が無限遠に飛び去るため、大きな問題にはなりません。このような理由から、閉じたシーンでは拡散反射の値を3以上にしないでください。

 開いたシーンでは1回か2回で十分です、閉じたシーンでは3以上にしないでください、それが本当だったら3で固定しとけばいいんじゃないのか。かと思えば後のほうには、

その他の、拡散反射回数やプレパスサイズなどのパラメータは、レンダリング時間にそれ程影響しません。

 なんて書いてある。やっぱ影響しないんか。
 MAXONのリソースの「ラジオシティの設定について」の拡散反射回数のほうには、

レイトレーシングの場合と同じように、複数回の反射を経て暗くなった光線の計算は自動的に省略されるので、この値を大きくしてもそれ程計算時間はのびません。

 と書かれている。こちらのほうが実感に近い。反射回数が1と2の違いや2と3の違いはすごく大きいが、7と8や15と16あたりになるとさほど違わなくなることが多いように思う(こっちの影響は今回はテストしてないのでまた別な機会にやるかも)。


◆推奨値に従ってみる

 物は試しで、マニュアル推奨値に従って解像度を設定してみる。最も小さい形状は数mmなのだが、だいたい10mmぐらいでええんちゃう?ってことで、最高解像度は「1000」になる。最低解像度は最高解像度の「1/4」で「250」。すると、こういう感じになる。

 最低250:最高1000のプレパス

 いやいやいやいや、いくらなんでもこれはないだろ。サンプルポイントの赤と緑の塗り分けがはっきりわかって面白いけどな(通常モードでの赤と緑の意味はマニュアルにないので不明。カメラアニメーションモードではキャッシュされたサンプルポイントが緑、新規計算が赤となる。また、マテリアルでサチュレーションをいじってあるところはサンプルポイントが白になる。以上余談)。
 MAXONサイトの記事の解像度のところをよく読んでみると、

サンプリングポイントの密度は、最低値、最高値とも、計算精度が「40」付近の時に、「シーンの大きさ/解像度」になります。

 と書かれている。このシーンの計算精度は「70 」なので、「40」付近に合わせた最高解像度「1000」では密度が過剰ということになる。

 ここで計算精度についても触れておこう。マニュアルにはこう書かれている。

計算精度の値は、サンプル数や最低解像度、最高解像度の値をまとめて変更します。また、ラジオシティに含まれる統計計算の精度や、補間の精度にも影響します。

 つまり計算精度をいじると解像度とサンプル数も一緒に変わってしまうわけだ。乱暴に全体的な精度をいじるには便利だが、解像度やサンプル数の設定をひとつずつ地道に追い込んでいるときはいじらないほうがいい。そこで僕はいつも計算精度はデフォルトの「70」のままで固定している。『ラジオシティに含まれる統計計算の精度や、補間の精度』っていうのが気になるところだが、まあ70なら無難なとこじゃないかという気がする。
 それから、レンダリングタグでオブジェクト単位の計算精度を設定するときにもこの値が意味を持ってくる。特定の部分でアーティファクトが目立つようなときに、タグで計算精度を上げて解消するのだが(このシーンでは階段のタテ方向の板の内側につけている)、もしシーン全体の計算精度が「100」だったらそれ以上は上げようがなくなってしまう。「70」から「100」までの落差があればだいたい間に合う。

 さて、僕がこのシーンで経験則からはじき出した解像度は「最低25/最高600」なので、この最高解像度「600」が計算精度「70」のときの適切な値と仮定して、最低は最高の1/4の「150」にしてみる。

 最低150:最高600のプレパス

 ……さっきとあんまり変わってない。
 もちろん最低:最高比を1:4のまま全体の解像度を落とせばこのポイントぎっしり状態は解消されるんだが、それをやると全体のクオリティが著しく落ちることになる。Advanced Renderのチュートリアルファイルは最低100:最高200になってるが、もしきちんとディテールを出さなければならない状況だったら最高解像度はもっと高くてはならないはずだ。やはり、ディテールに必要な最高解像度をユーザーが任意に決めたうえで、最適な最低解像度を求める方法がなければいけない。


◆インテリアパースのシュプランガ・テスト

 ではいよいよ、このシーンでシュプランガ・テストをやってみよう。サンプル数は前述のとおり「10」で、アンチエイリアスやエリアシャドウ等もオフにしている(以下同じ)。

 結果はこんな具合になっている(最低解像度が等差になるよう横軸間隔を調整した)。

050325_radires_6.gif

 このテストでは、かなりはっきりしたシュプランガ反転が見られる。反転が起きているのは最低:最高比が1:20より高い(最低解像度が30より低い)部分だ。正常な部分では、最低解像度が高くなるほどレンダリング時間は長くなっていく。

 プレパスはこんな具合になっている。

 最低200:最高600のプレパス
 最低60:最高600のプレパス
 最低30:最高600のプレパス
 最低10:最高600のプレパス

 絵ヅラからみると、1:10より密度を上げる意味はないだろう。僕が経験則から絵ヅラ重視で決めた最低25:最高600という値は比率にすると1:24で、計時テストを一切していない割にはいいところをついていたことになる。

 このテストとさっきの押し出しテキストのテストの結果を合わせて考えてみると、ラジオシティでは確かに最低解像度を低くしすぎると無駄にレンダリング時間は長くなるが、その境界になる具体的な値はシーンの特性に依存するものであって、一般論として「いくら」とは言えない。「1/3」が正しいとか「1/20」が正しいとかいう話ではなく、「最適な比率」が決まっている=一定の数値が常に通用するという発想を捨てなければいけないようだ。


◆メモリ消費

 サンプルポイントの密度が過剰になった場合、もうひとつの心配事として、メモリ消費がある。サンプルポイントが多くなればそれだけメモリを食うんじゃないだろうか。CINEMA 4Dがラジオシティを計算するときどんなふうにメモリを使っているのかわからないが、ひとつの目安として、プレパスのキャッシュファイルである「.gi」ファイルのサイズを調べておいてグラフにした(こちらも最低解像度が等差になるよう横軸間隔を調整した)。

050325_radires_7.gif

 面白いことにこのテストでは「.gi」のファイルサイズは最低解像度の値にほぼ正比例している。
 このテストではサンプル数をわずか「10」でやっているが、サンプル数が増えると「.gi」のファイルサイズも大きくなる傾向があるので、本番ではもっと大きくなると考えられる。ただしこちらの増加はサンプル数に正比例するわけではなく、増加のペースはもっと緩やかなようだ。


◆拡張シュプランガ・テスト

 先に書いたもうひとつの疑問、問題になるのは本当に「最低解像度と最高解像度の比率」なのかということについて確かめるために、シュプランガ・テストのバリエーションをやってみた。

 まず、「最低解像度」を「30」に固定し、「最高解像度」のほうを変えてみる。最高解像度を上げればそれだけ「最低:最高比」が高くなっていくことになる。

050325_radires_12.gif

 プレパスのキャプチャは以下。

 最低30:最高60のプレパス
 最低30:最高150のプレパス
 最低30:最高300のプレパス
 最低30:最高1500のプレパス

 MAXONの「ラジオシティの設定について」では、『最高解像度に比べて最低解像度の値を小さくしすぎると』レンダリングが極端に遅くなると書いてあるが(マニュアルのほうでは「何に対して」とは書いてない)、これも実際には一概にそうは言えないのがわかる。(1)のグラフのテストでシュプランガ反転が始まるのは最低:最高比が「1:20」付近だが、(3)のグラフのテストで最高解像度のほうを上げていって「1:50」まで行っても、レンダリング時間が「極端に」長くなっているとはいえず、単にサンプルポイントの増加を反映している程度しか増えていない。プレパスのキャプチャで最高解像度が300の場合と1500の場合を比べると、最も密度の高いエッジ部分以外はほとんど変化していない。
 このテストを見る限りでは、最低解像度が低すぎるのは影響大だとしても、最高解像度が高すぎてもさほど影響はないとみることができる。

 問題は「最低:最高比」ではなくて、「何か」に対する「最低解像度」の比率のほうなのではないだろうか? まあ「何か」つっても、あとはシーンのサイズぐらいしか思いつかないけども。

 次は「最低:最高比」を1:20に固定して、同じ比率のまま解像度を変えていくテストをした(プレパスのキャプチャはとってなかった。もういいよね、似たようなもんだし……)。

050325_radires_13.gif

 このテストでは、シーンサイズ比「1:333」でレンダリング時間が最も短く、それより低いとレンダリング時間は長くなる。「最低:最高比」はずっと変わっていないのに、明らかなシュプランガ反転が起きている。解像度が高いほうでもレンダリング時間が長くなるが、これは単にサンプルポイントの数が非常に多くなるからだ。

 (3)と(4)の結果を合わせて考えると、「最低:最高比」が問題なのではなく、「最低:シーンサイズ比」が問題だということになりそうだ。

 グラフ(1)の「最高解像度固定・最低解像度変化」のシュプランガ・テストの結果を、最低解像度とシーンサイズの比率で見直したのが次の(5)のグラフだ。(4)のグラフにサンプル例を合わせるため、最低解像度が「5」と「15」のサンプルを追加した。

050325_radires_14.gif

 この(5)の結果を(4)のグラフと比べると、「最低:シーン比」とレンダリング時間の変化の対応はほぼ同じになっている。

 (3)(4)(5)、3つの拡張シュプランガ・テストの結果を見ると、シュプランガ反転が起きるのは「シーンのサイズ」に対して「最低解像度」が低すぎるときで、「最高解像度」が高いことや「最低:最高比」が大きいことの影響はないと考えていいんじゃないだろうか。
 ただしこれもこのシーンに限ったことで、他のシーンになるとどうなるかなんともいえない。実際、でたらめなシーンを作ってテストしてみると、シュプランガ反転そのものが検出できない場合もたまにある。


◆シュプランガ・テストの確度

 サンプル数が多いか少ないかで大幅にシュプランガ反転の位置が変わったりすると困るので、念のためサンプル数を「100」まで上げたテストもやっておいた。サンプル数「10」のテスト結果とつきあわせて、シュプランガ・テストと本番での誤差をチェックする。グラフ(5)のテストのうち5つをサンプル数100でやり直したものだが、時間がかかるのでテストは5つしかやっていない。

 比較のため(5)のグラフから同じ解像度のものだけを並べたグラフ(5')も添えておく。

050325_radires_15a.gif

050325_radires_15b.gif

 基本的なグラフの形は変わっていないし、レンダリング時間が最短になる最低解像度が「30」なのも同じだ。シュプランガ・テストはサンプル数「10」でやっても、本番でサンプル数を多くしたときと同じ結果が得られそうだ。
 プレパスの時間はサンプル数の増加を反映して大幅に増えているが、本パスのほうはあまり変わっていない。増加率がグラフではわかりにくいので表にした。

プレパス本パス
最低解像度 サンプル10サンプル100倍率 サンプル10サンプル100倍率
5 203457822.6 6408271.29
15 5879113.6 77931.20
30 5157211.2 41461.12
50 5560210.9 36391.08
100 1009729.72 33381.15

 最低解像度「5」のときのプレパス時間の増加率が異常に高いが、ここは元々シュプランガ反転で極端な数値が出るところなので、大勢に影響はない。それ以外はばらつきがないので、最短時間になる最低解像度を間違えるということはあまりなさそうだし、グラフをみるとわかるように、最短時間になる「底」の部分が結構広いので、多少値がずれてもレンダリング時間に大きな差は出ないだろう。
 倍率をみると、プレパス時間はサンプル数にほぼ比例して増加し、本パス時間はちょっとしか増えないという結果になっている。低いサンプル数でシュプランガ・テストをやった場合、レンダリング時間に占めるプレパスの割合が本番ではテスト時よりもずっと大きくなる。ラジオシティの計算が重いシーンのテストの評価では合計時間よりプレパスの時間のほうを重視したほうが確実だろう。
 逆に、テスト時にアンチエイリアスやエリアシャドウや拡散鏡面反射をオフにしているので、そっちのことも計算に入れておかなくてはいけないが、これらの要素にはシュプランガ反転はないので、普通に品質対所要時間比でのトレードオフを考えておけば大丈夫だ。

 最後に最低30:最高600 サンプル100のレンダリング画像を。

 サンプル100というのはインテリアとしては結構低めの値だが、アーティファクトが目立つほどではない。ライトをたくさん置いている(10個)せいかと思う。ライトをたくさん置くと室内がまんべんなく明るくなり、パストレーシングが拾ってくるサンプルの明度の落差が小さくるので、アーティファクトが出にくくなる。

(後編につづく)

投稿者 ヒロツ : 20:25 | コメント (0) | トラックバック (1)