Playing With Postprocessing
Finally, I have a brand new hardware. The config is: Intel i7 2600K 3.4GHz, 8GB RAM, NVidia GeForce 560 Ti. It is like to get into a Rolls-Royce after a trolley. One of the first things that I did was to give my engine a try. Of course… 🙂 The difference is amazing. The overall speed-up factor of the rendering is somewhere between 10 and 40… quite good, I think… The occlusion culling gives much more boost than on the old GPU.
Compilation is lightning fast, thanks to the multiprocessor compiling, the C++ compiler can work in parallel on multiple source files at the same time. The quad-core CPU acts like there were 8 CPUs in parallel, thus, the full recompilation takes only 19 seconds, but the net compilation is only 7(!) seconds, the remaining time is spent on linking, because the linker cannot work in parallel. Comparing it to my old hardware it took more than two minutes to compile the whole project (the full source code is about 5MB).
So, I got some inspiration to rewrite some of my old postprocessing shaders and use them in the new deferred renderer. Using the compositor system in the engine, it only had to restructure the compositor config and rewrite the appropriate shaders, without the need of recompilation of the engine itself. Now there is a relatively simple and intuitive postprocessing chain: there are four levels of half-sized downsizing, a separated (two pass) Gaussian blur with 30×30 kernel, a horizontal blur and a final composition pass with some tricks to improve the image.
The results can be seen here. The scene was slightly enhanced, I have added some secondary lights to spot light sources to force postproc effects to kick in at the spot sources.