As the game does not include depth maps I also created a tool to process all game normal maps and generate the apropriate depth maps. I store the depth maps in specular map alpha channel (as normal map blue and alpha channels are useless with the DXT5 compression where X and W components are wapped and Z recalculated).
It works great at many places but will break at some gemetry where the polygon edges do not have depth zero. If depth maps wore manualy created this could be fixed but my tool is automatic and game normal maps wore not created for this type effect. Anyway it is a nice mod and intresting art to test my Relief Mapping shader idea.
And yes it does run real-time and you can play the game with all geometry using Relief Mapping. Get around 50 fps here in my P4 HT 2.5 with AGP 4X and geForce6800GT.
It could be more optimized as relief mapping changes only per view. For now it is calculated for every light (relief is recalculated many times per view, once per light). Could be done once per frame and have all lights share the same relief calculations stored in a texture for example (deffered shading). But this is not possible with current Doom3 render pipeline.
I’m also surprised that it runs 50 fps on a GeForce 6800 GT. Looks really practical and robust. I can hardly wait to see how it actually matches up with Doom 3 environment and thus the coming G70/R520-gen PC games.
:eek: wow That’s great man! I once modified the interaction.vfp to add parallax mapping, but this is just another league!
Can’t wait to try it!!!
Is there a way this will work on a R9800?
Use htm files to view the screenshots and move mouse in/out image to switch from original and relief versions. And make sure to READ the README file… important instrictions there… 50fps at 640x480 resolution :rolleyes: .
In video I just got the places where I found to look better anyway. Expect to see bad areas where depth at polygon edges is not zero (white). It can be fixed by editing the depth maps manually but will be too tedious (too many maps).
Need to find a way to store depth in normal map (disable the x-w swap or normal map compression). Would be much better and more efficient to have the depth in blue or alpha normal map channel. Anyone knows how to do it?
Tried following cfg file options but seams nothing changes with them. Anyone knows specifics on the following parameters:
this technique (and its kin) is the biggest graphic advancement of the year. up there with shadowmapping/bumpmapping
how well does it handle the stencilshadows (shadowmaps) in the first screenshot, various things look brighter for some reason
There is a blinking light there in the background and between the two screenshots I got it on/off by mistake… forget about that.
One nice things I want to try is outputing depth correct values (write to OUT.depth in shader). This makes shadow boundaries follow the relief nicely allowing correct shadows over the displaced geometry.
Hi pocketmoon… you can use the command line option. Open a command promt and go to the tool folder. Then type:
normal2depth.exe c:\doom3\base\pak004.pk4
After processing all normal maps you should see all specular maps including depth in alpha channel at c:\doom3\base extures\
But game must be in ultra-quality mode so you can see the relief mapping at work. It can be done for the high-quality mode but then we should process the dds files and not the tga ones… maybe for the future… should run faster at high-quality I gess.