はじめて 3DCG に取り組まれる方が最初に認識すべき問題として "見かけの分割率" と "レンダリング時の分割率" の問題があります。2Dグラフィックスの世界で言えば、ディスプレイ表示に必要な解像度と印刷時に必要な解像度は異なるのと同じぐらい基本的、且つ重要な事柄です。
Lightwave と Maya を例に説明していますが、前のページで説明した通り、どの 3DCG ソフトウェアにおいても共通します。
非常に重要な事象であるにも関らず、3DCG 初心者が見落とし易い理由として "見かけの分割率" と "レンダリング時の分割率" に関する認識不足が考えられます。
3DCG 制作者にとっては当然のこと過ぎてあまり触れられる事も少なく、マニュアルに記載されている事も少ないように思います。
ここでの見かけの分割率とは、ビューポート上でワイヤーフレームやシェーディング表示における分割率です。あくまで見かけ上の問題であって後述するレンダリング時の分割率とは関係はありません。分割率が高いほど細部を作り込む作業に適しますが、ビューポートの表示は重くなります。
表示を高速化するためのビデオカードが必要とされるのは、これらの理由から。
左が Patch Divisions 2 、右が 6
Lightwave 3D のモデラがサポートするサーフェイス属性は、サブディビジョン系のポリゴンのみです。そのため注意すべきサーフェイスの分割レベルは、サブパッチを適用しているオブジェクトのみ ※1) です。
Lightwave 3D モデラの場合、見かけ上(ビューポート)上のサーフェイス分割率は、オブジェクトごとにではなく、全てのサブパッチ形状に対して適用されます。サブパッチ分割レベル と読んでいます。
設定は General Options の Patch Divisions (サブパッチ分割率)で行います。
※1) 従来の三角・四角メッシュ対応のサブパッチ・サーフェイスに加え、Lightwave 9 からは、五角形ポリゴン以上に対応するカトマル(キャットマル?)・クラークに対応しています。サブパッチ分割率に加え、キャットマル分割率という項目が増えています。
Lightwave 3D は統合型3DCGソフトの中では異端児でモデラとレイアウトと呼ばれる二つのアプリケーションから構成されており、ビューポート上の表示レベルはそれぞれのソフトウェアで行う必要があります。(上記解説は Modeler 側の設定)
Maya の場合、サブディビジョン系ポリゴンモデラのみを搭載する Lightwave 3D や 3ds Max と異なり、スムースプロキシ、サブディビジョン、NURBS の 3つのサーフェイス属性のモデラを搭載しています。
これらの属性は、それぞれにメリット・デメリットがあり、用途に応じて使い分けの出来る方は高度なモデリング技術をお持ちでしょう。それぞれアトリビュートに表示レベルを調整できる項目があります。そもそもMayaは初心者を前提としたソフトウェアではありません。
Maya の NURBS Sphere の例。ワイヤーフレームの見かけ上の表示は軽い。レンダリングの際に使用されるメッシュ数はアトリビュート Tessellation (テッセレーション)>Display Render Tessellation を有効にする事で、実際のレンダリングに使用するメッシュ数が視覚的に分かる
それぞれのサーフェイス属性毎に適切に設定する必要があります。モデリングとレンダリングを一つのアプリケーションで行う統合型3Dソフトにおいて3D初心者の方は見落としがちになります。Shadeに関しても同様のことが言えます。
ビューポート上で分割率を上げて滑らかに見えているからレンダリング結果も同じになる訳ではありません。レンダリング時にサーフェイスを程度の分割率で計算するかは、レンダラ側で別途指定する必要があります。
Lightwave のレンダリング時におけるサブディビジョン 分割率の設定は、Layout 側で行う事になります。特にLightwave 3D ver.9からは分割率に関する機能が大幅に強化されています。(個人的に最も評価している機能強化 でこの価格帯で実現しているのはLightwaveのみ)
Lightwave 9 からカメラの距離に応じてオブジェクトのメッシュ数を自動的に変更させる事が出来るようになりました。これにより、アニメーション制作においてレンダリング・コストを大幅に削減する事が可能になります。
左は、先ほどの9つの四角ポリゴンで構成されたサブパッチ形状を Layout に取り込んでいます。Modeler と異なり、Layout ではメッシュ表示になります。右は正面のカメラから 分割率3 でレンダリングした結果です。
ビューポート上のサブパッチ分割率とレンダリング時の分割率はオブジェクトごとのプロパティ画面でレンダリング時のサブパッチレベル(分割率)を設定します。
レンダーサブパッチレベル を 9 にしてレンダリングした結果です。レンダリング結果は滑らかな形状をしていますが、レンダリング時にポリゴン数が跳ね上がるため、レンダリング・コストに大きく影響します。
視覚的に確認するのであれば、表示サブパッチレベル を同じ 9 に設定すれば良いことになります。
Maya の場合、二つのレンダラを搭載しています。一つは、Maya 独自のSoftware レンダラ、もう一つは外部の MentalRay レンダラ です。Maya 4 から搭載された Suvdiv サーフェイスに関しては、それぞれのレンダラでテッセレーション(分割率)の設定を行う必要があり手間がかかる上に分かり難い仕様となっています。
それぞれのインターフェイス(アトリビュート)もバラバラで一括変更を行うインターフェイスは用意されていないが、一括変更は可能。初心者お断りソフトなので。最終的にどちらのレンダラで制作するか決めなければならない、という事でしょうが、Software レンダラでしか恩恵をフルに受けられない機能も多く悩ましい、 Maya の一番嫌いな所。 XSI 見たく独自レンダラはさっさと切り捨てるべき。
このように通常作業を行うビューポートとレンダリング時に使用するサーフェイス分割レベルは異なり、どの3DCG ソフトにおいても同様の事が言えます。
レンダリング時において、浪費するメッシュ数はレンダリング・コストに大きく跳ね返ります。例えば、遠くにあるオブジェクトやカメラが接近しないオブジェクトには密度の高いメッシュは必要ありません。
ところが、ビューポート上とレンダリング時に使用するメッシュ数は異なるため、シーンに配置されるオブジェクトが増えるほど見落としがちになります。ポイントはカメラとの距離に応じてレンダリング時のメッシュ数を適切に設定する必要があるという事です。
アドバイス
これから 3DCG に取り組まれる方は、基本的なビューポートの操作を覚えたら、モデリングの前にサーフェイスの分割率に関する設定をチェックしてみて下さい。ビューポート上での分割率、レンダリング時の分割率に関する設定項目が必ずある筈です。