TU Wien Rendering #38 - Awesome Rendering Papers from 2013-2015

Survey of rendering papers from 1986 to 2015, covering path-space editing, Disney's residual ratio tracking for participating media, spectral sampling improvements, gradient-domain path tracing, and efficient rendering of massive granular geometry like sand.
Questions this video answers
June 5, 2015
Residual ratio tracking by Jan Novak and colleagues at Disney; a recent Disney paper on rendering sand-grain geometry (unnamed here).
HERO wavelength spectro sampling by Alexander Wilke (former TU Wien PhD student).
25 seconds to render per HD frame.
Chapters
Path space manipulation. This is again from the kit, guys. This is a wonderful tool. Now, what happens if the artist would create a scene that he really likes, but there are some artifacts or some small effects that he would like to get rid of? What do you have to do? Well, obviously you have to change the physical parameters because this is what physical reality would look like. But still, you could say that if you take a look at the left image, you don't really like the reflections on the wall behind, or you don't like the incoming direction of the sunlight, or maybe you don't like the reflection of the car in the mirror. So, for instance, for the mirror, what if we could pretend that the normal of the mirror wasn't what it is, but it would have been something different? And this is exactly what this work gives you. On the right, you can see a side by side comparison of the original image and the manipulated scene. It looks much better. And you don't have to change a single thing in scene. You just manipulate and you just bend the sum of the light paths there are in the scene. Imagine that you don't like the caustics on the bunny and you can just basically grab and pull the thing onto the face of the bunny. It is really, really amazing. This work may be one of the reasons, one of many, if I may add, for Pixar to change from their race renderer that has a long history of more than 25 years of movies and wonderful works. And now they have changed to path tracing. They use global illumination in their newest movies. And imagine how powerful this tool can be in the hands of a professional artist, let alone a team of professional artists. We have some amazing times ahead in global illumination research. Residual ratio tracking. This is a Disney paper. This is basically about how to render heterogeneous participating media. What does it mean? Heterogeneous means that either the density or the scattering or absorption properties of the medium are changing in space. They are not uniform. This technique helps you to render this kind of light transport much more quickly than previous methods. It builds on woodcock tracking, it improves woodcock tracking, but it is basically the industry standard way of rendering heterogeneous materials. And what it does essentially is, is a mathematically really appealing way of probabilistically treating the scene as if it was homogeneous instead. So trying to reduce the problem to a simpler problem that we can solve easily and doing some probabilistic tricks over this classification. And this gives you an unbiased estimator for the heterogeneous participating medium. And this Piece of work is an improvement even over that. This was done by Jan Novak and colleagues at Disney in this work by Alexander Wilke, who by the way, used to be a PhD student here at our university. And he graduated here, now he moved to the Czech Republic and he's doing wonderful work. We discussed earlier that if you would like to do fully spectral rendering, then you take a random sample in the spectrum of visible wavelengths. And he came up with a trick that if you do this in a way that is just a bit smarter than what we do naively, then you can get results like this. You using the same number of samples, you can see that the noise is much more representative to the actual image that we're rendering. Let's take a look at another example. How about this? This is the naive spectral rendering and his technique called the HERO wavelength spectro sampling. Amazing piece of work. You should definitely, definitely check it out. I promised to you that we would start out with algorithms from 1986 up to until last week. So this L appeared last week. This is the gradient domain path tracing algorithm. But I will also use a figure from the gradient domain Metropolis paper for better understandability. So the key idea is that we are not seeking the light anymore. We are seeking changes. Now. What does it mean? Take a look at the image on the upper left. It says that we are basically interested in this small region that is a hard shadow boundary. And below it the image says that. Let's say that this, whatever function that we're computing is zero in the shadow boundary and one outside. You can intuitively imagine that this means that, yes, we have no radiance in the shadow boundary and we have a really bright region outside. What would the regular Metropolis sampler do? Well, it is a Markov chain that in its stationary distribution would like to do optimal importance sampling. What does it mean? It means that the brighter regions would be sampled more so you can see the red dots in there. We would sample this region that is one all the time, and we would never put any sample in the zero. But what if we are not seeking for the light? We are seeking for changes. So imagine that we are interested in putting samples at the shadow boundary because we know that there is some change happening in there, but right and from the left to it there's absolutely no change. So if I get enough information only of the shadow boundary, then I can reconstruct the whole image with a technique that is called Poisson image reconstruction. This means intuitively something like reconstructing a function from its gradients. You can imagine it in 1D as something like you have a 1D function, you are interested in the function, but the only thing you have is how the function changes. You have derivatives, and from these derivatives you would like to reconstruct the function. This is exactly what the algorithm does and it's an amazing idea. Love it. You can see that it significantly outperforms path tracing with a much lesser number of samples. Now let's note that because of the Poisson reconstruction step, the 5KSPP is compared to the 2K SPP. This is probably because it is more expensive to draw samples with this gradient domain path tracing. But you can see that this smart algorithm is really worth the additional time. Another great paper from last week from our friends at Disney. What if we would have a scene where we build a castle out of sand? And what if we are crazy enough that we would like to render every small grain of sand that is in the castle? That would mean billions upon billions of objects. That's a lot of intersections. That's a lot of problems, even if you have some kind of spatial acceleration structure. So this would take forever and a day. And they came up with a really cool solution that can give you these beautiful, beautiful results at least an order of magnitude faster. I also promised to you that I would refer you to implementations of many of the discussed algorithms. So this is a huge list. Some of them are implemented only on the cpu. Some of them have also GPU implementations. So take a look and play with them. It's lots of fun. And if you're watching this lecture on the Internet, then don't worry about the links in the video description box. I provide a link to these slides and you can just click away at them. And there are some must see videos, some awesome slow motion fracture tests with slg. Well, smashing virtual objects is a lot of fun. Slow motion videos are a lot of fun. So this absolutely has to be a crazy good video. And it really is. And the remarkable thing about this is that the whole thing took 25 seconds to render per HD frame. I've also uploaded a bonus unit on how to use together Blender and Lux Render. Basically this means that you model something in Blender and you would like to export this scene and render it in Lux Render. This is going to be useful in the next assignment.










