何もわからないがShaderを学ぶ!第2回

メッシュってどんなデータをどんな形式で持ってるの?

メッシュは、すべての頂点(x,y,z)が格納された1つと、そのインデックス3つと対応した整数により表現された三角形により構成されている。また、複数の三角形はさらに一つの整数の配列に集められる。(なので三角形を表現する配列は一次元)
また、各頂点インデックスに対応した法線(ノーマル)(x,y,z)の情報を持つ配列がある。そして、頂点がテクスチャのどこに位置するか、比率で表した二次元座標データであるUV配列(u,v)も、各頂点インデックスに対応して存在する。比率なので、UVの下限値は0, 上限は1である。

光の当たり方はどうやって計算してる?

  • そもそも光の計算とは何
    →見る人に届く、面から反射する光の量と色を求めること

  • 光の計算に関わっている要素は?

    • 面の法線(ノーマル)

    • 面と観測者(ビュアー)の位置関係(特に角度)

    • 面と光源の位置関係(特に角度)

Lambert反射

どんなモデル
→表面の明るさと光源に対する向きとの関係を定義した照明モデル
→つまり法線と、面と光源の位置関係(角度)しか考えないシンプルなモデル
どうやって計算するの?
→光源と法線の角度が小さい場合、大きな反射光量があると計算する。
→大きい場合、小さく計算する。
→90度を超えた場合は光が反射しないと計算する。

当然、観測者の位置は考慮されていないため、カメラを動かしても光の見え方は変わらない


参考文献
[1]メッシュの構造,https://docs.unity3d.com/ja/2019.4/Manual/AnatomyofaMesh.html

この記事が気に入ったらサポートをしてみませんか?