update.定義済値や定義の意味など、Unityでよしなにやってくれている部分などを含めて単純なDiffuseライティングをやるメモ。簡単なライティングをするコード例。ライティングの準備"LightMode"="ForwardBase"タグをつけるこれを付けないとライティングに関する情報が取得できません。_LightColor0を宣言uniform変数として、fixed4型の_LightColor0という変数を宣言します。ここに、ライトの色が渡されます。頂点シェーダは以下のようになっています。o;}wnormalの計算時、normalizeしてしまっていたので削除しました。normalizeするとうまく動きません。処理としては法線をワールド空間座標に変換したのちに、ライトの位置との内積を取っています。_WorldSpaceLightPos0はひとつ目のライトの位置です。これは自動的に宣言されているのでそのまま利用することが出来ます。ちなみにUnityでは、DirectionalLightも視覚的に位置が表示されますが、実際には回転が影響を与えます。法線の計算については、ワールド空間座標への変換を行っていますが、変換には若干の注意が必要です。そこは少しだけ楽をして、Unityから渡されるモデル行列の逆行列(_World2Object)を、ベクトルに対して逆から掛けてやることで結果的に逆転置行列を掛けたことにしています。色の計算あとは、ライトの色と法線とライト位置から求めた内積を掛けあわせて最終的な色を決定している、というわけです。ARのコンテンツ制作をしています。趣味でWebGL/WebXRもいじってます。http://edom18.hateblo.jp/FollowUnityゲーム開発者ギルド趣味・仕事問わずUnityでゲームを作っている開発者のみで構成されるオンラインコミュニティです。Unityでゲームを開発・運用するにあたって必要なあらゆる知見を共有することを目的とします。upLoginユーザーは見つかりませんでした。