目次
概要
参考:
よくわからないノーマルマップ講座 概論編 #2 | Sandy Virtual City
Normal Map Technical Details | polycount
ベクトル空間形式
- タンジェント空間 (Tangent Space)
- オブジェクト空間 (Object Space)
- ワールド空間 (World Space)
- Blender オブジェクト空間 (Blender Object Space)
- Blender ワールド空間 (Blender World Space)
参考:
Normal Map Node | Blender Manual [Official]
Bake Normal space: Camera vs World vs Object vs Tangent – Blender Stack Exchange
スウィズル (Swizzle)
ソフトウェア | 赤 (R) | 緑 (G) | 青 (B) |
---|---|---|---|
Blender | +X | +Y | +Z |
Unity | +X | +Y | +Z |
Unreal Engine | +X | -Y または +Y | +Z |
参考:
OpenGL と DirectX – ノーマルマップ | 真面目な 3DCG Tips
ノーマルマップの種類/GL と DirectX でアップ方向が異なる注意点 | 人柱系 CG モデラーの Tips ブログ
Normal Map Technical Details | polycount
Programs Normal map OpenGL or DirectX | Marcel van Duijn
DirectX vs OpenGL Normal Map | TextureCan
DirectX vs. OpenGL normal maps – Blender Stack Exchange
ノーマルマップを作成する
高精細なノーマルマップをベイクするには次のような設定を用いる。
- 色空間は
Non-Color
を使用する。 - テクスチャ画像の大きさを用途に応じて十分に大きく取る。
- 「新規画像」 (New Image) を作成する際に
32ビット浮動小数点
(32-bit Float
) を有効にする。 - PNG 形式での保存時に「色深度」 (Color Depth) を
16
ビットカラーチャンネルを使用する。 - ハードエッジで綺麗な法線をベイクして使用するためには、UV マップの該当するエッジをシームとして設定する。
注意点
- テクスチャをベイクする際は、基本的にサンプル数
1
でレンダリングしてよい。 - 「ベベル」 (Bevel) ノードを使用する場合はサンプリング数をある程度上げる必要がある。
タンジェント空間
(Tangent Space
) ではカスタム法線をベイクできないので、カスタム法線をベイクする際はオブジェクト空間
(Object Space
) を使用する。
参考:
Blender/Unity を用いたノーマルマップの作成/適用手順 | XR-Hub
メッシュの差分からノーマルマップをベイクする手順 | XR-Hub
Bake Normal maps from meshes using Blender Render (Internal) | KatsBits TUTORIALS
5 Must Know Tips With Bump/Normal Maps | Creative Shrimp
Baking OBJECT Space Normals | polycount
How to create normal texture with node setup? – Blender Stack Exchange
Distorted normal map on smooth surface – Blender Stack Exchange
High to Low poly normal map appears to have seams all over and looks warped – Blender Stack Exchange
How to bake normals using modifiers only? – Blender Stack Exchange
Getting weird normal map where mesh is completely flat – Blender Stack Exchange
オブジェクト空間でベイクする (Object Space)
Object Space Normal Map Workflow in MODO … More or Less
参考:
Baking OBJECT Space Normals | polycount
ノーマルマップノード (Normal Map Node)
参考:
Normal Map | Blender Cycles memo
Normal Map Node | Blender Manual [Official]
Why does UV orientation affect tangent space normals? – Blender Stack Exchange
法線編集モディファイアー (Normal Edit Modifier)
参考:
法線編集モディファイアー – リアルな陰影からアニメっぽい陰影まで | ほろほろりドットコム
Normal Edit Modifier | Blender Manual [Official]
データ転送 (Data Transfer)
他のオブジェクトからカスタム法線の情報を転送するには、「データ転送」 (Data Transfer) モディファイアーを使用する。
参考:
Data Transfer Modifier | Blender Manual [Official]
ベント法線マップ (Bent Normal Map)
効果
- ライトビルドの後に発生するライト漏れを減少させる。
- ディフューズ間接ライティングを改善する。
応用
- リフレクションオクルージョン/スペキュラオクルージョン
参考:
Bent Normal Map の効果とその作り方 | 3DCG school
ベント法線マップ | Unreal Engine ドキュメント [公式]
Real-Time Ambient Occlusion | Ian Purvis and Luke Tokheim
How do I bake a Bent Normal Map in Blender – Blender Stack Exchange
How to bake a Bent Map (Object Space Normal) correctly with Cycles? – Blender Stack Exchange
Is Object Space Normals the same as Bent Normals – Blender Stack Exchange
UV マップのシームで境界が目立つ
参考:
Seams on normal map – Blender Stack Exchange
Ambient Occlusion Direction
コード: