【コラム】
形状が大胆に変わることがない、いうなればディテールの装飾にとどまる3Dモデル形状変形であれば、テッセレータを実装しないディスプレースメントマッピングの実現方法の方が向いている。
それが基本形状の3Dモデルの外皮にポリゴン柱(角柱)を立てて、そこに対して局所的にボリュームレンダリングを実行するやり方だ。
角柱を打ち立てるのは計算量の面でベジェ曲面を計算するよりは負荷が低い。しかし、実際にジオメトリレベルの凸を作るので立体的な凹凸の表現ができる。
この方法では、対象3Dモデルを構成しているポリゴン(三角形)のうち、ディスプレースメントマッピングを行う対象となるものに対し、ジオメトリシェーダ用いてそのポリゴンを底面とした角柱を打ち立てることから始める。
アプローチのイメージとしては、角柱で大ざっぱな凸を造りだし、そこからハイトマップを用いて、ピクセル単位の凹凸をボリュームレンダリングの彫刻刀で削りだしていくような感じを連想するといいだろう。
前述したように、打ち立てる角柱の底面は3Dモデル側のポリゴンになる。この底面から打ち立てる3辺は、このポリゴンの法線ベクトルの方向とする。こうすることで、隣接する3Dモデルのポリゴンから次々に角柱を打ち立てていったときにも隙間を空けずに済む。
この底面ポリゴンの法線ベクトル方向に伸ばした角柱を支える3辺の長さは、作り出す凸部分の最大の高さとする。
打ち立てた三角柱の側面は2つの三角形からなっているので、これを利用すればこの三角柱は3つの四面体に分割できる。
あとはこの3つの四面体に対して、各四面体の底面の深度値と、凹凸を記録したハイトマップから取り出した変位の高さ値とを比較して、視線が衝突しているか否かを判断しボリュームレンダリングを行っていく。このあたりの仕組みは本連載第17回「視差遮蔽マッピング」とほぼ同じだ。
|
視線を少しずつ伸ばしていき、その位置での四面体の底面の深度値とハイトマップの高さを比較して衝突しているかどうかを判定。衝突していればそこに対してピクセル陰影処理を行う。それ以外は視線をさらに少し伸ばして……以降この繰り返し。最後、3つ目の四面体を飛び出した時点で処理終了 |
この方法の場合、最初の方法と比べて頂点シェーダやジオメトリシェーダへの負荷が少ないが、その分ピクセルシェーダへの負荷が高くなる。
ディスプレースメントマッピングにて生成された凹凸のセルフシャドウ表現も、視差遮蔽マッピングのところで紹介したセルフシャドウ付き視差遮蔽マッピングの方法を応用すればできなくはないだろうが、負荷と難易度は高くなる。
(トライゼット西川善司)
CFD販売、30GBで実売9,000円からの高速SSD - リード150MB/ライト90MB
【レポート】AMDのGPGPU戦略は新章へ - ATI Streamの展望、DirectX Compute Shaderの衝撃
| レノボ・ジャパン、ウェブ広告モデルを一般公募 - 新生活キャンペーンの一環で [21:21 2/10] |
| 【レポート】スマートフォンを狙ったワンクリック詐欺やオンラインバンキングを狙うゼットボット - トレンドマイクロマンスリーレポート [20:43 2/10] |
| 【レポート】レノボ、大和研究所の開発陣らによる「ThinkPad X1 Hybrid」の技術解説 [20:41 2/10] |
| デル、「冬モデルファイナルセール」最終週 - 各種アップグレードが無料 [20:13 2/10] |
| Appleが3月初旬にスペシャルイベント開催の噂 - iPad 3の発表か [18:34 2/10] |
|
目的は一体!? 肥前夢街道に現るバッジ売りの少猫(佐賀県) [12:08 2/11] キャリア |
|
つらい花粉症は対策グッズで乗り切ろう! [12:07 2/11] キャリア |
|
【アジア発!Breaking News】マンションの排水口で銃の試し打ち。階下水漏れで、銃器所持の男らを逮捕。(台湾) [12:07 2/11] キャリア |
|
【エンタがビタミン♪】『逆転裁判』の斎藤工、“ラー油入り手作りチョコ”で女性不信に。 [12:07 2/11] キャリア |
|
本当にうまくいく!カップルの組み合わせは『幹タイプ×枝タイプ=一本の木』 [12:06 2/11] キャリア |