Choosing clamping limit in VPL rendering

Practical and theoretical implementation discussion.
khalidsalman
Posts: 8
Joined: Thu Dec 22, 2011 10:56 pm

Choosing clamping limit in VPL rendering

Postby khalidsalman » Sun Jan 26, 2014 8:36 am

Hi all,

I was looking at the IGI algorithm for VPL rendering. A well known issue is the spikes\singularities resulting from a high Geometry factor in the rendering equation. The issue is well laid out by Simon Brown at his blog:
"The second issue is a problem because the optimal b (one that removes just enough energy to hide the singularities) will vary with light path density in the scene, and exposing a parameter for something generally means it will be set to something very inoptimal."


A simple issue that comes to mind with a fixed limit value is that just scaling the scene will require a different limit value to get the same effect.

I was looking at literature concerning this and didn't find much help, probably I missed some important hints, not sure. Any thoughts?

Thanks you!

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

Re: Choosing clamping limit in VPL rendering

Postby ingenious » Sun Jan 26, 2014 5:51 pm

A very easy and relatively robust solution is to only clamp the final pixel contribution to some maximum value, say 10. This way you make sure that a single VPL cannot contribute huge amount of energy (either due to low PDF, due to landing around a corner, or due to a sharp BRDF). This parameter is much easier to control than some world-space minimum distance. In addition, you'll get lower bias automatically when you increase the number of VPLs (because the weight of each VPL, and thus its contribution to the image, will be lower).

If you have a progressive rendering pipeline, then you can make the algorithm consistent by increasing the clamping threshold at every iteration. You can read more about this here:
http://www.iliyan.com/publications/ProgressiveLightcuts
Image Click here. You'll thank me later.

khalidsalman
Posts: 8
Joined: Thu Dec 22, 2011 10:56 pm

Re: Choosing clamping limit in VPL rendering

Postby khalidsalman » Mon Jan 27, 2014 7:57 am

Many thanks ingenious for the response. I am also looking at your other papers on the subject, great work!

Zelcious
Posts: 42
Joined: Mon Jul 23, 2012 11:05 am

Re: Choosing clamping limit in VPL rendering

Postby Zelcious » Mon Jan 27, 2014 8:23 am

Or don't clamp:

Illumination in the Presence of Weak Singularities
with Alexander Keller
Monte Carlo and Quasi-Monte Carlo Methods 2004

But it of course depends on how you render your vpl, you may not have the option.

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

Re: Choosing clamping limit in VPL rendering

Postby ingenious » Mon Jan 27, 2014 10:12 am

Zelcious wrote:Or don't clamp:

Illumination in the Presence of Weak Singularities
with Alexander Keller
Monte Carlo and Quasi-Monte Carlo Methods 2004

But it of course depends on how you render your vpl, you may not have the option.


True, however if you can afford tracing subpaths from the camera, you'd probably be better off doing full bidirectional path tracing of which this clamping compensation is a special case. Especially if you have glossy materials.
Image Click here. You'll thank me later.

Zelcious
Posts: 42
Joined: Mon Jul 23, 2012 11:05 am

Re: Choosing clamping limit in VPL rendering

Postby Zelcious » Mon Jan 27, 2014 12:23 pm

Glossy is one thing and should be treated with care but I'm not sure bidirectional is more efficient otherwise. Would be interesting to see some statistics.

toshiya
Posts: 22
Joined: Tue Apr 03, 2012 1:42 pm

Re: Choosing clamping limit in VPL rendering

Postby toshiya » Mon Jan 27, 2014 2:48 pm

ingenious wrote:A very easy and relatively robust solution is to only clamp the final pixel contribution to some maximum value, say 10. This way you make sure that a single VPL cannot contribute huge amount of energy (either due to low PDF, due to landing around a corner, or due to a sharp BRDF). This parameter is much easier to control than some world-space minimum distance. In addition, you'll get lower bias automatically when you increase the number of VPLs (because the weight of each VPL, and thus its contribution to the image, will be lower).

If you have a progressive rendering pipeline, then you can make the algorithm consistent by increasing the clamping threshold at every iteration. You can read more about this here:
http://www.iliyan.com/publications/ProgressiveLightcuts


Pixel-space clamping (?) sounds interesting, but can we use it in the progressive algorithm where VPLs are accumulated immediately and the contribution of each VPL gets progressively lower?

tomasdavid
Posts: 22
Joined: Wed Oct 10, 2012 12:41 pm

Re: Choosing clamping limit in VPL rendering

Postby tomasdavid » Mon Jan 27, 2014 7:09 pm

Zelcious wrote:Glossy is one thing and should be treated with care but I'm not sure bidirectional is more efficient otherwise. Would be interesting to see some statistics.


One of the main advantages of the paper, the limit on max path length of the compensating rays, works only when you know you have purely diffuse scene, I am afraid. Without it, it is pretty much just a BPT with different weights. Also, clamping in glossy setting is not well explored (you probably need to clamp BSDF as well as G term).

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

Re: Choosing clamping limit in VPL rendering

Postby ingenious » Tue Jan 28, 2014 8:30 am

toshiya wrote:Pixel-space clamping (?) sounds interesting, but can we use it in the progressive algorithm where VPLs are accumulated immediately and the contribution of each VPL gets progressively lower?


In a progressive setup, where at each rendering iteration you sample a fixed number of light paths and accumulate all resulting images, you need to progressively increase the pixel clamping threshold, as discussed in our Siggraph sketch linked above.

tomasdavid wrote:Without it, it is pretty much just a BPT with different weights.


And not too well justified weights, I'd add. It's effectively a combination of different path sampling techniques based on a heuristic classification of paths (instead of the smooth weighting provided by Veach's MIS heuristics).
Image Click here. You'll thank me later.

toshiya
Posts: 22
Joined: Tue Apr 03, 2012 1:42 pm

Re: Choosing clamping limit in VPL rendering

Postby toshiya » Tue Jan 28, 2014 11:02 am

ingenious wrote:In a progressive setup, where at each rendering iteration you sample a fixed number of light paths and accumulate all resulting images, you need to progressively increase the pixel clamping threshold, as discussed in our Siggraph sketch linked above..


My question is, wouldn't it be kind of "suboptimal" in the sense that we ignore the fact that the more VPLs you have in total, the lower each contribution becomes?

For example, let's say we trace 100 light subpaths for each iteration and do 1000 iterations (i.e., we get O(100K) VPLs). If we clamp pixel-contributions of VPLs considering only VPLs (100 VPLs) within each iteration, which I think you suggest and with the progressively increasing threshold, wouldn't it be different from clamping pixel-contributions of all the VPLs (i.e., O(100K) VPLs) with the same threshold adjusted according to the number of VPLs?


Return to “General Development”

Who is online

Users browsing this forum: Bing [Bot] and 5 guests