Blender Git Commit Log

Git Commits -> Revision cd6c9e9

Revision cd6c9e9 by Brecht Van Lommel (master)
September 12, 2017, 10:45 (GMT)
Cycles: improve sample stratification on area lights for path tracing.

Previously we used a 1D sequence to select a light, and another 2D sequence
to sample a point on the light. For multiple lights this meant each light
would get a random subset of a 2D stratified sequence, which is not
guaranteed to be stratified anymore.

Now we use only a 2D sequence, split into segments along the X axis, one for
each light. The samples that fall within a segment then each are a stratified
sequence, at least in the limit. So for example for two lights, we split up
the unit square into two segments [0,0.5[ x [0,1[ and [0.5,1[ x [0,1[.

This doesn't make much difference in most scenes, mainly helps if you have a
few large area lights or some types of HDR backgrounds.

Commit Details:

Full Hash: cd6c9e9e5f4726ab0b0b2c58249f98dab5c5d267
Parent Commit: d454a44
Lines Changed: +29, -28

5 Modified Paths:

/intern/cycles/kernel/kernel_light.h (+17, -9) (Diff)
/intern/cycles/kernel/kernel_path_surface.h (+4, -7) (Diff)
/intern/cycles/kernel/kernel_path_volume.h (+6, -9) (Diff)
/intern/cycles/kernel/kernel_types.h (+1, -1) (Diff)
/intern/cycles/kernel/split/kernel_direct_lighting.h (+1, -2) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021