ジオメトリとレンダリング・コストは密接に関係しており、無駄なく効率よくレンダリングを行うための考え方、アプローチについて説明してきました。このページでは実際にサーフェイス分割率を無視した場合と考慮した場合のレンダリング・コストを検証してみます。実例を示したほうが重要性を認識していただけるのではないかと思います。
以前、公開していた Maya の サブディビ・サーフェイスについての焼き回しです。サブディビジョン系のポリゴン・モデリングになりますが、スプライン系のオブジェクト(NURBS) なども同じです。
サーフェイスの分割率を意識した場合と無視した場合のシーンをレンダリングし、計算に要する時間を調べます。反射や屈折、影など余計な計算要素は排除しています。
オブジェクトデータは Lightwave で作成したポリゴンを Maya 側に取り込んでサブディビジョン化しています。つまり、Maya のデフォルト値が適用されています。このデータとテッセレーション(分割率) の再設定を行ったシーンを比較します。
Maya のサブディ・サーフェイスのレンダリング時のデフォルトの分割率は4と高めの設定となっています。立方体であれば滑らかな球に見えるほど高い分割率です。これらを無視してシーンを組立てると大変な事になる、その実例です。
MentalRay (メンタルレイ)は Softimage|XSI 、3ds Max 、Maya で採用されているハイエンド・レンダラ ですが、高ジオメトリの計算に強い特徴があります。
逆に光源数が増えると極端に速度が極端に低下する傾向があり、MentalRay for Maya の場合、シャドーマップの生成に時間が掛かるなど、基本的な部分が著しく弱いように思います。CGライティングの章で触れていますので参照して下さい。
■レンダリング方式 : レイトレース
■レンダリング時間 :38 秒
■使用メモリ : 204 MB
焼きまわしにあたってポリゴン数を算出しようとしたのですが、データを捨ててしまって調べる事が出来ませんでした。
何れも三回計算した平均値をとっています。
■レンダリング方式 : レイトレース
■レンダリング時間 :17 秒
■使用メモリ : 70 MB
レンダリングに要した時間は約半分になりました。
Maya が従来から持っている独自レンダラです。ラジオシティ系レンダリングはサポートせず、開発は止まった現状があります。
■レンダリング方式 : レイトレース
■レンダリング時間 :172 秒
■使用メモリ : 279 MB
Software レンダラが遅いというより、MentalRay の方が高ジオメトリの計算に強い事を示しています。
■レンダリング方式 : レイトレース
■レンダリング時間 : 81秒
■使用メモリ : 61MB
分割率の最適化を行った場合、MentalRay と同様にレンダリング速度に要した時間は約半分になりました。
上記、4つ計算結果イメージの見た目は殆ど変わりません。例えば、ビス一本に対してサブディビジョン・サーフェイスをデフォルトの分割率で使用しても無駄にレンダリング・コストが高くなるだけです。実際、ビス一本にカメラがズームする事がなければ違いは全く分かりません。
柔軟性の高い Maya はカメラとの距離に対して対象オブジェクトの分割率を動的に変更させる事も可能。(アニメーション制作においてコストを削減できるアプローチ)
ここではサブディビジョンの分割率、つまり、レンダリング時に使用するメッシュ数が多くなった場合の比較に過ぎません。MentalRay 、Maya Software 二種類のレンダラで検証しましたが、メッシュ数の違いに比例して計算時間が増えています。
メッシュ数がレンダリングに与える影響を見るために他の要素は排除している
反射や屈折、影などの処理によっては差は更に広がる可能性もあります。(次ページで簡単な検証) ラジオシティ系レンダリングにしても同様です。メッシュ数が多ければ多いほど相乗効果に他の計算処理も時間を要すことに注意する必要があります。