視差マッピング
一応、ムービークラス担当の僕ですが、ゲームのリアルタイム表現について前々から気になっていた、視差マッピングとかパララックスマッピングとか言うものにトライしてみました。日本語で色々調べていてもなかなかいいサンプルが無かったのですが、英語で調べると結構あっさり見つかりましたので、そこにあったシェーダーを使ってみました。
ソースはここ
http://forums.cgsociety.org/showthread.php?t=244102
ここのファイルを落とせば、視差マッピングの威力が見られますよ。

そしてためしに作ってみたのがこれ
c0142508_15203174.gif動画がちょっと荒いですが、メカっぽいディティールがちゃんと立体的に見えるかと思います。
そしてこれのすごいところは、じつはこれが1枚の四角ポリゴンに、視差マッピングという方法で表現されているというところです。しかもmaxのピューポート上で見れてます。
スクリーンショットはこんな感じc0142508_15103152.jpg


これを作るためにはやはり一度、このメカっぽいディティールをモデリングしなければいけません。そのためにざくっと作ってみたモデルがこれです↓
c0142508_15292146.jpg


この上のハイポリモデルをテクスチャーレンダリングという方法でレンダリングします。
この時レンダリングする要素は、ノーマルマップ(法線マップ)とハイトマップ(モデルの高さ情報)です。
今回使ったこのサンプルのシェーダー(HLSLglobalIllumAttenOffset.fx)には、.ddsという拡張子の画像ファイルが使われてました。この中にノーマルとハイトの情報がRGBとアルファのチャンネルに分かれて格納されてます。すごいですねー
そのサンプルを元に作った画像がこれ↓
c0142508_15342078.jpg
↑この一枚の緑とオレンジの絵のイメージに上の立体の情報が入ってるのです。

最後にアンビエントオクリュージョンも書き出してディフューズに貼ってあります。
c0142508_15375590.jpg
テクスチャーとシェーダーの力で、たった1枚のポリゴンがこんなふうに表現できちゃうのってすごいですね。
今更ながら視差マッピングに挑戦してみましたが、この技術はすでに普通にゲームに搭載されています。皆さんもぜひ挑戦してみてくださいな。

< イワノ >
[PR]
by tridentcg | 2010-11-25 15:42 | iwano
<< Photo Sketch ゲームプロジェクトプレゼン >>



トライデントコンピュータ専門学校・CG系講師のつぶやき
by tridentcg
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31