シェーダー:ボロノイによるラメのしくみ

なぜノーマルマップにボロノイテクスチャを適用するとラメになるのかについて書く。

知っている人にとってはなぜもなにもない話だが、私はわかっていなかったので記事にした次第である。

 

まずノーマルマップのとおりいっぺんの説明は「ノーマルマップは凹凸をテクスチャによって再現する技術である。リソースの大幅な削減ができる優れた技術なのである😤」のようなものだと思う。私はそれ聞いて「そうなのかー」とだけ思っていた。実際にどうやっているかまでは知らなかった。

 

実際にやっていることは単純でその頂点の法線をノーマルマップテクスチャによって指定しているだけである。法線の指定の仕方はx, y, zの3次元のパラメータ(取りうる値:-1.0~1.0)を定義する。それぞれ赤、緑、青の色情報と対応しており、これを画像情報として記録したのがノーマルマップテクスチャである。

 

モデルの凹凸の光の反射の仕方をこのノーマルマップテクスチャで模してやると、実際は平面でも凹凸があるように見える。またボロノイテクスチャをノーマルマップとして適用すると、それぞれの断片がアトランダムの方向に向いているようにでき、これが実際のラメ入りのバルクと光の反射の仕方が同じになる。そのためこれでラメが再現できるのである。