[Soc-2018-dev] Weekly Report #09 - Many Light Sampling
Erik Englesson
erikenglesson at gmail.com
Fri Jul 13 16:11:36 CEST 2018
Hi all,
Here is my weekly report:
*This week* I have started implementing the things described in the paper
<http://www.aconty.com/pdf/many-lights-hpg2018.pdf> Brecht found last week:
- Split Heuristic <https://developer.blender.org/rBc6bd7a974b34>: The
new splitting heuristic is based on the estimated variance of the lighting
in the cluster.
- Comment: This heuristic splits a lot more which affects
performance. One of my test scenes rendered ~10x slower than with the old
heuristic.
- Random Number Rescaling
<https://developer.blender.org/rB2d6e1ddb94a3>: This rescaling is used
in the tree traversal.
- Importance Metric <https://developer.blender.org/rB260b2e9e20ac>: This
metric now also considers a term that represents a "conservative and
arbitrary approximation of the surface BSDF times the irradiance".
- Comment 1: They say they use a diffuse approximation of the surface
BSDF. For now, I do something similar to bsdf_diffuse_eval_reflect().
- Comment 2: This new term of the importance metric depends on the
surface normal at the shading point which makes the MIS PDF calculations
also depend on this normal.
- Cone Aggregation and Measure
<https://developer.blender.org/rB8a0ff32abda6>: They did not even
mention cone aggregation in the abstract/slides so I implemented the first
thing that came to mind. Now that they have described how they do it then I
changed to do the same. The measure is similar to before.
- SAOH Regularization Factor
<https://developer.blender.org/rB0db119ad11e4>: This factor will
penalize thin bounding boxes in the tree build.
Also, some bugs were fixed <https://developer.blender.org/rBff4833a6b395>.
*Next week* I want to:
- Investigate if the performance degradation really is because of the
new splitting heuristic.
- It would be good to test the implementation more. Right now, I have
mostly tried branched path tracing with no subsurface, no volumes etc. This
might bring bugs to light.
- Implement several emitters per leaf node
- To do this, the build algorithm and the tree traversal has to be
changed. If a leaf with several emitters is found during tree traversal
then a CDF is generated on the fly based on the importance of each of the
emitters and then this is sampled.
- This might improve the performance of the tree traversal.
If there is more time, I am not sure if I should improve what I already
have(e.g. distant light sampling, tests, optimization, etc) or start the
implementation of the volume part.
Have a good weekend!
Thanks,
Erik
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.blender.org/pipermail/soc-2018-dev/attachments/20180713/c746d9d0/attachment.html>
More information about the Soc-2018-dev
mailing list