見出し画像

NormalMapのBチャンネルを使った擬似機なエッジ検出

マテリアルのTipsです。
モデルの角ばったところは、塗装が剥げるなどの変化が起きやすいため、質感表現に利用できます。
通常であれば角ばったところはCurvertureをベイクしてマテリアルに使用することで使えるのですが、非常に精度の低い疑似的な方法ですが、NormalMapからCurvertureっぽい画像を作ることができます。

NormalMapのBチャンネルを加工することで角張った部分を検出できる
UE4マネキンに使ってみた例

NormalMapのRGB画像はそれぞれ、接線空間でのTanget、Binormal、Normalを表します。
このベクトルは正規化されているため、Tangentなどが大きくなると相対的にNormalの値は小さくなります。言い換えるならば、法線に影響を加えられた場所は相対的にBの値が小さくなります。
ハイポリモデルからの転写を行った場合は、一般的にエッジが立っているところほど法線に影響を加えられているので、NormalMapのBチャンネルを加工することで角張った部分を検出できるのです。

拙著「UnrealEngine4マテリアルレシピ」より抜粋

非常に擬似的な精度の低い方法ですが、Curvertureの画像を増やすことなくエッジっぽい場所をだすことができるので、輪郭線描画などに使ってみると面白いかもしれません。


この記事が気に入ったらサポートをしてみませんか?