Got the answer from Sikk

doom3 actually has a function for accessing depthbuffer related stuff the downside is that the infinite far z volume calculations need some modifying else it would cause some disatorous things but real SSAO is possible allthough it will take some hacking about.
From his post.
There's already a function to capture the depth buffer to a texture, "CopyDepthbuffer(...)". You just need to add an idImage to call it. See "RB_STD_DrawView()" in my source. After the depth buffer is filled (with RB_STD_FillDepthBuffer( drawSurfs, numDrawSurfs );), I capture it. Right now, I only use it for things like soft water/particles and some other basic depth effects. Doing ssao or dof with it will be tricky because you'll have to linearize it which, because of the infinite far z that this engine uses, is not so simple.
I repacked my mod with a few additional tweaks (microstutter fix by jkriege) and added the ROE hd mod. Theres now also wrapper executables which will start them with the HD mod enabled.
I also added higher resolutions.
Lost a bit of weight in the process

Productivity is a state of mind.