sampling pure specular paths

Practical and theoretical implementation discussion.
Post Reply
MohamedSakr
Posts: 83
Joined: Thu Apr 24, 2014 2:27 am

sampling pure specular paths

Post by MohamedSakr » Wed Sep 03, 2014 4:41 am

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?

kaplanyan
Posts: 11
Joined: Tue Nov 27, 2012 9:38 pm
Location: Karlsruhe, BWL, Germany
Contact:

Re: sampling pure specular paths

Post by kaplanyan » Wed Sep 03, 2014 12:59 pm

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 NP-complete (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 "probability-1" 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 high-frequency 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 brute-force manner.

Hope that helps,
Anton
--
Anton

MohamedSakr
Posts: 83
Joined: Thu Apr 24, 2014 2:27 am

Re: sampling pure specular paths

Post by MohamedSakr » Wed Sep 03, 2014 1:35 pm

kaplanyan 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 NP-complete (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 "probability-1" 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 high-frequency 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 brute-force manner.

Hope that helps,
Anton
thanks a lot for clarification :)

ingenious
Posts: 282
Joined: Mon Nov 28, 2011 11:11 pm
Location: London, UK
Contact:

Re: sampling pure specular paths

Post by ingenious » Fri Sep 05, 2014 9:30 am

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 z-coordinate (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 Kelemen-style mutations of the (x,y) position inside each pixel, in order to better explore the highlights inside it, instead of doing brute-force sampling.
Image Click here. You'll thank me later.

MohamedSakr
Posts: 83
Joined: Thu Apr 24, 2014 2:27 am

Re: sampling pure specular paths

Post by MohamedSakr » Fri Sep 05, 2014 1:19 pm

ingenious wrote:You could probably also apply Kelemen-style mutations of the (x,y) position inside each pixel, in order to better explore the highlights inside it, instead of doing brute-force sampling.
yea I'm trying to avoid the brute force for this kind of problems :D

Post Reply