Blender Git Loki
Git Commits -> Revision c3308ca
Revision c3308ca by Brecht Van Lommel (cycles-x) March 19, 2021, 15:58 (GMT) |
Cycles: add back random walk subsurface scattering * shade_surface now samples either a BSDF or BSSRDF to continue the path, and depending on that will continue with intersect_closest or intersect_subsurface. * Then intersect_subsurface kernels does ray-tracing and scattering below the surface. If an exit point is found, it returns to shade_surface. * Since shade_surface is called twice, direct lighting is evaluated both for the BSSRDF and any (typically specular) BSDF, since only doing either is quite noisy. * Note most files use Christensen-Burley so will render differently. * subsurface_random_walk should be split up into smaller functions, but I've kept it like the current implementation now, will split it up in a later commit. |
Commit Details:
Full Hash: c3308ca378e2c1bda3b030274590010a47b51ded
Parent Commit: 480f2a8
Lines Changed: +689, -903
1 Added Path:
/intern/cycles/kernel/integrator/integrator_subsurface.h (+512, -0) (View)
1 Deleted Path:
/intern/cycles/kernel/kernel_path_subsurface.h (+0, -141)
12 Modified Paths:
/intern/cycles/integrator/path_trace_work_gpu.cpp (+7, -8) (Diff)
/intern/cycles/kernel/closure/bsdf_principled_diffuse.h (+2, -0) (Diff)
/intern/cycles/kernel/closure/bsdf_principled_sheen.h (+2, -0) (Diff)
/intern/cycles/kernel/closure/volume.h (+48, -0) (Diff)
/intern/cycles/kernel/CMakeLists.txt (+1, -1) (Diff)
/intern/cycles/kernel/integrator/integrator_intersect_closest.h (+1, -1) (Diff)
/intern/cycles/kernel/integrator/integrator_intersect_subsurface.h (+24, -35) (Diff)
/intern/cycles/kernel/integrator/integrator_shade_surface.h (+41, -32) (Diff)
/intern/cycles/kernel/integrator/integrator_state.h (+4, -2) (Diff)
/intern/cycles/kernel/kernel_shader.h (+28, -121) (Diff)
/intern/cycles/kernel/kernel_subsurface.h (+0, -497) (Diff)
/intern/cycles/kernel/kernel_volume.h (+19, -65) (Diff)
/intern/cycles/kernel/closure/bsdf_principled_diffuse.h (+2, -0) (Diff)
/intern/cycles/kernel/closure/bsdf_principled_sheen.h (+2, -0) (Diff)
/intern/cycles/kernel/closure/volume.h (+48, -0) (Diff)
/intern/cycles/kernel/CMakeLists.txt (+1, -1) (Diff)
/intern/cycles/kernel/integrator/integrator_intersect_closest.h (+1, -1) (Diff)
/intern/cycles/kernel/integrator/integrator_intersect_subsurface.h (+24, -35) (Diff)
/intern/cycles/kernel/integrator/integrator_shade_surface.h (+41, -32) (Diff)
/intern/cycles/kernel/integrator/integrator_state.h (+4, -2) (Diff)
/intern/cycles/kernel/kernel_shader.h (+28, -121) (Diff)
/intern/cycles/kernel/kernel_subsurface.h (+0, -497) (Diff)
/intern/cycles/kernel/kernel_volume.h (+19, -65) (Diff)