頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


Blenderで作成した法線マップをiOSで使う

Blenderで3Dモデルを作成してobjファイル出力してiOSアプリのOpenGL ESなりMetalなりで使用する、って流れからするとやっぱり法線マップもBlenderで作成したいと思うよね。調べてみると

Blenderチュートリアルまとめ | blenderでノーマルマップの作成(bake)
↑このページが参考になった。


ただ、ちょっと面倒なのが法線マップをシェーダで使う時にオブジェクト(というか面)の法線以外に接線と従法線なるものが必要になるとか。
Blenderのobjファイル出力だとそういうのはサポートされてないみたい。

GLSLでバンプマッピング
↑原理的にはこんな感じなので接線と従法線を自分で計算してみた。
このサイトに書いてるように接線(tangent)がテクスチャのuv座標のu軸方向と一致させる必要があるらしい。
法線はわかってるので計算した接線との外積から従法線はOK。

How To Export Blender Models to OpenGL ES: Part 1/3 - Ray Wenderlich
↑そもそもobjファイルからiOSで使うファイルへ変換してるわけでそのコードを接線と従法線も出力するように修正。




↑うん、膨らませたとこは膨らんでるし、凹ませたところは凹んでるわ。

MetalでのシェーダとかはAPPLEのサンプル MetalShaderShowcase を参考にしてる。


↑テクスチャ画像を追加して materialDiffuseColor に割り当てて色を付けてみた。テクスチャ画像と法線マップの二つをシェーダに送ればいいのね。


Blenderのスカルプトモードでハイポリを作成するのがまだ慣れてなかったりするけど、とりあえずできるのは確認できたかな。ただ法線マッピングで膨らんでるように見せるのはやりすぎるとなんか不自然に見えるかも?凹ます方がいいのかな。

※Blenderは2.74

<< お手頃ワイヤレスヘッドセットQY7を買ってみた  TopPage  ポケモンカードゲームのカードを自作 >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/969-eed0b3bd




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad