レンダリングとは、3DCG ソフトウェア上でイメージの計算を行う工程のことで、マテリアル、テクスチャ、ライティング などの計算、最終イメージ出力のために計算を行うプロセスです。
3DCG 未経験者は、レンダリング工程は最終のイメージ計算と誤解されている方が多いようですが、そうではありません。前述したとおり、設定したパラメーターの確認のため頻繁に確認のためのレンダリング(計算) を繰り返します。
レンダリングを行うプログラムの事をレンダラーといいます。一般的に 3DCG ソフトウェアに内包される事が多く(統合型) 、レンダリングを専門に行う独立型のアプリケーションもあります。
Mental Ray(XSI / MAYA / 3ds Max) や YafRay (Blender)のように特定の 3DCG アプリケーションに外部モジュールとして内包可能なレンダラーも存在します。
サーフェイス(面) を求めるレンダリング(計算)には様々な方式があり、それぞれに特徴があります。3DCG ソフトウェアによって、メインで使用するレンダリング方式はことなります。また、同じレンダリング方式であっても、拡張性に差があります。
例えば、影の計算が行えないスキャンラインベースのレンダラ―でも、シャドーマップといった影を擬似的に表現できるものとそうでないものがあります。また、レイトレーシング方式 ではエッジのボケた柔らかな影は計算できませんが可能にしているレンダラーもあります。
つまり、同じ計算方式であってもその拡張性に関しては、3DCG ソフトウェアが実装する レンダラによって違いがある事に留意してください。
サーフェイス表面の輝度を法線方向から割り出し、シェーディングを行います。Zバッファ法とフォンシェーディングによるレンダリングをサポートする製品はほとんど見かけなくなりました。
これらの技術は、OpenGLなどのハードウェアレンダリングも同様で、リアルタイム処理が可能な時代になっておりアニメーションプレビュー用途してレンダリング指定する事が出来る製品もあります。
昔はZバッファ法とフォンシェーディングによるレンダリングで反射を擬似的に見せるためにマッピング画像を用いたり、ライトにマスクを透過することで擬似的な影を作り出したりするテクニックを使い試行錯誤しました。レンダリング時の描画は、オブジェクトごとに順番にサーフェイスを描画していくのでわかります。
スキャンラインとは走査線の事をいいます。視点(カメラ)を基準に水平方向にシーン内を水平にスライスする事でサーフェイスを求めます。後述するレイトレーシングと異なり、光源からレイ(光の軌跡)を計算しないため、一般的に高速なレンダリング方式といえますが、ジオメトリの高いオブジェクトや複雑なオブジェクトが多く配置されたシーンにおいては計算に時間が掛かります。
特に近年はCPU性能向上により浮動小数点計算能力が飛躍的に向上したため、レイトレーシング方式の方が計算速度が速くなるケースも多く、現在市販されている統合型 3DCG ソフトの多くは、レイトレーシング方式をベースとしたレンダリングエンジンが主流となって久しいです。
光源を出発点とする光の軌跡を計算によって求める訳ではないため、反射、屈折、影などの表現は出来ないため、反射や屈折は環境マッピングによる擬似的な表現、影においてもシャドーマッピングといった擬似的な表現でカバーします。
欠点として、オブジェクト数の多い複雑なシーンでは必要以上にメモリを消費
シェーディングが美しいため、これらのテクニックでレイトレーシングより高速で実写的な表現が可能なため、ポストプロダクションなどのアニメーション制作現場において現在も利用されている計算方式です。
統合型 3DCG ソフトでは、Shade が古くからスキャンライン方式を採用しており、現時亜はレイトレーシング方式、ラジオシティの3つの方式から選べるようになっています。また、Blender もスキャンラインをベースとするレンダリングエンジンをもっていますが、任意のオブジェクト、サーフェイスに対してのみレイトレーシング方式を選べるように拡張されたエンジンを持つレンダラも存在します。
フォンシェーディングややスキャンラインなどのシェーディング法と異なり、レイ(光線)を視点からトレース(計算)するため反射、屈折、影の表現が可能になります。
レンダラによっては反射、屈折の反復回数を指定することでチューニングを行うことも可能です。光源が増えるとレンダリングパスが増大しレンダリング時間が増しますが、LightWave のように、光源が増えてもレイトレーシング速度変化が少ない製品もあります。
3DCG製品の中では、現在もっとも多く採用されている計算方式の一つです。特徴としては影のエッジがシャープで、創意工夫しなえれば如何にもCGという硬いイメージに仕上がってしまいます。レンダラによっては影をぼかすための拡張レンダリングもあります。このレイトレーシングは、スキャンラインと比較して計算負荷が非常に高くなります。
関連 => 3DCG レイトレーシング方式におけるライティング アプローチ
視点を出発点に光線のトレースを行うレイトレーシング方式とは逆にライトを基準に放出される光線をトレースする計算法です。
四方八方に広がる光線が視点に届くまでを計算するため、レンダリングパスが増大します。そのため、気が遠くなるほどのレンダリング時間を要します。
特徴は互いのサーフェイスが隣接するサーフェイスにも拡散色の影響を与えるということです。例えば、白い床に赤いボールがあれば、隣接する床は赤く、ボールは白い床の影響を受け底が明るく見えます。また、影も柔らかくなり、周囲にあふれる環境光を表現する事が出来ます。
光の軌跡を全て計算するためレンダリング時間が非常にかかるばかりか、確認のレンダリングでさえ非常に困難になります。
関連 => 3DCG ラジオシティにおけるライティング アプローチ
ライト(光源)からフォトンを放出し、周囲の物体とフォトンが衝突した地点でマッピングデータを生成します。これが計算上の環境光(拡散光)となり、ここから先は通常のレイトレーシング方式(視点からのトレース)で計算されます。
フォトンマップによりコースティクスなどの表現が可能になります。(レンダラによっては、ラジオシティを指定できる製品もあります。)
グローバルイルミネーション効果によるフォトリアルなイメージ制作が可能になります。
関連 => その他 レンダリング関連 ~ 双方向 レイ・トレースと表現力
サーフェイスが周囲に与える影響を計算する目的はラジオシティーと同じですが、ファイナルギャザリングは、サーフェイス情報を元に光エネルギーを算出します。そのため、ライトがなくてもシーンを照らす事が出来るのが特徴です。例えば、発光率の高いサーフェイスオブジェクトがあれば、そのオブジェクトは光エネルギーを持つことになります。主にグローバルイルミネーション(環境光)を演出するために使われます。非常にやわらかい計算結果が特徴ですが、これだけではリアリティーにかけます。ファイナルギャザリングをサポートするレンダラは、フォトンマッピングと併用して環境光を補う形で使用します。
レンダリングを実行すると コンピュータ (CPU) はフル回転して計算を始めます。性能の高い CPU ほど短い時間で計算を終了します。
一般的に品質を上げるほど計算時間を要しますが、設定によっては全く意味のない部分にレンダリング時間を要す場合があります。特に、3DCG 初心者の方は、仕組みを理解していない事が多く、私なら 5分 もあれば出せるクオリティーに 3時間も 4時間も無駄にレンダリング時間を要している方を見かけます。
レンダリングコストパフォーマンスに関する記事
参照 => レイトレース法で環境光を模倣する(Lightwave3D)
3DCGソフトウェアが持つレンダラーによって、サポートするレンダリング方式は異なりますが、ここで説明したレンダリング方式の特徴は知っておくと制作の手助けになります。
例えば、使用するレンダリング方式によりライティングのテクニックが異なる場合や、アニメーションの確認の際、計算速度を最優先にイメージを計算したい場合もあります。レンダリング方式の特徴を理解していれば、臨機応変に対応できるようになるからです。具体的なライティングテクニックについては、以下のページでも解説しています。
参照 => 3D CG ライティング考察(グローバルイルミネーションの模倣
次のページでは、レンダリング方式の違いとライティングの関係について触れてみたいと思います。
このような方におすすめ ハイエンド 3D グラフィックソフトの使い手で有名な Jeremy Birn 氏の書籍です。 |