Blender Git Commits

Blender Git "gsoc-2018-many-light-sampling" branch commits.

Page: 2 / 5

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.
June 22, 2018, 06:05 (GMT)
Cycles: New design for PDF computations

Now there are functions to calculate the picking
probability for a given lamp/triangle. Fixed
a bug that lamps was before triangles in the
distribution array.
June 21, 2018, 09:33 (GMT)
Cleanup: Replaced space tabs with real tabs
June 15, 2018, 10:27 (GMT)
Cleanup: Refactored code

Merged the device_update_tree_distribution()
and device_update_distribution() functions.
June 15, 2018, 10:21 (GMT)
Cycles: Area lights support and better energy estimation

The light BVH now supports area lights. Also, the total emitted
energy of each light is now calculated by integrating luminance
over the sphere of directions and area.
June 8, 2018, 13:21 (GMT)
Merge branch 'master' into gsoc-2018-many-light-sampling
June 8, 2018, 11:51 (GMT)
Cycles: Added a checkbox in Blender's GUI to turn
on/off the new light sampling method.

The checkbox can be found at the bottom of the sampling
section in the Render tab. The method is not used by
default.
June 8, 2018, 11:51 (GMT)
Cycles: Implemented the SAOH splitting method

Previously the light bvh construction code used a simple method
to split a node into two child nodes based only on the bounding
box of the node. Now, it splits a node into two by looking at
the energy and direction of the lights inside the nodes and the
area of their bounding boxes.

Technical changes:
- Implemented orientation BVH build
- Added energy to each node based on emission
- Updated PDF calculations for lights when using the light BVH
June 4, 2018, 09:10 (GMT)
Fix: Minimal compilation error fix
June 1, 2018, 14:12 (GMT)
Added simple construction and sampling code for light BVH

The light BVH is created on the host out of all emissive
triangles and all lights in the scene. The nodes of the
light BVH is then copied to the device where it is used
when sampling lights. When a light is asked for it
traverses the light BVH randomly to find a single light.

This is still very much in development.
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021