Updating the lighting

Not much, I made the renderer plug-able for our shaders, add a better lighting support (see screenshots).

I added a fourth Render Target.
The surface type is D3DFMT_A8R8G8B8, it stores the specular intensity, specular power, and occlusion factor (not computed actually).

I also tried to palletize the Material settings. I made the whole dynamic system which stores all the materials’ settings into a texture, with a look up index stored per pixel in the MRT. Everything went fine and smooth, but I dropped it because I don’t have the feeling it’s something necessary.

Read many papers on subsurface scattering, ambient occlusion and parallax mapping. I had to make sure everything could fit in the current architecture!

Screenshots:

Deferred Shading renderer version! I like this!!! 🙂
The point light is red, has short range and a high power, the specular highlight looks great. And it’s hundred times better when you can move the camera and lights in real-time! 🙂

Standard Renderer version.
The floor is a dumb square, so forget about specular lighting. The Point light (at the left) has a small range, that’s it does absolutely nothing on the floor.

Screenshots of the intermediate buffers:


Final Render


Final without Tonemap


Albedo


Position of each pixel in 3D space. Yes you can see the cylinder and the sphere, just look closer! 🙂


Depth of each pixel


Normal of each pixel


Blurred version, used by the ToneMapping process