夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

Unityで使えるNormalMap(BumpMap)を作成する。

本日の記事はUnityでのプチテクニック枠です。

 以前『法線マップを扱うShaderを書く』という勉強をしました。

redhologerbera.hatenablog.com

 ここでNormalMap(BumpMap)というものを扱えるようにして3Dオブジェクトのメッシュ自体はそのままにデコボコ感を再現しました。

 今回ここで扱ったNormalMapのテクスチャを作成します。

〇NormalMapとは?

   追加のポリゴンを作成することなく細部の見た目を再現する表現のとことでメッシュの法線ベクトルのx、y、zに対応したRGB画像のことです。

 法線ベクトルとは、ある面に対して垂直なベクトルを指します。 

 ここで面とはUnityで扱う多くの3Dモデルの場合メッシュに当たるので、メッシュごとのそれぞれに対しての垂直なベクトルとなります。

 NormalMapはUnityでマテリアルからテクスチャを与えることで再現されます。

 f:id:Holomoto-Sumire:20200424092409p:plain

 ノーマルマップは上の画像のように青いテクスチャになります。

 これは前述のとおりRGBがそれぞれx,y,zの法線ベクトルに対応しているためです。

 ・赤成分R(0~255)の値は法線ベクトルx

 ・緑成分G(0~255)の値は法線ベクトルy

 ・青成分B(0~255)の値は法線ベクトルz

 に対応しています。

 今回NormalMapのテクスチャを作成するツールとしてブラウザ上で作成する方法を見ていきます。

〇ブラウザ上でNormalMapTextureを作成する

 今回は『NormalMapOnline』を使います。

cpetry.github.io

 このサイトは元の画像をアップロードすることで、ブラウザ上でNormalMapを作成します。

 f:id:Holomoto-Sumire:20200424093047j:plain

 NormalMapOnlineは非常にシンプルな作りになっています。

 左側の画像が元データ、真ん中が作成されるNormalMap、右がそれを実際に3Dオブジェクトに使用したらどのように見えるかを示します。

 f:id:Holomoto-Sumire:20200424093411j:plain

●NormalMapOnlineを使っていく

  まずNormalMapを作成したい画像を左側の元画像としてアップロードします。

  左側の元画像をクリックするとフォルダが開くので、作成したい元画像を選択します。

 f:id:Holomoto-Sumire:20200424093742j:plain

 アップロードがされると同時にNormalMapと3Dオブジェクトでの見た目が表示されます。

 f:id:Holomoto-Sumire:20200424093929j:plain

 上部の[strength]を調整することでデコボコ感の強さを変えることができます。

 f:id:Holomoto-Sumire:20200424095434j:plain

 [Bulr/Shape]はNormalMapのデコボコ感にぼかしをかけることができます。

 f:id:Holomoto-Sumire:20200424095558j:plain

 編集が完了したら[Download]を選択することで作成したNormalMapの画像をダウンロードすることができます。    これをUnityへImportしてマテリアルの_NormalMapに設定することでデコボコ感を再現できます。