   Displacement for games
  There has been a lot of speculation regarding hardware tessellation and displacement support. Especially after Unigine Heaven benchmark release - http://unigine.com/press-releases/091022-heaven_benchmark/.I wanted to make sure is displacement suits our needs for upcoming game project but my 9600GT does not support DX 11. So I've drawn a height map and tried to displace a polygon in 3dmax but it appears a nightmare - model is often corrupted, UV coords are not preserved and subdivision creates too many polygons to work with. I've checked several similar tools and got the same result..After that I decided to implement simple displacement by myself just to test how it would look like. As a result I got a model with 16002 polygons from 64x128 height map.Here goes: Original model (2 triangles), Displaced model, Displaced wireframe (16002 triangles)As you can see there is a lot of simple planar polygons that can be merged to optimize the model. After two days of coding I have a tool that is able to optimize displaced model up to 23 (!) times - from the monstrous model above it creates a cutie with 699 triangles that looks exactly the same:May be it is not as precise and complex as hardware displaced model can be, but.. Adding 699 polygons at closest LOD is not a problem for modern hardware. Even ancient cards like 6600GT should eat this. Of course, it is not a realtime displacement and there is a lot of potential problems, factors and height map requirements. But we really can start making games with such displacement. And when "DX 11 era" starts, we'll just switch from offline processing to hardware displacement with same height maps.Those who can read Russian (or skilled in translation magic) can read some details at my blog. There is also clickable slideshow that allows to compare original and displaced models:http://blog.runserver.net/2009/11/blog-post_20.html
  Here is short video of this technology in real-time environment. Note that displacement task lasts 2-3 seconds, so you can't paint on the model like in ZBrush, it is not possible to animate displacement map or displace curved surface, etc.">