<div dir="ltr"><div>Hi all,</div><div><br></div><div>Here is my weekly report:</div><div><br></div><div><b>This week</b> I have started implementing the things described in the <a href="http://www.aconty.com/pdf/many-lights-hpg2018.pdf">paper</a> Brecht found last week:</div><div><ul><li><a href="https://developer.blender.org/rBc6bd7a974b34">Split Heuristic</a>: The new splitting heuristic is based on the estimated variance of the lighting in the cluster.</li><ul><li>Comment: This heuristic splits a lot more which affects performance. One of my test scenes rendered ~10x slower than with the old heuristic. <br></li></ul><li><a href="https://developer.blender.org/rB2d6e1ddb94a3">Random Number Rescaling</a>: This rescaling is used in the tree traversal.<br></li><li><a href="https://developer.blender.org/rB260b2e9e20ac">Importance Metric</a>: This metric now also considers a term that represents a "conservative and arbitrary approximation of the surface BSDF times the irradiance".<br></li><ul><li>Comment 1: They say they use a diffuse approximation of the surface BSDF. For now, I do something similar to bsdf_diffuse_eval_reflect().</li><li>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. <br></li></ul><li><a href="https://developer.blender.org/rB8a0ff32abda6">Cone Aggregation and Measure</a>: 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.<br></li><li><a href="https://developer.blender.org/rB0db119ad11e4">SAOH Regularization Factor</a>: This factor will penalize thin bounding boxes in the tree build.<br></li></ul><div>Also, some bugs were <a href="https://developer.blender.org/rBff4833a6b395">fixed</a>.<br></div><div><br></div><div><b>Next week</b> I want to:</div><div><ul><li>Investigate if the performance degradation really is because of the new splitting heuristic. <br></li><li>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. <br></li><li>Implement several emitters per leaf node <br></li><ul><li>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.<br></li><li>This might improve the performance of the tree traversal.</li></ul></ul>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.</div><div><br></div><div>Have a good weekend!<br></div><div><br></div><div>Thanks,</div><div>Erik<br></div></div></div>