

Disney's Practical Guide to Path Tracing [video] - adamnemecek
https://www.youtube.com/watch?v=frLwRLS_ZR0

======
solidangle
The video was made for this article:

[http://www.disneyanimation.com/technology/innovations/hyperi...](http://www.disneyanimation.com/technology/innovations/hyperion)

If you want to learn more about rendering then here is some more info:

Stanford CS348b course notes:

[http://candela.stanford.edu/cs348b/doku.php](http://candela.stanford.edu/cs348b/doku.php)

Cornell CS6630 course notes:

[http://www.cs.cornell.edu/Courses/cs6630/2012sp/schedule.stm](http://www.cs.cornell.edu/Courses/cs6630/2012sp/schedule.stm)

Eric Veach's Phd thesis:

[http://graphics.stanford.edu/papers/veach_thesis/](http://graphics.stanford.edu/papers/veach_thesis/)

Physically Based Rendering: From Theory to Implementation by Matt Pharr, Greg
Humphreys and Wenzel Jakob (book and open source implementation of a state of
the art renderer):

[http://pbrt.org/](http://pbrt.org/)

~~~
falcolas
+1 on PBRT - great textbook, and a full program to boot.

Though they don't use the batching method outlined in the video - it would be
interesting to see PBRT modified to do it and compare the resulting efficiency
in rendering.

[https://github.com/mmp/pbrt-v3/](https://github.com/mmp/pbrt-v3/)

~~~
berkut
While batching (and reordering) can have a benefit overall for rendering, it
can have a significant (depending on how thoroughly you do it) overhead, and
Disney are primarily doing it because they use Ptex to do texturing, instead
of the more conventional and more widely used UDIM texture atlasing method for
assigning textures to meshes.

Ptex really chokes with non-coherant texture accesses (partly due to the
anisotropic filtering method it uses) in terms of thread scalability, so
Disney have gone to great lengths to get around this issue. Doing such
accurate texture filtering (the same goes for standard UV EWA filtering) is
technically better, but is expensive, especially in a path-tracing context,
where the whole point is to amortise the cost of shading over all the rays by
making each intersection / shading calculation as cheap as possible.

From what I hear there are big downsides to this current implementation: the
streaming of batches is pretty much off-line, so time till "first pixel" is
significant, and thus you don't get interactive rendering functionality.

~~~
falcolas
Awesome information, thank you very much!

------
AndrewKemendo
Fabulous.

This reminds me very much of one of my favorite Disney videos that I showed my
daughter long ago. It's this clip of four very talented cell animators out
practicing their Art:

[https://www.youtube.com/watch?v=9JK9uQNBDxQ](https://www.youtube.com/watch?v=9JK9uQNBDxQ)

The whole thing is whimsical while also being very educating. Really glad that
Disney is keeping this kind of stuff up.

~~~
altrego99
I actually found it disappointing, compared to some other similar Disney
material I've seen earlier. It is perhaps too simple.

Certain things are so grossly oversimplified, they are misleading.

For example, how does sorting rays following similar direction help? The
history book analogy is appalling. It might give the misguided interpretation
to a kid that it is always better to sort items - e.g. before summing a few
numbers, may be sorting them is a good idea, or before map operations may be
sorting them will ease the task for a computer, etc.

~~~
davvid
_how does sorting rays following similar direction help?_

They're probably alluding to Disney's Hyperion renderer[1]. Sorting rays helps
with cache coherency.

[1] [https://disney-
animation.s3.amazonaws.com/uploads/production...](https://disney-
animation.s3.amazonaws.com/uploads/production/publication_asset/70/asset/Sorted_Deferred_Shading_For_Production_Path_Tracing.pdf)

~~~
solidangle
Yeah, I was a bit disappointed that they started focusing on their own
renderer instead of just explaining more of the basics of path tracing. Note
that it isn't necessary at all to sort rays, although it can make things
faster if done correctly. Also note that Disney isn't the first to consider
sorting rays and tracing them at the same time, similar research was done in
the 90s.

------
billbail
For optimised ray tracing you don't beam the light from the camera as that has
the same chance to bounce to the sun through indirect illumination as a ray
from the sun has if it is going to bounce to the camera.

What they are saying here is wrong or rather extremely simplified for a
younger audience.

~~~
burnte
I was wondering that. I don't have anything to do with 3D graphics, but that
had occurred to me. What method do they use to ensure only the rays that have
the camera and sun as end points are rendered?

~~~
Tuxer
Bidirectional path tracing. You send rays from the sun, rays from the camera,
and try to connect them. The ones that connect are the ones that get computed
for illumination.

~~~
FrankenPC
How is that even possible? The beam incidence angular calculation (and multi
path dispersion) creates insane complexity that must be computed on the fly to
even make sense.

For instance: a beam hits some material and needs to reflect or worse, pass
through via transparency. Another issue: If we are calculating on a per pixel
basis, that means bundling multiple paths together to figure out what the
weighted return will look like. How can this all be computed with any kind of
efficiency without cheating?

~~~
dlubarov
Bidirectional path tracing doesn't do anything clever to "try to connect"
paths from light sources and cameras. The approach is just

\- Trace random paths from light sources until they terminate (usually decided
with Russian roulette).

\- Trace random paths from the camera (usually N per pixel, or you can use
more paths in noisy areas) until they terminate.

\- Try to connect each point in a camera path with each point in a light path,
using a simple line test. If it succeeds, that color is added to the pixel
from which the camera path originated.

At least that's my understanding; I've only implemented simpler algorithms and
read a bit about bidirectional path tracing.

> If we are calculating on a per pixel basis, that means bundling multiple
> paths together to figure out what the weighted return will look like. How
> can this all be computed with any kind of efficiency without cheating?

Right, we still need to consider many paths per pixel to get a high quality
image. But it converges faster than most other Monte Carlo techniques.

------
bhouston
Source for this video with more information:

[http://www.disneyanimation.com/technology/innovations/hyperi...](http://www.disneyanimation.com/technology/innovations/hyperion)

------
ericjang
Great video. I think this should be shown at the beginning of every
introductory computer graphics course.

For a nice overview of Disney's proprietary Hyperion renderer that implements
this light bundling technique (and a _whole_ lot more), see :
[http://www.fxguide.com/featured/disneys-new-production-
rende...](http://www.fxguide.com/featured/disneys-new-production-renderer-
hyperion-yes-disney/)

------
amelius
I'm wondering what the target audience for that clip was.

------
rndn
Awesome. It would be great if Disney/Pixar would make more educational videos
like this one.

Off-topic question: Why is this video unlisted?

~~~
kuschku
Disney actually has hundreds of these videos – they are just all unlisted.

Take a look at this site to see their papers and videos:
[http://www.disneyanimation.com/technology/publications](http://www.disneyanimation.com/technology/publications)

------
gillianseed
Good technical explanation, but why on earth not use a 3D rendition rather
than this incredibly flat 2D rendition ?

~~~
mdanger007
Probably because it was rendered in AfterEffects, which is a quick and easy
way to make animations.

------
forrestthewoods
Disney's global illumination tech is spectacular. The quality level since
Monster's University is just leaps and bounds better than everything before
it. Well, technically their short Partysaurus Rex was it's debut. But
Monster's University was the first feature length.

~~~
darkpore
Pixar and Disney are different studios...

The global illumination tech used on monsters university was just standard
path tracing with physically-plausible sharers - the first time pixar had used
that instead of radiosity caching. Other studios have been using path tracing
for years before - pixars lighters are very good however, so the results are
very good.

