Blender Git Commits

Blender Git "soc-2020-production-ready-light-tree-2" branch commits.

Page: 2 / 5

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.
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.
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.
July 30, 2018, 10:03 (GMT)
Fix CUDA build for many light sampling, still fails when running.
July 30, 2018, 10:03 (GMT)
Fix missing viewport update when toggling light BVH option.
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.
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.
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.
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().
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.
July 13, 2018, 11:44 (GMT)
Cycles: Updated SAOH with regularization factor

This factor penalizes thin bounding boxes in
the tree construction.
July 13, 2018, 11:41 (GMT)
Cycles: Updated cone aggregation and measure

The paper provided a way to merge two bounding
cones and an updated version of the cone
measure.
July 13, 2018, 11:33 (GMT)
Cycles: Updated the importance metric

The new paper provides an updated importance
metric which is now implemented. Also, a bug
in the index used for background lights in
the MIS calculations have been fixed.

Technical details:
- The new importance metric depends on the
normal at the shading point. The MIS
calculations have been changed
accordingly.

- The uncertainty angle was described in
the paper and is now implemented.

- In the implementation details section
of the paper they mention that they
limit the distance if splitting is
disabled. This is implemented too.
July 13, 2018, 11:30 (GMT)
Cycles: Updated rescaling of random numbers

The new paper describes how they rescale the
random numbers in the tree traversal. We do
the same now.
July 13, 2018, 11:21 (GMT)
Cycles: Updated the split heuristic

The split heuristic is now based on the
new paper instead of the abstract/slides
from 2017.
July 6, 2018, 07:20 (GMT)
Cycles: First iteration on split traversal

This makes it possible to sample and evaluate several
lights in a single tree traversal. Should sample highly
specular lights better too. Can only be used in branched
path tracing.

This commit contains the following:
* GUI for setting the splitting threshold
* Recursive split traversal
- Split method based on solid angle and BSDF peak
- At leafs the path radiance is accumulated to L
- Have created a simplified GGX eval that is not
currently being used.
* Refactor of common code

This is in development.
June 29, 2018, 14:25 (GMT)
Fix: Merge conflict with background resolution
June 29, 2018, 09:02 (GMT)
Merge branch 'master' into gsoc-2018-many-light-sampling
June 29, 2018, 08:34 (GMT)
Cycles: Background lights works with light tree

Added support for background lights when using the
light tree, fixed minor bugs related to disabled lights
and trying to build the light tree without any lights.

Now samples either the light tree, distant lights or
background lights based on their energy.
June 22, 2018, 06:07 (GMT)
Cycles: Support for distant lights

Distant lights are not put in the light
BVH and are treated as a special case.
Either we sample a light from the BVH
or choose one of the distant lights.
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021