In the follow up work, I would like to improve the renderer to better handle integration in difficult light situations with many light sources which however are rarely seen from most surface patches for which both path tracing and bidirectional path tracing have problems with. A possible candidate may be Metropolis Light Transport (MLT) for which time has not allowed my to implemented it properly for the rendering competition. To speed up rendering, noise should be reduced by means of low discrepancy (LD) sampling of not only the image domain, but the lens and integration domain as well. Currently, I only employ stratified sampling of the image domain, and uniform random sampling of the lens and integration domain, including sampling light sources and areas which further increases noise compared to LD sampling.
Currently, the renderer does not account for human visual perception, nor for HDRI. In addition, more accurate computations should be make by employing a more fine grained color spectrum (buckets for nm sections).
Although the implemented BVH acceleration structure is flattened to speed up rendering, it is not optimal for animated scenes for which a better data structure is planned to be implemented.
I wanted to further extend the renderer by a layered marble texture to increase the perceived complexity of surfaces after rendering. But time was running out. For the same reason, I plan to integrate into and experiment with volume rendering in terms of path tracing.
There is still so much to do. I just can not mention it all here.