Friday, December 2, 2011

Self Evaluation

We're at the point of Beta Review, and it's time to do a self evaluation of how the project has been coming along.

Looking back at what I set as the original goals, they were quite reasonable. After all, my project is only to implement global illumination with photon mapping - pretty standard stuff. However, there are still many features that I had left out and not implemented. Why? I think that the one aspect of this project that is particularly lacking was the initial research and planning of the framework I will be using. Most of the time spent on the project was not on the global illumination algorithm, but debugging and compromising for the nature of the framework. More specifically, there were many limitations of GLSL ES that I did not foresee that made many standard features of a scene graph or photon mapping very tricky and difficult to implement. With more thorough research and thinking, and planning through every step of the project, I believe the project would have gone much more smoothly. Nonetheless, I managed to make certain compromises and find various alternative methods along the way that allowed me to build some kind of global illumination renderer on WebGL.

The following is a list of features I have today:
  • Scene list
  • Ray tracing, with reflections and refractions
  • Photon scattering
  • Rendering with photon gathering (with only full reflection or refraction)
  • Real-time interactive user-controlled camera
And here are features that were compromised:
  • Scene graph - instead using a simple scene list
  • Photon scattering and rendering - not using standard literature technique
 Finally, here is a list of future tasks that might or might not be implemented:
  • Interactive user interface - allow users to modify the scene
  • Irradiance Caching
  • Caustics
So, in a way I have met my main goals, but along the way I had to cut many corners. Looking ahead to the next few weeks, I see myself working on those features that weren't properly implemented or not implemented well, and trying to see if it is possible to make them fully functional and more optimized. I also plan to add more interactive functionality by allowing users to modify the scene. Finally, I am afraid to say that I won't be getting around to my future tasks, specifically irradiance caching and caustics, both of which are not well supported by my current framework.

After the Beta Review tomorrow, I will post more details about the future timeline of the next few weeks.

No comments:

Post a Comment