Parallax mapping (also called offset mapping or virtual displacement mapping) is an enhancement of the bump mapping or normal mapping techniques applied to textures in 3D rendering applications such as video games. To the end user, this means that textures such as stone walls will have more apparent depth and thus greater realism with less of an influence on the performance of the simulation. Parallax mapping was introduced by Tomomichi Kaneko et al., in 2001.
Parallax mapping is implemented by displacing the texture coordinates at a point on the rendered polygon by a function of the view angle in tangent space (the angle relative to the surface normal) and the value of the height map at that point. At steeper view-angles, the texture coordinates are displaced more, giving the illusion of depth due to parallax effects as the view changes.
Parallax mapping described by Kaneko is a single step process that does not account for occlusion. Subsequent enhancements have been made to the algorithm incorporating iterative approaches to allow for occlusion and accurate silhouette rendering.
Steep parallax mapping
Steep parallax mapping is one name for the class of algorithms that trace rays against heightfields. The idea is to walk along a ray that has entered the heightfield's volume, finding the intersection point of the ray with the heightfield. This closest intersection is what part of the heightfield is truly visible. Relief mapping and parallax occlusion mapping are other common names for these techniques.
Interval mapping improves on the usual binary search done in relief mapping by creating a line between known inside and outside points and choosing the next sample point by intersecting this line with a ray, rather than using the midpoint as in a traditional binary search.
- Kaneko, T., et al., 2001. Detailed Shape Representation with Parallax Mapping. In Proceedings of ICAT 2001, pp. 205-208.
- Tatarchuk, N., 2005. Practical Dynamic Parallax Occlusion Mapping Siggraph presentations
- 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[dead link]
- Parallax Occlusion Mapping in GLSL on sunandblackcat.com
- Parallax Mapping with Offset Limiting[dead link]
- Steep Parallax Mapping