I need to know an efficient way to sample pure specular paths, I see some papers for anton kaplanyan and jakob, but all of them are working on mutations from MLT (while I don't use MLT)
what I want is just the "idea" behind finding the pure specular path, I have my adaptive sample which works pretty good for light transport, but the problem lies where it lacks the ability to detect pure specular paths (like environment lighting reflecting on a vase then hits the camera film)
so what I have, a sampler which will give all paths except pure specular paths, what I want to add is another sampler which will only catch pure specular paths
any ideas?
sampling pure specular paths
Re: sampling pure specular paths
Hi Mohamed,
A very important question indeed. The general problem of finding pure specular paths is tough, as it is equivalent to an arbitrary constraint satisfaction problem, which is proven to be NPcomplete (http://en.wikipedia.org/wiki/Complexity ... tisfaction). For a practical scene with detailed enough geometry this might mean that the researchers should try to focus only on an approximate or stochastic search algorithms for such paths.
My work on regularization of such paths can be one of such options: http://cg.ivd.kit.edu/PSR.php It can work with PT and BDPT as well, so running MLT is not a necessity for this method. It does simulated annealing (stochastic "probability1" search) by "tempering" the roughness of the materials (turning specular materials into slightly rough). Basically, that means that it finds not a precise specular path, but a glossy path, which is quite close to the specular path. Afterwards, some differential geometry + Neutonian machinery can be applied to turn such an approximate "glossy" path into the specular path, in spirit of manifold exploration (again, this Newtonian algorithm is independent of MLT).
Also you can find some prior work if you look up the references in the PSR paper. However, in PSR I only "temper" the materials. The geometry can be "tempered" the same way to improve the search. Imagine a highly tessellated geometry with highfrequency displacement map. This would be a horrible case for finding all the specular highlights on it. However, if you start with some simple smooth geometry and start gradually "developing" the displacement map on it, this way you can quickly find many highlights using some annealing search in this domain.
Generally, the problem of finding distinct illumination features is orthogonal to the problem of exploring them. And for specular materials it can quickly get up to impractical complexity if you try to find them precisely in a bruteforce manner.
Hope that helps,
Anton
A very important question indeed. The general problem of finding pure specular paths is tough, as it is equivalent to an arbitrary constraint satisfaction problem, which is proven to be NPcomplete (http://en.wikipedia.org/wiki/Complexity ... tisfaction). For a practical scene with detailed enough geometry this might mean that the researchers should try to focus only on an approximate or stochastic search algorithms for such paths.
My work on regularization of such paths can be one of such options: http://cg.ivd.kit.edu/PSR.php It can work with PT and BDPT as well, so running MLT is not a necessity for this method. It does simulated annealing (stochastic "probability1" search) by "tempering" the roughness of the materials (turning specular materials into slightly rough). Basically, that means that it finds not a precise specular path, but a glossy path, which is quite close to the specular path. Afterwards, some differential geometry + Neutonian machinery can be applied to turn such an approximate "glossy" path into the specular path, in spirit of manifold exploration (again, this Newtonian algorithm is independent of MLT).
Also you can find some prior work if you look up the references in the PSR paper. However, in PSR I only "temper" the materials. The geometry can be "tempered" the same way to improve the search. Imagine a highly tessellated geometry with highfrequency displacement map. This would be a horrible case for finding all the specular highlights on it. However, if you start with some simple smooth geometry and start gradually "developing" the displacement map on it, this way you can quickly find many highlights using some annealing search in this domain.
Generally, the problem of finding distinct illumination features is orthogonal to the problem of exploring them. And for specular materials it can quickly get up to impractical complexity if you try to find them precisely in a bruteforce manner.
Hope that helps,
Anton

 Posts: 83
 Joined: Thu Apr 24, 2014 2:27 am
Re: sampling pure specular paths
thanks a lot for clarificationkaplanyan wrote:Hi Mohamed,
A very important question indeed. The general problem of finding pure specular paths is tough, as it is equivalent to an arbitrary constraint satisfaction problem, which is proven to be NPcomplete (http://en.wikipedia.org/wiki/Complexity ... tisfaction). For a practical scene with detailed enough geometry this might mean that the researchers should try to focus only on an approximate or stochastic search algorithms for such paths.
My work on regularization of such paths can be one of such options: http://cg.ivd.kit.edu/PSR.php It can work with PT and BDPT as well, so running MLT is not a necessity for this method. It does simulated annealing (stochastic "probability1" search) by "tempering" the roughness of the materials (turning specular materials into slightly rough). Basically, that means that it finds not a precise specular path, but a glossy path, which is quite close to the specular path. Afterwards, some differential geometry + Neutonian machinery can be applied to turn such an approximate "glossy" path into the specular path, in spirit of manifold exploration (again, this Newtonian algorithm is independent of MLT).
Also you can find some prior work if you look up the references in the PSR paper. However, in PSR I only "temper" the materials. The geometry can be "tempered" the same way to improve the search. Imagine a highly tessellated geometry with highfrequency displacement map. This would be a horrible case for finding all the specular highlights on it. However, if you start with some simple smooth geometry and start gradually "developing" the displacement map on it, this way you can quickly find many highlights using some annealing search in this domain.
Generally, the problem of finding distinct illumination features is orthogonal to the problem of exploring them. And for specular materials it can quickly get up to impractical complexity if you try to find them precisely in a bruteforce manner.
Hope that helps,
Anton
Re: sampling pure specular paths
An interesting property of pure specular paths is that they are only parameterized by the location on the image plane (and possibly on the lens, if you have depth of field). That is, a path of a potentially very high length is completely determined by two scalar parameters  the (x,y) coordinates of the camera ray. For a given scene, you can imagine the energy contribution of such paths as a 3D plot (x,y,z), where the zcoordinate (the height) is the path contribution at location (x,y) on the image plane. This function can have very narrow and very high peaks, corresponding to highlights. Now, in rendering we do not integrate the entire 2D (x,y) domain, but instead we split it into pixels and integrate this function inside the support of each pixel. And assuming that the support of each pixel is not much larger than the width of the peaks (highlights), you can apply good old image plane adaptive sampling to improve rendering efficiency. That is, you keep some estimate of the variance of each pixel and continue sampling the pixel until this estimate drops below a certain threshold. You could probably also apply Kelemenstyle mutations of the (x,y) position inside each pixel, in order to better explore the highlights inside it, instead of doing bruteforce sampling.

 Posts: 83
 Joined: Thu Apr 24, 2014 2:27 am
Re: sampling pure specular paths
yea I'm trying to avoid the brute force for this kind of problemsingenious wrote:You could probably also apply Kelemenstyle mutations of the (x,y) position inside each pixel, in order to better explore the highlights inside it, instead of doing bruteforce sampling.