シェーディング

シェーディング（）は、3次元コンピュータグラフィックスやイラストレーションなどで明暗のコントラストで立体感を与える技法である。絵画では陰影画法と呼ぶ。単に立体に影を付ける、付影処理 (シャドーイング、) とは異なる。
絵画技法.
紙上に絵を描く際のシェーディング（陰影画法）とは、暗い部分にはより濃く画材を使用し、明るい部分には軽く画材を使用することで、立体的に描く手法である。シェーディング技法には、直角に交わる線を間隔を変えながら多数描いて影を表すクロスハッチングなどがある。線の間隔が狭い部分は影が濃い部分となる。同様に線の間隔が広い部分は明るい部分となる。
対象物への光の当たり方を考慮してシェーディングを施すことで、紙上に奥行きがあるかのように感じられる絵を描くことができる。
コンピュータグラフィックス.
コンピュータグラフィックスにおけるシェーディングとは、光の角度と光源からの距離を考慮して色を変化させ、実写のような効果を得る処理を指す。シェーディングはレンダリング処理の一部である。
簡単な例.
シェーディングは3次元モデルの表面の色をその表面と光線の交わる角度に基づいて変化させる。
下の左の画像は、直方体を描いたものだが、どの面も同じ色で描いている。面の輪郭線も別の色で同時に描いてあるため、直方体だと分かりやすくなっている。真ん中の画像は、同じモデルを描いており、同様にどの面も同じ色である。輪郭線を描いていないため、面と面の境界が分かりにくいし、全く立体感がない。右の画像はシェーディングを施しており、より写実的でそれぞれの面も識別しやすい。
光源.
3次元コンピュータグラフィックスでシェーディングを施す際、以下のような様々な光源を使用する。
シェーディングは、これら光源とオブジェクトの表面の角度に基づいた内挿である。もちろん、1つのシーンに複数の光源を設定することができ、実際そのように制作することが多い。レンダラーは複数の光源からの光線の合成を内挿し、それにしたがって2次元の画像を生成する。
距離減衰.
理論的には、平行な2つの面があったとき、太陽光線のような遠距離の光源からの光の照度は等しい。たとえ一方の面がずっと離れていても照度は一定である。
下の図では、2つの直方体を異なる光源で照らしたときのシェーディングを示している。左の画像ではどちらの直方体も正面の面は同じ色になっている。右の画像では前の直方体の正面の方が若干明るい。また、床が近い部分ほど明るくなっている。右の画像の光源は光源からの距離が遠いほど光線が減衰する設定になっている。これを「距離減衰 (distance falloffあるいはdistance attenuation)」と呼び、光源を増やすことなく、より写実的な画像が得られる。
距離減衰の計算方法はいくつかある。
フラットシェーディングと滑らかなシェーディング.
フラットシェーディング (flat shading) は3次元コンピュータグラフィックスにおけるライティング技法の一種である。オブジェクトを構成するポリゴンの法線ベクトルと光源の方向との角度に基づいて面単位でのシェーディングを施すもので、色はそのポリゴン（面）を照らす光の強さにしたがって決定される。リアルタイム処理系など、高速なレンダリングが必要で、より高度なシェーディング技法が使えない場合に利用される。しかしグラフィックスチップ上でのハードウェアT&Lおよびプログラマブルシェーダーが一般化して以降は、すでにローエンド品やモバイル向けであっても非常に高速に滑らかなリアルタイムシェーディングが可能であり、性能的な理由でフラットシェーディングを使うことは少なくなっている。
フラットシェーディングの欠点は、滑らかな曲面を表現したい場合でも小さな平面が並んでいるような見た目になる点である。逆に角ばった物体を描きたいなら、そのような見た目が好ましい場合もある。ソリッドモデル製作中はフラットシェーディングの方が形状が見やすいので、よく利用される。より進んだ写実的なシェーディング技法としては、グーローシェーディングやフォンシェーディングがある。非写実的なシェーディング技法としては、陰影の階調が段階的に変わるセルアニメーションのようなトゥーンシェーディングが挙げられる。