Hardware Displacement Mapping

Ever since the G200 it seems as if Matrox always has one feature that is very compelling and has a lot of promise that is supported by their hardware yet by the time developers have caught on to the technology the time for the card has been long gone. Everyone will remember that one screenshot of the water in Expendable that put Environmental Mapped Bump Mapping (EMBM) and the Matrox G400 on everyone's radar. The truly neat technology of the Parhelia-512 is what Matrox calls Hardware Displacement Mapping (HDM).


A detailed terrain is made using more polygons.

The goal behind HDM is to generate more realistic 3D environments and characters by using more geometry (more vertices) but doing so in the most simple/compact manner possible. Let's say you were trying to provide a detailed 3D map of the surface of Mars; in order to make the map more detailed and more realistic, you'd simply increase the polygon count of the scene to help model every little detail of the surface of the planet. Now if you're just staring at this scene then you can dramatically increase the polygon count without worrying too much but if this environment were a level in Unreal Tournament 2003 then you'd run into a serious performance issue if you cranked up the number of polygons too high.

HDM tackles the first problem when attempting to generate more detailed 3D environment and characters - generating more geometric detail. The way this works is by taking a source mesh that features a number of triangles on it and applying a displacement map to it. A displacement map is just like a 2D texture except instead of storing color values at each point on the map it stores displacement values at each point on the map (hence the name). When you apply a texture map to a polygon each pixel within the polygon assumes the color of the corresponding pixel on the texture map. Similarly, when you apply a displacement map to a polygon each pixel within the polygon is displaced by the value of the corresponding pixel on the displacement map. For example, if coordinate (1, 1) on a displacement map indicates a displacement of +10 then the corresponding coordinate on the mesh that is mapped will be 10 units higher. The below graphic can help you better understand this process:

Displacement mapping can also be used on characters; if you have a single character model, applying different displacement maps to the model can change the way the character looks without having to generate multiple models. A displacement map with larger values around the center of the map could give a character a large belly while other manipulations could give a character more rotund thighs.

The Parhelia Pipeline (continued) HDM Continued: Depth-Adaptive Tessellation
Comments Locked

0 Comments

View All Comments

Log in

Don't have an account? Sign up now