【ShaderLab】ディレクショナルライトの方向はどこを向いている?

UnityのShaderLabでライティングをしているとき、ライトの方向ベクトルってどっち向いてるんだろうと思って色として表示してみました。

まぁライティングの結果を見れば想像はできるのですが、もっと愚直に確かめないとしっくりこない子なのです。

half4 LightingSimpleLambert(SurfaceOutput s, half3 lightDir, half atten) {
      fixed4 c;
      c.rgb = lightDir; // ライトの方向をそのまま色として表示
      return c;
    }

f:id:kazumichi96:20210217042815p:plain f:id:kazumichi96:20210217042849p:plain f:id:kazumichi96:20210217042837p:plain

結果はご覧の通りで、シーン上で見えている向きとは逆向きのベクトルとして渡されてくる。

モデルの法線と内積をとる場合は、この方が都合がいいので 一般的にはこうなっている。

ShaderLabでもそうなっていましたという確認。