マイクロソフトが実装したユニークなジオメトリシェーダを活用したディスプレイスメントマッピングを紹介しました。
ディスプレイスメントマッピングというと3Dモデルのポリゴンをハイトマップに従って分割する…というのが直接的な実装形態ですが、もともとジオメトリシェーダはテッセレーションのために設計されたものではないので、これをやらせるには大部重荷なんですね
西川善司の3Dグラフィックス・マニアックス第40回
ジオメトリシェーダ(11)~ジオメトリシェーダを活用した新表現(7)
http://journal.mycom.co.jp/column/graphics/040/index.html
そこでマイクロソフトは、「
微細凹凸を付加するだけのディスプレイスメントマッピング」に特化した上で、ジオメトリシェーダにそれほど負荷をかけないユニークな実装をDirectX SDKで発表しました。
それが、上図にも示したような、凹凸を付加するポリゴン面から三角柱を打ち立てて、この中に視差遮蔽マッピングというか、ボリュームレンダリング的なレンダリングを行うというアイディアです。
視差遮蔽マッピングは基本的にポリゴン面から彫り込む技法ですから、適用したポリゴン面から突き出たような凹凸の表現は不得意なのですが、この方法はいわは凹凸彫り込む基準面を持ち上げるのでその弱点が解消されます。
言い方を変えれば、
彫り込む視差遮蔽マッピングではなく、盛る視差遮蔽マッピングと言うイメージでしょうか。
この方法は、ジオメトリシェーダの負荷は大部軽いですが、逆にピクセルシェーダの負荷は高くなります。また、この方法で付加した凹凸の影生成はなかなか難しそうです
.
この方法によるディスプレイスメントマッピングを適用したショット。背びれとトゲがこの方法によるもの
オフにしたところ
Comments