Loading video...

Video Failed to Load

Go Home

Visualizing light paths differentials (actually, ray footprint / spread in this case). These are used in path tracing to compute texture filtering, among other things... and are too easy to botch in corner cases, resulting in bugs and performance issues that are hard to pin back to the cause....

39,160 views • 2 years ago •via X (Twitter)

9 Comments

Rhys's profile picture
Rhys2 years ago

This is so cool Max.

Max Liani's profile picture
Max Liani2 years ago

🙏 I am trying to get back in the rhythm.

SimonA's profile picture
SimonA2 years ago

Great to see you are back on workbench 😁

𝘛𝘩𝘪𝘣𝘢𝘶𝘭𝘵 ➡️ 🦋 | 🐘's profile picture
𝘛𝘩𝘪𝘣𝘢𝘶𝘭𝘵 ➡️ 🦋 | 🐘2 years ago

Quick question about the ray "replay": do you actually store the "hit tree" for all pixels or do you re-compute it when requested ? If you store it, I'd be interested to see how large it is in memory!

Max Liani's profile picture
Max Liani2 years ago

I recompute the exact same paths of the selected pixel with the instrumented version of the integrator kernel. Doing it for the whole image would be GBs and likely wouldn’t fit in memory. The way I do it I can store abundant information per path vertex without much to worry.

Mauricio's profile picture
Mauricio2 years ago

Ship it.

IB's profile picture
IB2 years ago

How do you account for the BRDF and surface roughness when computing spread?

Max Liani's profile picture
Max Liani2 years ago

Integrators tend to be implemented to sample solid angles. The solid angle of a cone half angle is: Ω = 2 π(1-cos θ) The probability density of sampling a BRDF is to a factor reciprocal to the sampled solid angle. You probably need to clamp the pdf for values lower than 1. This is an approximation, but a reasonable starting point.

kane NVC's profile picture
kane NVC2 years ago

Cool and practical work, the elusive lighting makes it concrete

Related Videos