[blender2.8]ノーマルマップを使ってテクスチャ表現

[blender2.8]ノーマルマップを使ってテクスチャ表現

blenderのノーマルマップを使ってテクスチャ表現をやってみました。
実現は一応できましたが理解は全くできてない感じです。

今回はノーマルマップの設定方法を備忘録的に書いていきます。

本記事でのblender対応バージョンは2.82.7です。

ノーマルマップとは

ノーマルマップはモデル表面に凹凸、傷、溝といった細かい表現を行う際に用いられる特殊なテクスチャの一種です。

このテクスチャを用いると、実際のジオメトリは平面であっても、ノーマルマップに保存されている法線情報をもとに、実際に凹凸が存在するような光の受け方をします。

引用)Blender・Unityを用いたノーマルマップ(法線マップ)の作成、適用手順

  • ノーマルマップはモデル表面への光の当たり方(明暗)マッピング情報を保持しているテクスチャ
  • モデル自体は変更なし

こんな感じでしょうか。

設定方法

基本的に上記の参考リンクに沿って対応していく内容になります。

なので平面メッシュに設定しく方法を記載していきます。
使用するテクスチャはこちらのフリー素材を使用しました。

テクスチャを設定するオブジェクトを用意

[オブジェクトモード]
追加→メッシュ→平面 で平面メッシュを追加

[編集モード]
オブジェクトを全選択→細分化
└ノーマルマップは指定された面(頂点?)から見た目上の凹凸を生成してる?

UVマップの設定

UVマップ自体がよく分かってない感。。。
オブジェクトのどこに何を適用させるかの情報がUVマップっぽいけど。。。UVマップも要勉強

UV Editingビュー切り替え

[編集モード]
U→リセット

[編集モード]
全選択(A)→U→展開

モディファイアー追加

サブディビジョンサーフェス→ディスプレイスの順番で指定していきます。
※順番の違いで結果が異なるため

サブディビジョンサーフェス追加

[編集モード]
プロパティパネル→モディファイアープロパティ→モディファイアーを追加→サブディビジョンサーフェス

[編集モード]
サブディビジョンサーフェスの設定変更

  • カトマルクラーク→シンプル(カトマルクラークってなんじゃらほい)
  • 細分化
    • ビューポート 1→6(v2.7のビュー項目?細分化するレベルの指定、増やすとメッシュ分割が多くなる)

ディスプレイス追加

[編集モード]
プロパティパネル→モディファイアープロパティ→モディファイアーを追加→ディスプレイス

[編集モード]
ディスプレイスの設定変更

  • テクスチャ→新規
  • テクスチャ画像
    • ローカル→UV
      • UVマップ ・→UVMap

※ディスプレイスはデフォルトで編集モードでのモディファイアー非表示なので注意

テクスチャ設定

[オブジェクトモード]
プロパティパネル→テクスチャプロパティ

  • 画像
    • 設定→開く→(適用したいテクスチャ画像を指定)
    • コントラスト:指定した値の高低で凹凸の高低を表すっぽい

凹凸への着色設定

Shadingビュー切り替え

[オブジェクトモード]
新規(マテリアル追加)

[オブジェクトモード]
追加→テクスチャ→画像テクスチャ

[オブジェクトモード]

  • 画像テクスチャノード→開く→(テクスチャ設定で指定したファイル)
  • 画像テクスチャノードカラーとプリンシプルBSDFカラー結合

以上

その他

メッシュの細分化

「テクスチャを設定するオブジェクトを用意する」でメッシュの細分化をしたが、

  • 細分化数が多いほど精度が上がる
  • 見た目上の表示レスポンスも遅くなる

細分化もほどほどにした方がよさそうです。