
グーローシェーディング(/ ɡ uː ˈ roʊ / goo- ROH )は、アンリ・グーローにちなんで名付けられた、ポリゴンメッシュで表現されたサーフェスの連続シェーディングを生成するためにコンピュータグラフィックスで使用される補間法です。実際には、グーローシェーディングは、各三角形の角での照明を計算し、三角形で覆われた各ピクセルの結果の色を線形補間することによって、三角形メッシュの連続照明を実現するために最もよく使用されます。グーローは、1971 年にこの技術を初めて発表しました。[ 1 ] [ 2 ] [ 3 ]しかし、より優れたシェーディングモデルに対するハードウェアサポートの強化により、グーローシェーディングは現代のレンダリングではほとんど使われなくなりました。
グーローシェーディングは次のように機能します。多角形3Dモデルの各頂点の表面法線の推定値は、各頂点ごとに指定されるか、各頂点で交わる多角形の表面法線を平均することによって求められます。これらの推定値を使用して、反射モデル(例えば、フォン反射モデル)に基づく照明計算が実行され、頂点における色の強度が生成されます。多角形メッシュで覆われる各スクリーンピクセルについて、頂点で計算された色値から色の強度を補間することができます。

グーローシェーディングはフラットシェーディングよりも優れていると考えられており、フォンシェーディングよりも処理量が大幅に少なくて済みますが、通常はファセット状の外観になります。
フォンシェーディングと比較すると、グーローシェーディングの長所と短所は補間方法にあります。メッシュがスクリーン空間で頂点数よりも多くのピクセルをカバーしている場合、頂点での高コストな照明計算のサンプルから色値を補間する方が、フォンシェーディングのように各ピクセルに対して照明計算を実行するよりもプロセッサ負荷が低くなります。しかし、高度に局所的な照明効果(例えば、鏡面反射光、リンゴの表面に反射した光のきらめきなど)は正しくレンダリングされません。また、ハイライトがポリゴンの中央にあり、頂点まで広がっていない場合、グーローレンダリングでは目立ちません。逆に、ハイライトがポリゴンの頂点にある場合、その頂点では正しくレンダリングされます(照明モデルが適用される場所であるため)が、補間方法によって隣接するすべてのポリゴンに不自然に広がります。
この問題は、モデルが回転する際に表面を滑らかに移動するはずの鏡面反射ハイライトが再現されるレンダリングにおいて容易に発見できます。グーローシェーディングでは、ハイライトがモデルの隣接部分で連続的に明暗を繰り返すように生成され、意図した鏡面反射ハイライトがモデルの頂点と一致するときに強度が最大になります。この問題はオブジェクトの頂点密度を上げることで解決できますが、この方法の効果が薄れていくにつれて、より詳細なシェーディングモデルに切り替える方が有利になります。
Gouraud の元の論文では、線形カラー補間について説明されています。[ 1 ] 1992 年に、James F. Blinn は、 GPUで線形補間の透視補正代替として使用される双曲線補間の効率的なアルゴリズムを発表しました。 [ 4 ]頂点からピクセルへの色の補間の線形および双曲線バリアントは、どちらも一般的に「Gouraud シェーディング」と呼ばれています。
強度の線形補間を行うと、微分不連続が生じ、グーローシェーディングによく見られる視覚的アーティファクトであるマッハバンドが発生します。