コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

グーローシェーディング

出典: フリー百科事典『ウィキペディア(Wikipedia)』
グーローシェーディングを施したポリゴン

グーローシェーディング: Gouraud shading)は、物体の表面での光と色の変化をシミュレートするコンピュータグラフィックスの手法の1つ。アンリ・グーロー英語版が考案し1971年に公表した。実際には、粗いポリゴン表面に滑らかな照明効果を施すのに使われ、各ピクセルの計算にそれほど時間がかからない。

原理

[編集]

基本原理は次の通りである。3次元モデルの各頂点法線ベクトルの近似として、その頂点で交わる各多角形(ポリゴン)の法線ベクトルの平均を求める。この近似値を使い、フォン反射モデルに基づいた照明の計算を行い、各頂点の色の強さを求める。画面上の各ピクセルの色は頂点群の色から双1次補間で求める。簡単に言えば、頂点間でグラデーションを生成する。

利点と欠点

[編集]

グーローシェーディングの利点と欠点はその補間にある。例えば、3つの頂点について照明を考慮した色の計算(これは時間がかかる)を行い、それらを使って各ピクセルの色を補間によって求める部分は処理が簡単であり、これはフォンシェーディングとも共通である。しかし、非常に局所的な照明効果(例えば、リンゴの表面に照明が映りこんで光る鏡面ハイライトなど)は正しく描画できず、ハイライト部分がポリゴンの真ん中あたりにあって頂点まで及んでいない場合、グーローシェーディングではそのハイライトは現れない。逆にハイライトが頂点にある場合、その頂点は(照明モデルを適用しているため)正しく描画されるが、そこから周囲への広がり方は補間ではうまく表現できず、不自然になる。オブジェクトを回転させたときハイライトが表面を滑らかに移動しなければならないのだが、そのときに問題が見た目にもはっきりする。グーローシェーディングでは、ハイライト部分が頂点に差し掛かったときに強くなり、頂点と頂点の間では弱くなるということを繰り返してしまう。これは、ポリゴンを細かくして頂点を増やせば改善できる。また、ハイライトの周辺だけ頂点の密度を高める適応的平面充填法を採用するという手段もある。

欠点はあるものの、グーローシェーディングはフラットシェーディングよりは優れている。ただしフラットシェーディングはグーローよりも遥かに計算量が少なくて済み、角張った表現をしたい場合には適している。

関連項目

[編集]

参考文献

[編集]