don't use russian roulette when backwards paths are involved
keep track of middle ratio
Make Sensor.SampleRay() return a pdf value
implement 0, 1 for pathtracer
Relax restrictions on Sensor.ComputeWePdfFromPoint()
implement addvertexqs for pathtracer
Implement ShapeSet.ComputePdf()
Add Light.ComputeLeSpatialPdf() method and implement for DiffuseAreaLight
Return surface information from Light.SampleLeFromPoint()
implement light spatial qs
implement directional
Make Light.SampleRay() return a pdf value
keep track of pdflight
Make Light.SampleSurface() return a pdf value
keep track of pdf spatial/directional
Implement Sensor.ComputeWeDirectionalPdf()
implement vertexqs
Implement Sensor.ComputeWeSpatialPdf()
Return surface information from Sensor.SamplePixelPositionAndWeFromPoint()
implement sensor