## Bidirectional LOD

Practical and theoretical implementation discussion.
Paleos
Posts: 16
Joined: Tue Apr 08, 2014 1:32 am

### Bidirectional LOD

I would like to find out how to estimate the footprint of a path in screen space that originates from the light source.
The reason i am interested in this is so that I can implement micropolygon(in spirit of psychopath) bidirectional path tracing.
I am aware that it's a nontrivial thing to do.

The point of this thread is for people to suggest ways to solve this problem.
Last edited by Paleos on Sat Feb 21, 2015 10:01 pm, edited 3 times in total.

Dietger
Posts: 50
Joined: Tue Nov 29, 2011 10:33 am

### Re: Light Ray Differentials

Unfortunately you cannot easily use some trivial extension of ray differentials for bidirectional level of detail. As an example, imagine some object A close to a light source. The required tessellation resolution of object A for light rays passing by should not (only) depend on their screen space footprint on A, but also on their screen space footprint on some other object B that will be hit if object A is missed. If this object B is very close to the viewer, the resolution of the shadow cast by object A on B needs to have high resolution too. Therefore, object A needs to be finely tessellated. However, if object B is far away from the viewer the shadow does not require high resolution so object A can be coarsely tessellated. So in a way you need to already know where you are going to end up in order to determine the required tessellation level for ray traversal, something you actually know for next event estimation in path tracing but not for light paths. And this is just direct lighting. For full bidirectional path tracing the problem becomes even more complicated...

Paleos
Posts: 16
Joined: Tue Apr 08, 2014 1:32 am

### Re: Light Ray Differentials

First of all a LOD system like psychopath involves testing against the bounding box before intersecting the micropolygons. so one way of approximating the screen space footprint in bidirectional path tracing would be to first trace an approximate path from the light source treating the patch bounding box like the actual geometry, then tracing the actual path with ray differentials from the camera and then at some point use the light source path to guide the path.