Page MenuHome

Cycles: Branched Path - Indirect Multi Light
ClosedPublic

Authored by Thomas Dinges (dingto) on Mar 9 2014, 3:23 PM.

Details

Summary

Hi,
submitting this to get some feedback. This is WIP.

Main issue is the num_samples_adjust and the related num_samples calculations. I reuse the value from the direct calculations as a hack (pass_samples). What is the proper solution here?

ToDo:

  • Make optional (It's slow)
  • Fix num_samples_adjust thing ( this should also fix wrong SSS/Volume, and Mesh Lights).

Nevertheless does this improve Sampling already, here a comparison. The second image has been rendered with less AA samples, to get the same render time, but due to the Multi light sampling it's less noisy.

Diff Detail

Event Timeline

Brecht Van Lommel (brecht) updated this revision to Unknown Object (????).Mar 9 2014, 6:11 PM

It's actually simpler, only kernel_path_indirect needs to be changed, no need
to pass num_samples_adjust or anything like that.

Brecht Van Lommel (brecht) updated this revision to Unknown Object (????).Mar 9 2014, 6:13 PM

Refactored the code so it's shared.

This indeed should be made optional.

The way it helps is that you don't get the variance/noise from picking a light at random, but if you've got many lights then computing all of them is slow. For the render you show it's a very significant improvement though. If you've got a reasonable simple shot with a few lights and rely on the global illumination to bounce the light around, then this should be very helpful.

The partial solution to slowness would to have some way to quickly detect which lamps contribute and which don't. That would involve introducing a non-physical cutoff distance for lamps and creating a light tree if you really have many lights, that's an optimization that can be done at some later point.

Thomas Dinges (dingto) commandeered this revision.Mar 9 2014, 7:58 PM
Thomas Dinges (dingto) updated this revision to Unknown Object (????).
  • Indirect Multi Light is now optional.

Looks good to me, thanks.