How fast time has passed! I’ve been very busy the last month or so finalising and debugging the program itself. I’ve also working on my dissertation at the very moment.
Happy to report that I have a program to show! After a lot of trying I’ve decided to ditch the idea of using shaders completely. I’ve tried using GLSL (which was very tricky for my intended purpose) and even Cg when GLSL didn’t work. After asking around in the forums I’ve found out that the shader programs have limited ability to process data and texture calls.
The problems were solved when I switched to using CPU only. I’ve re-structured the whole framework and it is now very simple to read and also make changes. This does come with the price of sacrificing performance as the code could be further optimised for that.
Anyway, I’ve settled on a novel Spherical harmonic lighting and ray casting hybrid solution. I’ve managed to implement dynamic lighting, soft shadowing and inter-reflected on textured surfaces using this method. I admit that this solution is not (yet) 100% real time and some values are precalculated before runtime but I think that at an honours project level, this is a very good achievement and experience gained.
Here are some screenshots of the program in action :
SH lighting with shadows :
SH lighting with shadows and inter reflections:
The works! Sh lighting, soft shadows, inter reflections and fully textured with simple animated water:
I’ve also output some basic debugging informations such as ray samples and loading times through the console window:
It’s normally around 17 seconds on my computer but I have a lot of background applications open so I guess that slowed it down a little. Considering the code could be further optimised and also the number of samples this is considered good results.
Right, now back to the dissertation!