Blender Git Commit Log
Git Commits -> Revision beef487
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(). |
Commit Details:
Full Hash: beef4874d330776d825c666ad21809c3b9fd0bcc
Parent Commit: ff4833a
Lines Changed: +242, -69
8 Modified Paths:
/intern/cycles/kernel/kernel_light.h (+104, -27) (Diff)
/intern/cycles/kernel/kernel_path_surface.h (+55, -24) (Diff)
/intern/cycles/kernel/kernel_textures.h (+2, -0) (Diff)
/intern/cycles/render/light.cpp (+68, -7) (Diff)
/intern/cycles/render/light_tree.cpp (+3, -6) (Diff)
/intern/cycles/render/light_tree.h (+6, -5) (Diff)
/intern/cycles/render/scene.cpp (+2, -0) (Diff)
/intern/cycles/render/scene.h (+2, -0) (Diff)
/intern/cycles/kernel/kernel_path_surface.h (+55, -24) (Diff)
/intern/cycles/kernel/kernel_textures.h (+2, -0) (Diff)
/intern/cycles/render/light.cpp (+68, -7) (Diff)
/intern/cycles/render/light_tree.cpp (+3, -6) (Diff)
/intern/cycles/render/light_tree.h (+6, -5) (Diff)
/intern/cycles/render/scene.cpp (+2, -0) (Diff)
/intern/cycles/render/scene.h (+2, -0) (Diff)