2024年5月26日日曜日

技術メモ Blenderにおける複数マテリアル(テクスチャ画像)のベイクによる統合

 Technical note: Integrating multiple materials (texture images) in Blender by baking


In Blender, if multiple materials (texture images) are attached to an object, I confirmed how to integrate them by baking. Having one material (texture image) makes it easier to overlay with another texture image, which is convenient.


Blenderで、オブジェクトに複数マテリアル(テクスチャ画像)が貼り付いている場合、それをベイクで統合する方法を確認しました。マテリアル(テクスチャ画像)が1つになると、別のテクスチャ画像とのオーバーレイ操作などがしやすくなり、便利です。

1 1つのオブジェクトに複数マテリアル(テクスチャ画像)が貼り付いている例

米軍空中写真7枚を3DF Zephyr Liteに投入してできた3DモデルをWabefront(.obj)ファイルで書き出すとテクスチャ画像が3枚付いてきました。


米軍空中写真3Dモデル(Wabefront(.obj)ファイル)のファイル構成

3DF Zephyr Liteで周回撮影写真から3Dモデルを作成する場合、Wabefront(.obj)ファイルに書き出すと、5回に1回くらいの割合でテクスチャ画像が複数枚になります。

このWabefront(.obj)ファイルをBlenderに読み込むとマテリアル(テクスチャ画像)が3スロット貼り付きます。


Blenderでマテリアル(テクスチャ画像)が3スロット貼り付いている様子

このマテリアル3スロットを1スロットに統合する手順を以下メモします。

2 新たなUVマップの作成とUV展開

プロパティ→データ→UVマップに移動して新しいUVマップを作成します。


新しいUVマップを作成した様子

新しいUVマップが選択されている状態を確認した上で、編集モード→オブジェクト全選択→UV→展開します。

3 新しいマテリアルの追加と画像テクスチャの追加

新しいマテリアルを追加して、シェーダーエディターで画像テクスチャノードを追加します。画像テクスチャノードの画像名をクリックして画像ファイルを生成します。


追加した新マテリアルに画像テクスチャノード(画像ファイル生成済)を配置した様子(シェーダーエディター画面)

画像テクスチャノードはプリンシプルBSDFとリンクしません。

4 既存マテリアルに画像テクスチャノードの配置

新しいマテリアルに追加した画像テクスチャノード(画像ファイル生成済)をコピーして、あるいは画像テクスチャ-マッピング-テクスチャ座標の3つコピーして、既存マテリアル全てにそれぞれ貼り付けます。(シェーダーエディター画面で操作する。)

5 ベイク

新しいマテリアルのシェーダーエディター画面に戻り、画像テクスチャノード(画像ファイル生成済)が選択されていることを確認してベイクします。

ベイクはプロパティー→レンダー→レンダーエンジン(CYCLES)→ベイクに移動して、ベイクタイプをディフューズに、影響寄与で直接照明と間接照明のチェックを外します。余白のサイズを小さくします(自分は1px)。ベイクボタンを押して、ベイクします。

6 ベイク画像の保存

UV Editing画面でベイク画像を保存します。

7 ベイク画像のリンクと既存マテリアルの削除

新しいマテリアルのシェーダーエディター画面で画像テクスチャノード(画像ファイル=ベイク画像)をプリンシプルBSDFとリンクします。既存マテリアル全てを削除します。この時3Dビューポートのモデルはテクスチャ画像が乱れています。


テクスチャ画像が乱れた3Dモデル

8 UVマップを新しいマップに変更して可視化する

UVマップを新しいマップに変更して可視化(カメラマークチェック)すると、3Dビューポートでベイク画像がテクスチャ画像となっていることが確認できます。


UVマップ変更の様子

3つのマテリアル(画像テクスチャ)を1つのマテリアル(画像テクスチャ)に統合できました。

9 メモ

2~3のマテリアル統合方法はテクスチャ画像のないもの(ディフューズ色のマテリアルのみ複数あるもの)でも確認できました。

10 若干の疑問

web検索で見かけるページで説明されている複数マテリアルの統合手順は、自分が見たページは全て次の点がこの記事説明と違います。

私が見かけたwebページで説明されているベイク方法

「既存マテリアル毎にベイクを繰り返し、ベイク画像を順次オバーレイ加刷して完成させる。」

このような煩雑な方法を取らなくても、今回、ベイクは1回の操作でできました。

恐らく最近のバージョンアップでBlenderのベイク機能が向上し、そのベイク機能向上の説明がweb情報としては時間的に間に合っていないのだと考えます。

11 複数マテリアル(テクスチャ画像)統合の価値

自分にとっての複数マテリアル(テクスチャ画像)統合の価値は次の2点です。

1 マテリアルのミックス調整が容易になる。

複数に分割されたマテリアルが無くなることで、他のマテリアルやテクスチャ画像とノードを通じてミックス調整することが格段に容易になります。

2 人が理解できるテクスチャ画像の取得

フォトグラメトリソフトで作成した3Dモデルのテクスチャ画像は一般に人が理解できない(機械だけが理解できる)まだら模様等の複雑な画像となっています。

3DF Zephyr Liteのフォトグラメトリ機能で3Dモデルを作成した場合、3DF Zephyr Lite→Wabefront(.obj)ファイル書き出し→BlenderでUV展開→Wabefront(.obj)書き出し→3DF Zephyr Lite読み込み(UVマップ付メッシュを入力)→Wabefront(.obj)書き出しというプロセスを通じて、Photoshop等で編集できる(人が見て理解できる)テクスチャ画像を得ることができます。

このプロセスはテクスチャ画像が複数枚ある場合は機能しませんが、上記方法を導入すれば、テクスチャ画像を1枚にまとめることができ、人が見て理解できるテクスチャ画像を取得できます。


0 件のコメント:

コメントを投稿