Following the development in Peers et. al.’s Compressive Light Transport Sensing (download), the light transport problem can be described by the following matrix equation:
where
- is a -dimensional vector, where is the number of pixels in the final image, and each component of is the color of a pixel,
- is an -dimensional vector, where is the number of light sources, and each component of is the intensity of a light source, and
- is a transfer matrix of size .
The -th column of , which we shall denode by , allows us to write the color of Pixel as .
Each is a signal the paper wishes to learn from real measurements. A measurement consists of shining a predetermined pattern of light to the scene and take a photograph. So let’s say we make measurements. Now, the light vector becomes a matrix of size , the color vector of size , and the equation changes to:
or, if you prefer to write the signal we want to reconstruct at the end,
.
Notice that the above equation gives rise to indepedent signal reconstruction problems for each column where acts like a measurement ensemble.
Suppose that each is sparse in some basis , having at most non-zero terms. We have that
.
where is projected into .
The theory of compressive sensing states that, if satisfies the restricted isometry property (read more about this property here) and
.
some constant , then we construct each exactly or with minimal error.
Application to Precomputed Radiance Transfer?
Can we apply the above compressive sensing framework to PRT? After all, the core tasks of image relighting and PRT are the same: learning the transfer function of each pixel. The difference is that measurements in PRT are done in computer by tracing rays.
It’s possible. In the scenario that you would like to relight a scene by a high resolution environmental map, say (as done in this paper). The transfer vector for each pixel would also be that high in dimension. To enable real time relighting, we wavelet-transform these transfer functions and keep only about 200 largest coefficients. Here, is about 20. So, we can render about 4000 images and use it to reconstruct the functions.
However, all of the above is not so impressive. First, it might take a very long time to render that 4000 images accurately. Second, we only assume that each pixel has one color, which either mean that the view is fixed or all the material is diffuse. Again, I don’t know how to handle variable views yet, but surveying more literature might help.