Regarding the last question, I would say that I would choose ray casting over rasterization where there are many reflection or shadows and they are necessary to make that part of the scene very realistic. For example, some scenes in a scientific movie might benefit from ray casting to make the audience believe what they see.
sandykzhang
How do ray tracing and rasterization compare when it comes to implementation difficulty?
Carpetfizz
@sandykzhang depends on what you want to draw. If you want a lot of shadows, reflections, etc. it would be very difficult to write a shader that can accomplish this using rasterization (although there are many workarounds that can approximate these effects).
kevkang
Ray tracing makes it easier to produce shadow effects with many objects then, since it isn't bound by the number of objects in a scene, right?
kavimehta
Does this suggest that most "live-action" disney remakes are just using raytracing as opposed to rasterization? They're all CGI, just with different techniques to make it more photo-realistic
xiaoyankang
I'm a little confused: is there a difference between ray casting and ray tracing? My understanding is that ray casting only involves primary ray, while ray tracing also involves secondary rays, is that correct?
muminovic
I came across an interesting paper that talks about Pixar's decision to use ray-tracing when making Cars: https://graphics.pixar.com/library/RayTracingCars/paper.pdf
Their primary motivation was the ability to display realistic reflections, sharp shadows, and ambient occlusion. Since the characters in the film were all cars, it was really important to develop a way to make their surfaces mimic what they look like in real life. The paper has a lot of technical details, but it's an interesting read and talks about the benefits of using ray tracing in movie production (run-time grows logarithmically with scene complexity, easy to parallelize) as well as its limitations (it's only an efficient option if the scene fits in memory, because virtual memory thrashing significantly slows down the rendering)
julialuo
For rasterization, is the 3D mesh built first and then projected to a 2D space (the image space) to be rasterized? If so, wouldn't this projection also take time? Ray tracing seems like it is doing this project implicitly by directly shooting out rays from the observer point of view.
arjunsrinivasan1997
This might be out of the scope of this course, but I was wondering what advances the new NVDIA RTX graphics cards have made in order to make real time ray tracing more feasible?
arjunsrinivasan1997
peterqiu1997
I came across this NVIDIA blog post (https://blogs.nvidia.com/blog/2018/03/19/whats-difference-between-ray-tracing-rasterization/) talking about ray tracing vs rasterization. Some takeaways: ray tracing seems to produce better quality than rasterization, but hardware today isn't fast enough for real time applications like video games, which rely more on rasterization. This partly explains why pixar (and movies in general) uses ray tracing, as they have time to render everything fully before showing audiences.
Pinbat
Here's the overview of NVIDIA's RTX process: https://devblogs.nvidia.com/nvidia-optix-ray-tracing-powered-rtx/
You can read more about NVIDIA OptiX on the links on the page, with some of them being more technical for implementation by developers.
yunchenxia
https://blogs.nvidia.com/blog/2018/03/19/whats-difference-between-ray-tracing-rasterization/
This article shows that both algorithms are computational heavy but Rasterization runs a lot faster in general that its able to delivery real time effects. On the other hand Ray tracing is better for objects such as mirrors that reflect lights or with shadows. Thus Ray tracing is much more used in movies so that they can render a scene using as much time as the producers want to create a perfect scene. But it is less used in video games that it requires real time performances.
eliot1019
[deleted]
keirp
Is it possible to instead cast rays from the light source? Maybe that would give a speedup if there are very few light sources in the scene.
dtseng
@keirp that's a really interesting idea. I'm obviously not an expert at this, but I feel that one problem with tracing it from the light source is that you'd do a bunch of redundant calculations since you don't know if the ray you're tracing will even hit any of the pixels you'd want. It might make more sense to start from the pixels so that there's a better guarantee that you're not following a useless ray.
StaffJakeHoles
@keirp It will probably be mentioned later in class but you should look into Bi-directional ray tracing which does just that. It has its uses in scenes with very complicated, low probability light paths such as glass caustics. In these situations, it is improbable that rays traced from the camera find the light bouncing along complicated paths leading to noisy renders. Bi-directional ray tracers with trace rays both from the camera and from the lights and link them in the middle.
letrangg
what does it mean by "need detailed texture"? Does it mean we can only ray-cast on objects that have detailed texture?
Regarding the last question, I would say that I would choose ray casting over rasterization where there are many reflection or shadows and they are necessary to make that part of the scene very realistic. For example, some scenes in a scientific movie might benefit from ray casting to make the audience believe what they see.
How do ray tracing and rasterization compare when it comes to implementation difficulty?
@sandykzhang depends on what you want to draw. If you want a lot of shadows, reflections, etc. it would be very difficult to write a shader that can accomplish this using rasterization (although there are many workarounds that can approximate these effects).
Ray tracing makes it easier to produce shadow effects with many objects then, since it isn't bound by the number of objects in a scene, right?
Does this suggest that most "live-action" disney remakes are just using raytracing as opposed to rasterization? They're all CGI, just with different techniques to make it more photo-realistic
I'm a little confused: is there a difference between ray casting and ray tracing? My understanding is that ray casting only involves primary ray, while ray tracing also involves secondary rays, is that correct?
I came across an interesting paper that talks about Pixar's decision to use ray-tracing when making Cars: https://graphics.pixar.com/library/RayTracingCars/paper.pdf
Their primary motivation was the ability to display realistic reflections, sharp shadows, and ambient occlusion. Since the characters in the film were all cars, it was really important to develop a way to make their surfaces mimic what they look like in real life. The paper has a lot of technical details, but it's an interesting read and talks about the benefits of using ray tracing in movie production (run-time grows logarithmically with scene complexity, easy to parallelize) as well as its limitations (it's only an efficient option if the scene fits in memory, because virtual memory thrashing significantly slows down the rendering)
For rasterization, is the 3D mesh built first and then projected to a 2D space (the image space) to be rasterized? If so, wouldn't this projection also take time? Ray tracing seems like it is doing this project implicitly by directly shooting out rays from the observer point of view.
This might be out of the scope of this course, but I was wondering what advances the new NVDIA RTX graphics cards have made in order to make real time ray tracing more feasible?
I came across this NVIDIA blog post (https://blogs.nvidia.com/blog/2018/03/19/whats-difference-between-ray-tracing-rasterization/) talking about ray tracing vs rasterization. Some takeaways: ray tracing seems to produce better quality than rasterization, but hardware today isn't fast enough for real time applications like video games, which rely more on rasterization. This partly explains why pixar (and movies in general) uses ray tracing, as they have time to render everything fully before showing audiences.
Here's the overview of NVIDIA's RTX process: https://devblogs.nvidia.com/nvidia-optix-ray-tracing-powered-rtx/
You can read more about NVIDIA OptiX on the links on the page, with some of them being more technical for implementation by developers.
https://blogs.nvidia.com/blog/2018/03/19/whats-difference-between-ray-tracing-rasterization/ This article shows that both algorithms are computational heavy but Rasterization runs a lot faster in general that its able to delivery real time effects. On the other hand Ray tracing is better for objects such as mirrors that reflect lights or with shadows. Thus Ray tracing is much more used in movies so that they can render a scene using as much time as the producers want to create a perfect scene. But it is less used in video games that it requires real time performances.
[deleted]
Is it possible to instead cast rays from the light source? Maybe that would give a speedup if there are very few light sources in the scene.
@keirp that's a really interesting idea. I'm obviously not an expert at this, but I feel that one problem with tracing it from the light source is that you'd do a bunch of redundant calculations since you don't know if the ray you're tracing will even hit any of the pixels you'd want. It might make more sense to start from the pixels so that there's a better guarantee that you're not following a useless ray.
@keirp It will probably be mentioned later in class but you should look into Bi-directional ray tracing which does just that. It has its uses in scenes with very complicated, low probability light paths such as glass caustics. In these situations, it is improbable that rays traced from the camera find the light bouncing along complicated paths leading to noisy renders. Bi-directional ray tracers with trace rays both from the camera and from the lights and link them in the middle.
what does it mean by "need detailed texture"? Does it mean we can only ray-cast on objects that have detailed texture?