I recently got hit up with this comment:
"So, what practical purpose does real time (*i assume that this is real time) displacement serve? Normal mapping is less hardware/software specific as far as I can tell, no need for directX 11+ support, and it looks nearly as good, if not better. And if normal mapping is too 'old', try some fancy parallax mapping.
That said, dx11 tessellation is a cool tech toy."
By user:
daemoria.deviantart.com/On Submission:
senor-freebie.deviantart.com/a…The comment is a good one as it challenges plenty of assumptions that game developers and gamers have about new technology, eg. that it should be implemented immediately without debate because it makes things more shiny.
I started writing a long winded response to his questions from my perspective (and I am no god of argument) but for the sake of debate I thought I would make it into a journal instead so that anyone interested could join in the discussion.
First though I will explain the difference between normal and displacement mapping for people unfamiliar. Both are textures that you typically generate by 'comparing' a low detail and a high detail mesh. Where there are differences between the meshes the generation process stores information on the texture.
Normal maps store the angle of the face but not the depth.
Displacement maps store the depth of the face but not the angle.
The reason this has occured as a debate in the first place is because originally, your low resolution geometry would exist untouched and therefore a displacement map would be useless since modifying the low detail model to appear like the high res one had to be done on its terms.
Now, there is graphics hardware able to do what is called Tesselation in real time. And what that means is that it divides the detail more on your low detail model as you get closer so that there is physical detail to 'displace'
Now here is what would've been my comment:
It is real time. This was just an experiment, so after looking at this, arguably normal mapping could look better, but there are a couple of things I should point out first. This was my first real time displacement map I had made and I made it with a generation program, rather quickly, instead of tweaking the model to get the best result. The next model I did this to looks far better:
fav.me/d2xai26 and I believe with this technique you can make some models indistinguishable from their real life counter-parts. Of course, this isn't the completed job either as I haven't added scratches or bumps into the metal.
But the advantages of displacement are broad:
The first is it affects the silhouette of the model so unlike with normal maps you lose that hard edge that has plagued game art for so long.
The second is that lighting isn't faked. Normal maps only alter the way light falls on a surface artificially. Displacement affects the surface meaning a deep hole will naturally be darker.
The third is, and this is an argument some had against displacement mapping, that it is ineffecient at creating polies. In some of my examples the tesselated low poly model is of higher detail then the high poly bake.
But this is actually an advantage, strangely enough. The problem with polies on modern graphics hardware is NOT the amount of them but the amount of room they take up in RAM. Displacement maps store polies more effeciently.
Also, they provide an automatic detail LOD'ing system by reducing the resolution of the texture and the amount of tesselation. This saves valuable rendering time AND work load.
The fourth is that they actually work in conjunction with Normal maps. They displace on the angle of the normal map so they are really complimentary, not in competition.
The fifth is that being greyscale image, unlike normal maps they are easy to modify, both in the art pipeline and by code ingame. Of course this is dependent on the complexity of your model, but you could for example use it for geo-mod or water ripples.
The sixth is, assuming you are syncing up your tesselation and mip-mapping with your LOD'ing you could use it to turn 'ground detail' into other kinds at long range such as tree tops on a hill, that at higher LOD's you switch out for actual modelled trees.
I'm not trying to be combative or anything here. I'm just trying to rationalise something I'm excited about and that I hope I get to put into games sooner rather then later, to realise the graphical potential. I'm open to counter-arguments etc.