Light Transport I: Surface Reflection

This chapter focuses on the ray-tracing algorithms, radiometric concepts, and Monte Carlo sampling algorithms of the previous chapters to implement a set of integrators that compute scattered radiance from surfaces in the scene. Integrators are responsible for evaluating the integral equation that describes the equilibrium distribution of radiance in an environment (the light transport equation). As the SamplerRenderer uses the Camera to generate rays and then finds intersections with scene geometry, information about the intersections is passed to the SurfaceIntegrator and the VolumeIntegrator that the user selected; together these two classes are responsible for doing appropriate shading and lighting computations to compute the radiance along the ray, accounting for light reflected from the first surface visible along the ray as well as light attenuated and scattered by participating media along the ray. SurfaceIntegrators compute reflected light from geometric surfaces. The chapter describes SurfaceIntegrators. Because the light transport equation can be solved in closed form only for trivial scenes, it is necessary to apply a numerical integration technique to approximate its solution. Many solution methods have been proposed for doing so in rendering. The chapter presents implementations of a number of different integrators based on Monte Carlo integration that represent a selection of representative approaches to the problem. The chapter concludes with the implementation of a Renderer that applies the Metropolis sampling approach introduced in Section 13.4 to the light transport problem.