第08回 視線と法線による輪郭表現
1 / 4 視線方向と法線の対応
このステップの目的
表面からCameraへ向かう方向を、法線と同じ空間で扱います。
正面と輪郭の比較
Normal VectorとView DirectionをどちらもWorldへ設定し、それぞれNormalizeしてDot Productへつなぎます。Saturateした結果をBase Colorへ表示します。正面を向く場所と輪郭近くで、値の大小を比べます。
観測される光に視線方向が必要な理由
前回扱ったランバート反射では、 法線とライト方向から明るさを求めました。
ですが現実の物体の光の反射は一律ではありません。
光の入射方向に対して、様々な方向に反射されます。
そして、物体の表面で反射した光は、カメラに届いて初めて観測されます。
つまり、質感表現では光源の方向だけでなく視線の方向も重要になります。
View Direction
View Direction は、表面からカメラへ向かう方向を表すベクトルです。
法線と視線方向が近いほど、面を正面から見ていることになります。
法線と視線方向が直角に近いほど、面を横から見ていることになります。
同じ面でも、カメラの位置や向きが変わると View Direction の値も変わります。
視線方向を使うと、反射や透明感のような観測角度に依存する質感を扱えます。
リムライトやフレネルのような、 輪郭側を強調する演出にも応用できます。
条件を変えた確認
法線と視線が同じ向き、直角のとき、正規化した内積はいくつですか。Cameraだけを動かして確認します。
予測と結果の照合
同じ向きは1、直角は0です。Cameraを動かすと、表面からCameraへ向かう方向が変わります。
Cameraを元へ戻します。次にこの値を反転して輪郭を明るくします。
チェックリスト
- 視線の向きと座標空間を説明できる。