Via the image formation equation, the intensity value of a pixel is dependent on both geometry and reflectance properties at the sampled surface point. The effects of geometry and reflectance are in fact inseparable in the pixel observation. In the project we assume the existence of a geometric prior i.e., fully or partially known geometry of the sampled surface. The goal is to devise an algorithm to fit a physically based complex reflectance model (BRDF) to the surface given a small number of images and the prior. The project would require working with both synthetic and real image data. For the project, you would need prior knowledge (or willingness to learn) of projective geometry and other principles of 3D reconstruction as well as graphics (e.g. for generation of synthetic imagery with physically based rendering and for result visualisation).
the project focuses on algorithm development, not software engineering. However, you will need to develop code to implement the algorithm to publishable research code standards (not necessarily fully optimised for speed/efficiency) as well as the relighting pipelines for result visualisation. As mentioned previously, the project will also require physically plausible synthetic data generation using a raytracer for algorithm development.
. Povray
a) Then I would look at Povray (http://www.povray.org/) as a tool for synthetic data generation in this project.
If you are on Ubuntu, you can install it from the repository.
Also download the source code from the website as you may need to modify it in the future for custom settings.
b) Then I would read the documentation under "Finish": https://www.povray.org/documentation/3.7.0/r3_4.html#r3_4_6_3
I would pay particular attention to specular reflectance and implementation of energy conservation in rendering.
You can assume that you will be generating topical reflectance phenomena only (no refraction or sub-surface scattering for example).
c) Also find where and how the finish functionalities are implemented in the source code of povray.
Hint: find photons.cpp and trace.cpp in the source code of povray.