はじめに
今回はPhong鏡面反射鏡面反射を作成していきます。
環境は Unity 2021.3.25f1です
Universal Render Pipeline を使用しています。
ノード作成
ノード全体図です
反射ベクトル作成部分です。
ライトの取得はCustomFunctionノードで作成しています
#ifdef SHADERGRAPH_PREVIEW Direction = half3(0.5, 0.5, 0); Color = 1; #else Light light = GetMainLight(); Direction = light.direction; Color = light.color; #endif
視線ベクトルと反射ベクトルの内積で鏡面反射を表現することができます。Powで鏡面反射を局所的にしています。
完成
Phong鏡面反射の参考にしたもの