レンダリング (コンピュータ)
数値データや数式を計算することで画像の画素を生成すること
From Wikipedia, the free encyclopedia
レンダリングの例
レンダリング (3DCG)

3次元コンピュータグラフィックスにおけるレンダリング(英: rendering)は3Dシーンを画像へ変換することである[2]。
3Dシーンは3Dモデル・カメラ・光源などからなる。これを平面のディスプレイで見られるようにピクセルの集合である画像へ変換する一連の処理がレンダリングである[2]。
レンダリング専用のソフトウェアも存在し、その場合はソフトウェア全体をレンダラーと呼ぶ。
3Dレンダリングの主な技法
主に下記の基礎的なレンダリング技法が用いられる。
- ラスタライズ法 - 形状毎に画家のアルゴリズムなどを応用して描画する。
- スキャンライン法 - 走査線毎に交差する形状を判定し描画する。
- レイトレーシング法 - 画素毎に視線と交差する形状を判定し描画する。再帰的に光線追跡をすることで鏡面反射や屈折、影などを再現できる。
これらのレンダリング技法において、様々なシェーディング(陰影付け)技法が応用される。特にポリゴン面には主に次のようなシェーディング技法が用いられる。
- フラットシェーディング - 面毎に法線に基づいて照明計算し、平坦な陰影付けを施す。
- グーローシェーディング - 頂点毎に法線に基づいて照明計算し、頂点色を補間した陰影付けを面に施す。
- フォンシェーディング - 画素毎に頂点法線を補間して照明計算し、曲面を再現した陰影付けを施す。
照明計算の技法は、当該形状表面・光源・視点の関係による直接光のみを考慮したローカルイルミネーション(局所照明)と、シーン全体の関係による間接光を考慮したグローバルイルミネーション(大域照明)に二分される。
ローカルイルミネーションの理論には、古典的にはランベルトの余弦則によるランバート反射や、経験に基づいて鏡面反射(鏡面ハイライト)をモデル化したPhongの反射モデルが用いられてきたが、後に様々な反射モデルが考案され、エネルギー保存則やマイクロファセット、オフスペキュラー、フレネル反射、異方性反射、表面化散乱の概念が導入されるなど理論の発展がある[3]。
主なグローバルイルミネーション技法には次のようなものがある。
- ラジオシティ法 - シーン全体の光エネルギー拡散分布を面単位でシミュレーションする。
- フォトンマッピング法 - 光源から放射されるフォトンの経路分布をシミュレーションする。
- パストレーシング法 - 入射光の再帰的な光線追跡を確率的におこなう。
グローバルイルミネーションは再現精度に従い計算量が膨大になりやすい。実用的な計算時間内ではノイズを生む場合があり、様々なノイズ除去法も利用されている[4][5]。
その他、現実の物理法則を志向した「物理ベースレンダリング」や、系統誤差を導入しない「不偏レンダリング」、非写実的な(例えばトゥーンレンダリングや絵画調など)志向の「非写実的レンダリング」といった分類の考え方もある。