🐶

【Unity 初心者】絵を見てざっくり学べるUnity ~反射モデルって何?~

2022/05/07に公開

ポイント

・光の反射をざっくり計算できるようにする仮定だよ
・3Dで陰やハイライトなどを表現するのに必要な考え方だよ

簡単に説明すると

ものに光が当たった時の反射をざっくり計算できるようにする仮定だよ

例を交えて説明するよ

ここに球があるよ。

この球に陰をつける計算をするには、どうすればいいか考えてみよう。

まず、球の表面がツルツルだとハイライトで光が眩しく反射したりして、計算が難しくなりそうだよね。
簡単にするために、
球の表面ではどの部分でも同じようにざらざらしていて、同じような拡散反射が起こると仮定しよう。
この光の反射についての仮定のことを反射モデルの一つ、ランバート反射モデルと言うよ。

↓併せて読みたい↓
https://zenn.dev/hitsumasf/articles/a6bad4ad0ecfef

この時、光がたくさん当たる部分は、たくさん拡散反射が起こるね。

たくさん拡散反射が起こる部分ほど、反射した光がたくさん目に入るから、明るく見えるよ。

次に、この光の量をパソコンで計算できるように求めてみよう。
計算しやすいように表面の明るさを0~1の数字にしてみるよ。

この明るさを求めることができればパソコンで陰をつけることができるよ。

明るさを求めるために、表面の法線と光源の向き(表面からみた太陽の向き)を考えてみよう。
そうすると、法線と光源の向きが同じ向きになるほど明るくなることがわかるね。
※ただし、角度が90度以上開いた場合は、明るさ0になるよ。

↓併せて読みたい↓
https://zenn.dev/hitsumasf/articles/466623c53b4604

なので、法線と光源の向きの角度を計算すれば明るさを計算できそうだね。

パソコンに明るさの計算結果を教えて色を塗ってもらおう。

陰ができたね。

まとめ

反射モデルって何?と聞かれたら、ものの光の反射をざっくり計算できるようにしたものだと思っておこう。

Discussion