Craneです。
Unity HDRPを使って遊んでいます。
HDRPの標準シェーダである、Litシェーダを使ってフォトグラメトリソフトで作ったモデルをそれっぽくしてみました。
影とか、色々と変ですが・・・質感はなかなかです。
周辺のレースドールは皆、Unlitシェーダなので、比べると違いが明らかですね。
RealityCaptureでモデル作成
ここについては以前の記事を参照・・・
→ これでメッシュのobjと、メインのテクスチャ、ノーマルマップが得られます
モデルはこんな感じです。頂点数は25000くらいです。減らす気力が・・・
Unityへ一旦、インポートしたのが上のスクリーンショットです。
シェーダは、以下のSTYLYさんのサイトに記載されていたUnlitで影を落とせるやつを使わせていただきました(感謝)。
Photogrammetoryで使えるUnlitだけど影を落とすシェーダー | STYLY
影のライティングがおかしいですね・・・
HDRPなのできれいに見えます。このままでも十分きれいですが、シェーダをLitにして、もう少し質感をそれっぽくしてみたいと思います。
Materialize(フリーソフト)でMetallic、Smoothness、Ambient Occulusionを作成
Unity HDRPでは主としてLitシェーダを使います。物体の質感を表現するためにMaskmapというテクスチャを使うのですが、このMaskmapが面倒で、最初は理解するのに時間がかかりました。
以下、公式サイトからの引用ですが、Metallic、アンビエントオクルージョン(AO)、Detail Map Mask、Smoothnessの4つ、これらは濃淡の情報しか持たないため、RGBAのそれぞれのチャネルに割り当てて合成したテクスチャを作りそれをMaskmapとする、ということのようです。
以下、引用
「HDRP においては、Mask Map は以下の組み合わせから成ります。
R(赤)チャンネル ― Metallic(0 ~ 1 の範囲)
G(緑)チャンネル ― アンビエントオクルージョン
B(青)チャンネル ― Detail Map Mask
アルファチャンネル ― スムースネス」 ここまで
ということで、まず、Metallic(映り込みの強さ)、Smoothness(滑らかさ。roughnessの逆)、Ambient Occulusion(遮蔽)
それぞれをベーステクスチャから作成します。ソフトはMaterializeを使いました。
Bounding Box Software – Materialize
Materializeの使い方は以下の方の記事などを参考にさせていただきました(感謝)。
パラメータの設定は、深く勉強していないので適当です・・・
テクスチャ作成ツール: Materialize – テクスチャ編集ツール (fc2.com)
Metallic、Smoothness、Ambient OcculusionからMaskmapを作成
GIMPというフリーソフトを使いました。
こちらのサイトを参考にさせていただきました。感謝。
【Unity】GIMP2でマスクマップを簡単に作る – Unityの使い方|初心者からわかりやすく (ame-name.com)
これが、出来たマスクマップです。
UnityでLitシェーダを設定→ライティングで調整
こんな感じに設定してみました。BaseMapも、Materializeで濃淡を抜いた画像をDiffuseとして作成してそれを割り当てています。
Normal Mapの値は、1にしたら凹凸が激しくなって変になったため小さくしました。
ちなみに私、素人で、あまり詳細理解していませんので悪しからず・・・
Coat Maskの数字をいじると光沢が付くようです。
その後、ライティングを駆使して見た目を整えました。
上から照らしただけでは暗くなったため、正面からのスポットライトを追加するなどしています。
それっぽくはなりましたが、時間がかかる・・・
やはり影が変ですね・・・
今回は以上です。