Topics

【Unity徒然8回目】ShaderGraphでLightを取得

  • このエントリーをはてなブックマークに追加

ShaderGraphではDirectional Light取得できないので自前で用意する必要がある

使うノードはCustom Function
これを使うと自分で作ったシェーダーファイルを適応させたり、ノード上でコードを書くことができるようになる

今回は軽いのでノード上で書いてみる

設定はこんな感じ
コードは下に記載

ifdef SHADERGRAPH_PREVIEW

Direction = half3(0.5, 0.5, 0);
Color = 1;

else

Light light = GetMainLight();
Direction = light.direction;
Color = light.color;

endif

#ifdefで区切ってるのはpreview上だとLightがないので確認ができなくなるので仮数値を設定
GetMainLightでライト取得できる

ただ、これだとLightは1つだけしか取れてないし、毎ノードこれを設定する必要があるので拡張性も低い
SubGraph化やらしないといけないけど、そこらへんのネタは次の機会で

関連記事