Revision 7687083 by Sam Kottler (gsoc-2018-many-light-sampling, soc-2020-production-ready-light-tree, soc-2020-production-ready-light-tree-2) June 2, 2020, 15:30 (GMT) |
Merge commit 'e12c08e8d170b7ca40f204a5b0423c23a9fbc2c1^1' into gsoc-2018-many-light-sampling |
Revision 8d399ee by Erik Englesson (gsoc-2018-many-light-sampling, soc-2020-production-ready-light-tree, soc-2020-production-ready-light-tree-2) August 12, 2018, 10:30 (GMT) |
Merge branch 'master' into gsoc-2018-many-light-sampling |
Revision 4608e5a by Erik Englesson (gsoc-2018-many-light-sampling, soc-2020-production-ready-light-tree, soc-2020-production-ready-light-tree-2) August 12, 2018, 09:59 (GMT) |
Cycles: light_tree_pdf() now accounts for splitting For the MIS calculations we need to be able to calculate the probability to sample a light using the light tree. This did not account for splitting so if splitting was used the probability would be wrong. This has now been fixed. Also, if we are in PATH mode then the splitting threshold is set to zero. |
Revision 2d839a0 by Erik Englesson (gsoc-2018-many-light-sampling, soc-2020-production-ready-light-tree, soc-2020-production-ready-light-tree-2) August 12, 2018, 09:57 (GMT) |
Cycles: Removed unused code The simplified GGX code is no longer needed with the new splitting heuristic and has now been removed. |
Revision 0216dae by Erik Englesson (gsoc-2018-many-light-sampling, soc-2020-production-ready-light-tree, soc-2020-production-ready-light-tree-2) August 10, 2018, 15:34 (GMT) |
Cycles: Removed energy term in SAOH denominator This should not affect the result since it is just a scale factor to all terms in the minimization. This term was not in eq. 2 of the paper. |
Revision 8e36d94 by Erik Englesson (gsoc-2018-many-light-sampling, soc-2020-production-ready-light-tree, soc-2020-production-ready-light-tree-2) August 10, 2018, 15:31 (GMT) |
Cycles: Added more comments and renamed variables More code comments have been added to all code related to the light tree. I also renamed all uses of "light BVH" to use light tree instead to keep everything consistent. Functions and variable names that used the camel case naming convention has been changed to follow Blender's code style. Also, unneeded includes were removed. |
Revision 94af432 by Erik Englesson (gsoc-2018-many-light-sampling, soc-2020-production-ready-light-tree, soc-2020-production-ready-light-tree-2) August 3, 2018, 15:24 (GMT) |
Cycles: Light tree: volume and MIS fixes Now using a more reliable way of knowing if a shading point is inside or on the boundary of a volume. Fixed a bug in light_background_sample() that used an index into the lights array as an index into the distribution array. |
Revision f630504 by Erik Englesson (gsoc-2018-many-light-sampling, soc-2020-production-ready-light-tree, soc-2020-production-ready-light-tree-2) August 3, 2018, 15:24 (GMT) |
Cycles: Light tree split heuristic fix Doubles are no longer needed in the split heuristic calculations. |
Revision 108594d by Erik Englesson (gsoc-2018-many-light-sampling, soc-2020-production-ready-light-tree, soc-2020-production-ready-light-tree-2) August 3, 2018, 15:22 (GMT) |
Cycles: Light tree: energy and light picking fixes When calculating the energy for a light source I previously returned zero energy if is_constant_emission() returned false. This has now been changed so it uses an emission of (1,1,1) instead. The normal that is used for light picking for the BSDF approximation in the importance calculations now takes into consideration if the point is on glass, a reflective or transmissive surface. The position and normal used for light picking is now stored in the ShaderData struct. |
Revision 5d344f4 by Erik Englesson (gsoc-2018-many-light-sampling, soc-2020-production-ready-light-tree, soc-2020-production-ready-light-tree-2) August 3, 2018, 15:22 (GMT) |
Cycles: Light tree: Area light fix The bounding boxes for area lights was not calculated properly but has now been fixed. |
Revision e8e0669 by Erik Englesson (gsoc-2018-many-light-sampling, soc-2020-production-ready-light-tree, soc-2020-production-ready-light-tree-2) August 3, 2018, 15:22 (GMT) |
Cycles: Picking position and normal fix for MIS The picking position and normal has been changed to use the position and normal from the last non-transparent bounce. |
Revision 84fec21 by Erik Englesson (gsoc-2018-many-light-sampling, soc-2020-production-ready-light-tree, soc-2020-production-ready-light-tree-2) August 3, 2018, 15:21 (GMT) |
Cycles: Light tree instancing and energy fixes Instancing for mesh lights now works with the light tree. The conversion from emission to luminance is now using linear_rgb_to_gray() instead. |
Revision b1837d5 by Brecht Van Lommel (gsoc-2018-many-light-sampling, soc-2020-production-ready-light-tree, soc-2020-production-ready-light-tree-2) July 30, 2018, 10:03 (GMT) |
Fix CUDA build for many light sampling, still fails when running. |
Revision b3c375e by Brecht Van Lommel (gsoc-2018-many-light-sampling, soc-2020-production-ready-light-tree, soc-2020-production-ready-light-tree-2) July 30, 2018, 10:03 (GMT) |
Fix missing viewport update when toggling light BVH option. |
Revision 1fe1e74 by Erik Englesson (gsoc-2018-many-light-sampling, soc-2020-production-ready-light-tree, soc-2020-production-ready-light-tree-2) July 27, 2018, 16:19 (GMT) |
Cycles: WIP: Volumes are not using the light tree. If a shading point is inside or on the boundary of a volume then it will use the old sampling method until we have properly implemented the volume parts of the paper. Also, the PDF picking probability for volumes have now been updated properly since the PDF restructure. Tried to provide the correct shading point and normal to the MIS calculations. This part needs more work. |
Revision 6045fc4 by Erik Englesson (gsoc-2018-many-light-sampling, soc-2020-production-ready-light-tree, soc-2020-production-ready-light-tree-2) July 27, 2018, 16:18 (GMT) |
Cycles: Light tree optimization The importance metric calculations now uses the fast_cos() and fast_acos() functions. This gave a 1.4x speedup on one of the test scenes. |
Revision 00b90ed by Erik Englesson (gsoc-2018-many-light-sampling, soc-2020-production-ready-light-tree, soc-2020-production-ready-light-tree-2) July 27, 2018, 16:16 (GMT) |
Cycles: Light tree related bug fixes - Fixed bug in triangle_light_pdf_area() from PDF refactor - Early exit if picking prob is zero in tree traversal - The background index is now an index into the lights array instead of the distribution array. |
Revision beef487 by Erik Englesson (gsoc-2018-many-light-sampling, soc-2020-production-ready-light-tree, soc-2020-production-ready-light-tree-2) July 20, 2018, 12:29 (GMT) |
Cycles: Several emitters per leaf in light tree This commits makes it possible for leaf nodes in the light tree to have more than one emitter. This reduces the maximum depth of the light tree which makes the traversal of the tree faster but the sampling code is slower if a leaf with several emitters is found. Technical details: -- If cost of splitting in build is larger than the energy of the node then we create a leaf instead of splitting. -- Maximum emitters per leaf is now set to 64 -- During traversal if a leaf with several emitters is found then we sample one of these based on the importance of each emitter. This is calculated on the fly and therefore a CDF generation without dynamic allocation was implemented. - Moved the distribution id to node id lookup from light_distribution_pdf() to light_bvh_pdf(). |
Revision ff4833a by Erik Englesson (gsoc-2018-many-light-sampling, soc-2020-production-ready-light-tree, soc-2020-production-ready-light-tree-2) July 13, 2018, 11:47 (GMT) |
Cycles: Bug fixes - Stopping recursive tree traversal if negative PDFs are encountered. - accum_light_tree_contribution() now takes a scale factor as input which is passed through to accum_light_contribution - light_bvh_sample now changes randu. This is similar to the other *_sample functions. This fixed a bug where recursive traversal with no splitting gave a different result compared to just using light_sample. |
Revision 0db119a by Erik Englesson (gsoc-2018-many-light-sampling, soc-2020-production-ready-light-tree, soc-2020-production-ready-light-tree-2) July 13, 2018, 11:44 (GMT) |
Cycles: Updated SAOH with regularization factor This factor penalizes thin bounding boxes in the tree construction. |
|