シェーディング

シェーディングとは

シェーディング(shading、濃淡づけ)とは法線ベクトル、・ライトなどからその点の明るさを求める方法のことである。
ここで紹介するのは良く使用される方法だけである。

シェーディングの種類

一口にシェーディングと言った場合、以下の2種類の方法のどちらかを指している。

照明モデル
ライト・視点・表面の材質などから明るさを求める方法
スムースシェーディング
ポリゴンなどの頂点から補間によって明るさを求める方法

特にPhongシェーディングと言った場合、どちらのことを指しているのか注意しないと混乱する。

照明モデル

Lambert シェーディング
拡散反射(diffuse reflection)だけでシェーディングを行う。
ライトの向きとその点の法線だけで計算されるので視点がどこにあってもその点の明るさは一定である。
Phong シェーディング
拡散反射とハイライト(鏡面反射)を考慮したシェーディング方法。
ライトの反射ベクトル(R)と視点へのベクトル(V)との間の角度をαとして cos α のn乗に比例したハイライトがつく。 (またはR・Vに比例する)
Blinn シェーディング
面を微小な面の集まりと仮定して計算する。
ライトの入射角(法線との角度)が小さい場合はPhongとあまり変らない。
入射角が大きい場合には強いハイライトが現れる。

スムースシェーディング

それぞれの方法で法線から明るさを求める計算には上のどの照明モデルを使用しても良い。

フラット シェーディング
各面の法線だけで明るさを求める
(スムースシェーディングではない)
Gouraud シェーディング
ポリゴンの各頂点の色から補間(線形補間)によって明るさを求める。
  1. 各面の法線を計算
  2. 各頂点を共有する面の法線を平均して、その頂点の法線を求める
  3. 頂点の法線から明るさを計算
  4. スキャンライン上の点の明るさを頂点からの線形補間によって求める
Phong シェーディング
ポリゴンの各頂点の法線を補間(線形補間)して明るさを求める。
Gouraud シェーディングの色の代わりに法線を使う。

参考


Home | Contents
Mail