はじめに
今回はBlender4.4でディスプレイスメントマップを使った凹凸を作る方法を紹介します。

結論だけ言うと “実用的な技術ではない” です。
面白いけど「処理負荷が高すぎる」+「急激な面の切り替えで不具合」が起こる。
この2点から実際には使い物にならないことが多いです。
使うとすれば、音楽系のMV映像で変わった表現使う時ぐらいかな…?
ディスプレイスメントマップとは何か
ディスプレメントマップはグレースケールの画像を使って「 “本当に” 形状に変形」させます。
面の形が実際に変わります。

↓こんな感じの操作になります。

これを行うには、細分化などで面の分割をすごく増やす必要があります。
なのでポリゴン数が増えて処理負荷がすごく上がります。

分割なしの形状ではディスプレメントマップは動作しません。
少ない頂点が少しだけ動く状態になります。

↓具体的には… これぐらい分割を増やす必要があります。

これで「面」は綺麗に出ますが…
急激な面の変化が起こる「辺」ではうまく動作しません。

なので基本的には「平面にしか使えない」技術になります。

「処理負荷が高すぎてストレス」が高い。
そして「辺」の表現がいまいち。
→ つまり実用性はあまりない表現になります。

唯一のメリットは「輪郭線」がちゃんと変わることです。
なのでイラストの背景向け…?
と思いましたが、凹凸があまりきれいじゃない…
そして重すぎる… 解散。
個人的には「ノーマル+視差マップ」の活用をおすすめします。
↓ディスプレメントマップに変わる凹凸表現の詳細はこちらで解説。

以上がディスプレイスメントマップ自体の解説です。
ディスプレイスメントマップを使う
使用をおすすめしませんが…
Blender4.4では下記の2通りの方法で作れます。
・モディファイアを使用(EEVEE可)
・シェーダーを使用(Cycles限定)
使うことはないと思いますが…
物好きな方向けに、この2つを解説します。
モディファイアを使う方法
Blenderを立ち上げ。
Shift+Aで適当な形状を作成。(立方体)

形状を選択したままモディファイアプロパティを選択。
「+モディファイアを追加」を実行。

変形 → 「ディスプレイス」を選択。

「テクスチャプロパティ」が増えたのを確認。(操作はしません)

ディスプレイスの中にある「+新規」を選択。

するとグレースケールの画像を入れるための “受け皿” が作られます。
これは「テクスチャ」ではなく「テクスチャという名の受け皿」です。

ambient CGなどから適当なテクスチャを用意。
ここでは「Rock028」をDLし.zipを展開。
ディスプレメントマップ用の画像を探します。

テクスチャプロパティを開きます。
画面上部の対象が「ディスプレイス」になってることを確認。
画像 → 設定 → 「開く」からテクスチャを入力。

テクスチャはファイルを辿って選択 → 「画像を開く」で行えます。

これで画像が読み込まれましたが… 何も起こりません。

これは凹凸を表現する用の「分割数が足りない」のが原因です。

なのでモディファイアプロパティから生成 → 「サブディビジョンサーフェース」を追加。

「細分化」モディファイアが作られるので、右上の8つの点を操作。
ディスプレイスの上に移動。


これで効果の処理順が変わります。
細分化の設定を「シンプル」に変更。
ビューポートのレベル数の値を上げますが… これは6が最大値です。

6より増やしたい場合は分割数を一度下げてから細分化を複製します。


細分化が最大値のまま複製すると分割が増えすぎてBlenderが落ちる可能性があります。
2つの細分化の値を「4」に設定。
これで4×2=8レベルの分割が行えます。

これでようやく面に変化が入りました。

↓このように、立方体に凹凸が付きます。

モディファイアで分割を増やしたので、表示上は頂点数が増えてませんが…
「細分化」を適用すると、黒い箱が出来上がるぐらい頂点数が増えてます。


重スギィ
PCがイクイクンアッー(Blender落ちる音)
ディスプレイスの「座標」を操作すると、凹凸の付き方が変わります。
試しにUVに設定。

↓UVだとこのような表現になります。

面の方向は正しくなりましたが…

急激な面の変化が起こる “辺” でエラーが起きるようになりました。

↓その結果がこの形です。

以上がモディファイアを使う方法です。
シェーダーを使う方法(Cycles限定)
Blenderのシェーダーからもディスプレイスを設定できます。
新規Blenderファイルを作り「シェーディング」を開きます。
Shift+Aキーで適当な形状を作成。

形状を選択したまま、マテリアルエディターの「+新規」を選択。

作られたマテリアルを確認。
マテリアル出力に「ディスプレメント」があります。
これはCyclesレンダーでのみ動作します。

レンダープロパティーを開きレンダーエンジンを「Cycles」に変更。

そして下図のようなシェーダーを組みます。
「ディスプレメント」はShift+Aキーで追加。
画像はエクスプローラーからノードの所にドラッグ&ドロップで追加。

Shift+Aの追加は「検索…」を使うと素早くディスプレメントを見つけれます。

↓やる気がある方は「テクスチャ座標」と「マッピング」まで組みます。(なくてもOK)

このシェーダーを作ると、バンプマップの挙動になります。
正常です。

ここからマテリアルプロパティ → 設定 → サーフェースを開きます。
そしてディスプレメントを「ディスプレメントのみ」に設定。

ちなみに、このディスプレメント設定がEEVEEで使えません。
なのでCyclesの技になります。

すると… 面が謎の崩れ方をします。

原因は分割数が少ないことです。

なので、細分化モディファイアを追加。
「ビューポートのレベル数」で分割数を上げればそれっぽい形になります。

面が切れたのは、辺に面張りしない処理が原因です。
この方法でも「辺の処理」で問題が起こります。

↓結局は辺の表示エラーから逃れられません。

なので使うとすれば… 「平面だけ」になると思います。
↓立方体から面を消すと良い感じに。


ただし、これをどこで使うかと言われれば謎。
以上がBlenderでディスプレメントマップを使って凹凸を作る方法です。
まとめ
今回はBlender4.4でディスプレイスメントマップで凹凸を作る方法を紹介しました。
・グレースケールの画像から形状に変形を加える処理
・動作には細分化などでポリゴン数をすごく増やす必要がある
・処理負荷が高く “辺”でエラーが起こるので実用性は無い
・Blenderでは「モディファイア」と「シェーダー」の2つで使える
・ただし実用性は無い
また、他にもBlenderについて解説してます。
ぜひ、こちらもご覧ください。
コメント