-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Goal of the project is to integrate the new many-light sampling algorithm proposed by Nathan Veghdal
-
Psychopath doesn't have MIS implemented
-
Shading point in
pathvertex
can only provide point on the surface to be evaluated, but not theShadingPoint
hit before- both
DirectLightIntegrator
andPathTracer
have knowledge about the parent shading point, we just need to expose it to thePathVertex
- I am currently working on it, but it seems that I am missing a condition when assigning it so I get an assertion error right now
- both
-
Store all shading points of a single path into a memory arena within the PathTracer
-
Store last parent shading point
-
Expose the parent shading point to the
PathVertex
-
use
ShadingPoint
instead of a regular point in node evaluation -
Use parent shading point for
evaluate_pdf
both inDirectLightIntegrator
andPathTracer
-
added projected solid angle light evaluation
-
debugged edge case output from
sub_hemispherical_light_source_contribution()
when node probabilitiesp1
andp2
are of similar values with different signs which is illegal! e.g.
approx_contribution p1: -5.144703
approx contribution p2: 5.185083
total: 0.040380
p1: -127.405693
p2: 128.405701
- The bug was introduced with the solid angle eval approach
- FIX: handle an edge case where a negative 0 is returned
Light tree with hemispherical light source approximation | |
---|---|
converging 30s | |
CDF | LightTree |
converging 1min | |
Light Tree node evaluation comparison | |
---|---|
Squared distance | Hemispherical light approximation |
25spp | |
NPL-EMT mixed evaluation | |
---|---|
CDF | lightTree |
converging | |
The new hemispherical approximation produces a defect in rendering with the EMT-NPL scene. (shadow to light transition on the sphere)
-
Built an many EMT light test scene containing 50,340 EMTs
- use of LightTree reduces noise at 16spp but doesn't offer speed improvement
-
Tested
SAHPartitioner
with the current LightTree-
SAHPartitioner
does not produce correct result because it doesn't force the split for overlapping bboxes - Such behavior results with multiple EMTs being stored in a single node and makes the rendering incorrect because some lights get completely ignored.
-
Appleseed basement workshop scene | |
---|---|
CDF | LightTree |
16spp | |
Converging 1 min | |
- FIX the rendering artefact in the EMT-NPL scene
- Add reference in the code to the used article
LightTree seem to be working a bit slower than the CDF approach for small number of light sources.
- Produce many light test scenes
- many NPL light sources
- many EMT light sources
- many mixed light sources
- Cone of normals
- K-means of children vertices
- Store items within the
LightTree
nodes - Store bbox node info within the node itself
- Reduce number of variables set by
recursive_node_update()
(i.e. variables which can be set during the building time)