正在加载视频...

视频加载失败

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 次观看 • 2 年前 •via X (Twitter)

9 条评论

Rhys 的头像
Rhys2 年前

This is so cool Max.

Max Liani 的头像
Max Liani2 年前

🙏 I am trying to get back in the rhythm.

SimonA 的头像
SimonA2 年前

Great to see you are back on workbench 😁

𝘛𝘩𝘪𝘣𝘢𝘶𝘭𝘵 ➡️ 🦋 | 🐘 的头像
𝘛𝘩𝘪𝘣𝘢𝘶𝘭𝘵 ➡️ 🦋 | 🐘2 年前

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 的头像
Max Liani2 年前

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 的头像
Mauricio2 年前

Ship it.

IB 的头像
IB2 年前

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

Max Liani 的头像
Max Liani2 年前

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 的头像
kane NVC2 年前

Cool and practical work, the elusive lighting makes it concrete

相关视频