シェーディングとは、3Dモデル( 3Dコンピュータグラフィックスの分野)やイラスト(ビジュアルアート)において、暗さのレベルを変化させることで奥行きを表現する手法を指します。[ 1 ]シェーディングは、オブジェクトの表面における光の局所的な挙動を近似しようとするものであり、光の全体的な挙動に分類されるシャドウマッピングやシャドウボリュームなどの影を追加する技術とは混同してはいけません。
陰影は、描画において伝統的に、暗い部分には絵具をより濃く塗ったり、より濃い色を使ったり、明るい部分には絵具をより薄く塗ったり、より薄い色を使ったりして、さまざまな暗さを表現するために用いられます。明るい部分と暗い部分を持つ物体などの光のパターンは、紙の上に奥行きの錯覚を生み出すのに役立ちます。[ 2 ] [ 3 ]
陰影をつける技法には様々な種類があり、その一つにクロスハッチングがあります。これは、間隔の異なる垂直線を格子状に描いて領域を陰影をつける技法です。線が密集しているほど、その領域は暗く見え、逆に、線が離れているほど、その領域は明るく見えます。
パウダーシェーディングは、スケッチにおける陰影表現の手法の一つです。この技法では、擦筆と擦筆を用いて絵を描きます。(カラーでも使用できます。)擦筆は滑らかで、光沢のある粒子は含まれていません。使用する紙は、粉が紙にしっかりと付着するように、細かい粒状のものを選びます。


コンピュータグラフィックスにおいて、シェーディングとは、3Dシーン内のオブジェクト/サーフェス/ポリゴンの色を、光源に対するサーフェスの角度、光源からの距離、カメラに対する角度、マテリアルの特性(双方向反射率分布関数など)といった要素に基づいて変更し、フォトリアリスティックな効果を生み出すプロセスを指します。
シェーディングは、レンダリング処理中にシェーダーと呼ばれるプログラムによって実行されます。
シェーディングとは、3Dモデル内の面の色が、光源に対する面の角度に基づいて変化する処理のことです。
下の最初の画像では、箱の各面がレンダリングされていますが、すべて同じ色になっています。ここではエッジラインもレンダリングされているため、画像が見やすくなっています。
2枚目の画像は、同じモデルをエッジラインなしでレンダリングしたものです。箱の面がどこで終わり、次の面がどこから始まるのか判別しにくいです。
3枚目の画像では陰影処理が有効になっており、画像がよりリアルになり、どの顔がどの人物のものか判別しやすくなっています。


シェーダーが結果の色を計算する際、ライティングモデルを使用して、サーフェス上の特定の点で反射される光の量を決定します。異なるライティングモデルは、異なるシェーディング手法と組み合わせることができます。ライティングは反射される光の量を示しますが、シェーディングはこの情報を使用して最終結果を計算する方法を決定します。たとえば、特定の点でのみライティングを計算し、残りの部分を補間によって補完することができます。また、シェーダーは考慮に入れる光源の数なども決定できます。
環境光源は、シーン内のすべてのオブジェクトに均等に影響を与える(遍在する)全方向性で固定強度・固定色の光源を表します。レンダリング時には、シーン内のすべてのオブジェクトが指定された強度と色で明るくされます。このタイプの光源は主に、シーン内のさまざまなオブジェクトの基本的な表示を提供するために使用されます。これは実装が最も簡単な照明タイプであり、光が何度も散乱または反射して均一な効果を生み出す様子をモデル化します。
環境光とアンビエントオクルージョンを組み合わせることで、シーンの各ポイントがどれだけ露出しているかを表現し、反射する環境光の量を調整できます。これにより、シーン全体に拡散した非指向性の照明が生成され、明確な影はできませんが、囲まれた場所や遮蔽された場所は暗くなります。結果として、通常は曇りの日のような視覚効果が得られます。
光は一点から発生し、あらゆる方向に広がっていく。
光は単一平面上の小さな領域から発せられる。(点光源よりも現実的なモデルである。)
指向性光源は、特定の方向から全ての物体を均等に照らします。これは、無限の大きさでシーンから無限の距離にある面光源のようなものです。陰影は生じますが、距離による光の減衰はありません。これは太陽のようなものです。


理論的には、平行な2つの面は、太陽のような遠くにある遮るもののない光源からほぼ同じ量の光を受ける。しかし、距離による光量減衰効果によって、画像にはより多くの陰影が生じ、光源が近い場合にはよりリアルな画像が得られる。
左側の画像では、距離による色の変化は考慮されていません。2つの箱の前面の色が完全に同じであることに注目してください。2つの面が直接重なる部分ではわずかな違いがあるように見えるかもしれませんが、これは2つの面が接する部分の下にある垂直なエッジによって引き起こされる錯覚です。
右側の画像では、距離による明るさの減衰が見られます。手前の箱の前面が奥の箱の前面よりも明るいことに注目してください。また、床は遠ざかるにつれて明るい色から暗い色へと変化しています。
距離による弾道減衰は、いくつかの方法で計算できます。
シェーディング処理では、照明計算のために表面法線が必要となることがよくあります。法線は、モデルの各頂点ごとに事前に計算して保存しておくことができます。


ここでは、ポリゴンの表面法線とすべてのポリゴンが平面であるという仮定に基づいて、各ポリゴンに対して照明が一度だけ評価されます(通常はポリゴンの最初の頂点ですが、三角形メッシュの場合は重心になることもあります)。計算された色はポリゴン全体に使用されるため、角がシャープに見えます。これは通常、より高度なシェーディング手法の計算コストが高すぎる場合に使用されます。フラットシェーディングでは、鏡面反射のハイライトのレンダリングが不十分です。代表頂点に大きな鏡面反射成分がある場合、その明るさは面全体に均一に描画されます。鏡面反射のハイライトが代表点に当たらない場合は、完全に失われます。したがって、通常、鏡面反射成分はフラットシェーディングの計算には含まれません。
ポリゴン境界で色が不連続に変化するフラットシェーディングとは対照的に、スムーズシェーディングでは色がピクセルごとに変化するため、隣接する2つのポリゴン間で滑らかな色の遷移が実現します。通常、値はまず頂点で計算され、双線形補間を使用してポリゴンの頂点間のピクセルの値を計算します。スムーズシェーディングの種類には、グーローシェーディング[ 4 ]とフォンシェーディング[ 5 ]があります。
問題点:
フォンシェーディングはグーローシェーディングと似ていますが、光の強度を補間する代わりに、頂点間の法線を補間し、ピクセルごとに照明を評価する点が異なります。そのため、鏡面反射光はグーローシェーディングモデルよりもはるかに正確に計算されます。
遅延シェーディングは、シェーディングの計算を後の段階に延期し、2回のパスでレンダリングすることで、コストのかかるシェーディングピクセルを破棄せずに済むため、パフォーマンスが向上する可能性のあるシェーディング技術です。最初のパスではサーフェスパラメータ(深度、法線、マテリアルパラメータなど)のみを取得し、2回目のパスで実際のシェーディングを実行して最終的な色を計算します。[ 6 ] [ 7 ] [ 8 ]: 884
Gouraud シェーディングとPhong シェーディングはどちらも双線形補間を使用して実装できます。Bishop と Weimer [ 9 ]は、照明モデルを適用して法線を双線形補間した結果の式のTaylor 級数展開を使用することを提案しました。そのため、2 次多項式補間が 使用されました。このタイプの双二次補間は Barrera ら[ 10 ]によってさらに詳しく検討され、 Phong 反射モデルの拡散光を補間するために 1 つの 2 次多項式が使用され、鏡面反射光には別の 2 次多項式が使用されました。
KuijとBlake [ 11 ]は、多角形の法線と光源方向のベクトルを計算するために、球面線形補間(Slerp )を使用しました。Hast [ 12 ]は、法線の四元数補間を使用する同様のアプローチを提案しており、法線の長さが常に単位になり、計算負荷の高い正規化が回避されるという利点があります。

コンピュータビジョンでは、3D再構成のためのいくつかの手法は、陰影、または陰影からの形状復元に基づいています。画像の陰影に基づいて、1枚の写真から3次元モデルを再構成することができます。[ 13 ]
{{cite web}}: CS1メンテナンス: アーカイブサービスは非推奨になりました (リンク)