法線マップ

テクスチャマッピング系の技術をちょっと調べていました。まずは基本(?)のバンプマップを実装。

こんな感じ。法線マップを作るのが面倒だったので、テクスチャをそのまま使っています。しかし、なんというか怪しいですね。

実は昨日の日記を書いてから2時間の昼寝を除いてほぼずっと3Dをいじっていました。DirectXって、かなり豊富なメソッドが用意されてるんですね。どうやら、メッシュの最適化を行うメソッドもあるみたい。ちょちょっといじったらFPSが1.5倍くらい速くなりました。もうちょっとまじめに実装すればさらに良くなるかも。


で、今日作ったバンプマップはdot3 バンプマッピングというやつらしく、頂点に法線と接線(と従法線)の情報を埋め込まないといけません。これが、かなり面倒。
Mesh.ComputeTangentというメソッドを使うと生成できるのですが、その前に頂点の形式を変えないと。さらに、稜線情報を作るためにはUV情報が必要でない場合はそれを生成。しかもしかも、スキンメッシュでこのメソッドを実行するにはちょっと面倒だったり。
情報ができて、いざバンプマップと思ったのですが、なんかライティングが変なことに・・・ん〜ちょっと問題が多いですね。そのうち改良を。それよりも、法線マップの設定方法とかどういう設計にしようか悩んでいます。


次は、レンダリングからちょっとはなれて視錐台カリングやらの最適化処理を調べようかと思います。あ、そろそろ仕事しないと。