視差マッピング
視差マッピング(しさマッピング、英: parallax mapping)は、3次元コンピュータグラフィックスにおけるテクスチャマッピングの技法の1つである。凹凸を持たないテクスチャに高さ情報を組み合わせることで運動視差を再現し、オブジェクト表面の凹凸のよりリアルな表現を可能にする。金子智道らによって2001年に発表された。[1][2]
概要
編集人間は運動視差(英: motion parallax)から遠近感を感じる。すなわち視点が動いた際に速く動くものを「近く」、遅く動くものを「遠く」感じる性質がある(例: 新幹線の車窓から見える「速く近い」防護柵と「遅く遠い」富士山)。逆に運動視差の程度が同じもの同士は同じ距離を感じる。
凹凸ある物体表面をテクスチャへ投射しそれを平面ポリゴンへマッピングした場合、大きく2つの問題が発生する。そのうちの1つが運動視差の欠落による立体感の喪失である[3]。本来の物体では凸部が視点に近く凹部が遠いため、視野を動かした際に凸部の方が速く動きそれが遠近感を生んでいる。しかしテクスチャマッピングにおいて凹凸は均されているため、視野を動かしても凸部と凹部が等速で動き遠近感が消失してしまう。また輪郭へ反映されるべき凹凸も均されているために、視点によるシルエットの変化も得られない[4]。
視差マッピングでは高さ情報を利用した視差の近似をおこない、上記の問題点を解消・緩和している。マッピングの際、ポリゴン描画時に各点に対応付けられるテクスチャ座標を、視点からその点への視線ベクトルと法線ベクトルがなす角度、およびハイトマップ(高低マップ)の値に応じてずらす。視線が法線ベクトルに直交する方向に変化するに従ってテクスチャ座標のずれを大きくすることにより立体感を錯覚させる。
立体感を得る他のテクスチャマッピング手法には、陰を利用したバンプマッピングや法線マッピングが存在する。運動視差を利用する視差マッピングはこれらの手法と組み合わせることができ、陰と視差が両方とも再現されたよりリアリティの高いマッピングが可能になる。1人称視点かつ常に両眼視差・運動視差が発生するバーチャル・リアリティでは視差マッピングあるいはその発展方法を利用することが強く推奨されている[5]。
視差遮蔽マッピング
編集視差マッピングの計算では繰り返し演算を必要としないという利点があるものの、テクスチャ座標の変化は近似的であり、視線の遮蔽(英: occlusion)にも対応していない。そこで、視差マッピングの拡張として、繰り返し演算を含むアプローチではあるが、視線の遮蔽への対応やテクスチャ座標の変更を歪みなく実現する手法である視差遮蔽マッピングが2004年に考案され、2005年のSIGGRAPHで発表された[6]。
視差遮蔽マッピングはかなり負荷が高いが、2000年代後半以降の主なゲームエンジンでは採用されている。これより高度なテクスチャマッピングの技法と言うとディスプレイスメントマッピングとなるが、さらに負荷が跳ね上がり、ゲーム用途では非現実的である。そのため、2009年発表のDirectX 11世代ではテッセレーションとディスプレイスメントマッピングを組み合わせて使う方法が採用された。このテッセレーションとディスプレイスメントマッピングが2013年発売のPlayStation 4・Xbox One世代で採用されている最新の手法である。
関連項目
編集脚注・出典
編集- ^ Kaneko, T., et al., 2001. Detailed Shape Representation with Parallax Mapping. In Proceedings of ICAT 2001, pp. 205-208.
- ^ In this paper we present Parallax Mapping... Kaneko, T., et al., (2001)
- ^ First, texture mapping lacks the capability to represent a motion parallax effect Kaneko, T., et al., (2001)
- ^ So you cannot represent view-dependent unevenness or change of silhouettes. Kaneko, T., et al., (2001)
- ^ Use parallax mapping instead of normal mapping. Oculus - developers
- ^ Tatarchuk, N., 2005. Siggraph presentation
外部リンク
編集- Comparison from the Irrlicht Engine: With Parallax mapping vs. Without Parallax mapping
- Parallax mapping implementation in DirectX, forum topic
- Parallax Mapped Bullet Holes - Details the algorithm used for F.E.A.R. style bullet holes.
- Interval Mapping
- Parallax Mapping with Offset Limiting
- Steep Parallax Mapping