I am reading two shot svbrdf capture . I want to understand the data fitting.

For example, I have my input image 3000x2000 pixels, and I divide it to create my source tiles of 192x192 pixels. The way I understand this paper is, each pixel of each tile will be the svbrdf. Now we have to find the BRDF parameters for each position with the L-M method.

Then, we get svbrdf parameters for 192x192 pixels. After the data fitting what did they do to obtain the normal map, specular albedo and diffuse albedo.


1 Answer 1


I read that paper as well last year. There's a strong assumption made by authors which is the "stationary". What this means is that in absence of light in given 3000x2000 pixels image the material is more or less the same in each tile of 192x192. The reason for this is because we the surface is lit by white light is like they have a sample of BRDF for a set of angles.

The first shot is to get the stationarity of the material. The second shot is to get how each tile reacts to the interaction with the light from a different angle.

They collect the set of all tiles with the light and they later use their BRDF model to perform the fitting.

The fitting, as you say, is done by using the L-M algorithm. There're few inconsistenties with the formula they use to perform the fitting, if I remember correctly the use non differentiable functions and they still perform the fitting.

If I remember correctly the actual fitting algorithm is constructed by one hand differentiating part of their cost function, while from the other hand they use a numerical approximation of the derivative/gradient/Jacobian.

The BRDF they use is parametrized using the several maps you mention in your question, therefore when they minimize the cost function they get optimal maps.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.