Rendering 3D Games as grayscale based on depth map


First of all: I know literally nothing about gfx and/or openGL at this type of level. So please kindly ignore wrong terms or similar stuff.

Here’s my question:

I wanna be able to render modern 3D Games (e.g. CounterStrike, Half-Life 2, WoW, etc…) as a grayscale image based on the actual depth map. No screenshots, the whole game at high fps rates. Ignore all textures, lighting, FX, etc and just render the whole game in grayscale based on the z-map. Ideally the game handling is untouched.

  1. Is it possible and how could it be achieved? OpenGL preferred but all hints and solutions highly appreciated.

  2. Are there existing tools to achieve this effect?

  3. My ATI-driver is able to load openGL custom shader. Could this be of any help or are they just post processing?

  4. If it’s possible, how hard would it be to code a solution?

Thanks in advance for reading and any type of input.


Sounds like you want to run those games and see their depth map on screen.
You would need to write a GL interceptor.
Those ATI shaders don’t do that and I think they removed them now from there drivers because they were silly.
I suggest you google for GLIntercepter, take the code and modify it for your own needs.
You need to do a D3D interceptor because HL2 uses D3D. WOW can use D3D or GL, I think.

More importantly, all those games have a anticheat thing, so you might not succeed in what you want to do.