As the submission hit the front page the site went down and I had to kill the link to prepare the server for a second (I couldn't even SSH in). Spamming wasn't my intention.
I could be off the mark here but I'm fairly sure the world isn't ray traced. Ray tracing involves projecting light from the "eye" towards the scene, whereas in real life the light is being projected from the scene towards the eye.
By the way I was able to read the article. One thing I'd like to point out is that ray tracing lends itself better to parallelization because you can calculate each pixel's color independently of the others. That could be a major plus in the future that helps it win over scanline rendering.
>Ray tracing involves projecting light from the "eye" towards the scene, whereas in real life the light is being projected from the scene towards the eye.
I can't write a decent reply to this without having terrifying flashbacks of late night cramming for third year physics exams. But basically, raytracing's idea that "if it didn't hit your eye, who cares" is somewhat backed up by theory =)
principle of reversibility of light: "The principle that if a beam of light is reflected back on itself, it will traverse the same path or paths as it did before reversal.
The principle of reversibility states that light will follow exactly the same path if its direction of travel is reversed."
I was thinking more along the lines that without the eye, the idea of light being projected in any direction at all has no meaning =) And then we could get started on the concepts of time and ordering.
But since I'm no longer a third year physicist contemplating the nature of existence, I just simulate light statistically. And sometimes that means doing things like "Photon Mapping", which is precisely raytracing, but the kind of raytracing you get when you know how to optimize an algorithm implemented as a computer program.
Somewhere I heard that someone (either the ancient Greeks or Goethe) had conjectured or believed that vision actually was the result of rays projected from the eye.
Perhaps it was just an idea that's time had come too soon.
Ray tracing is actually the exact opposite of the way light in the real world works. In the real world light starts at light sources, bounces off objects, and ends in your eye. Ray tracing starts at the "eye". The one thing that ray tracing does well is model reflections, but as it turns out that's not that hard of a problem and easily approximated with many other techniques. More so, it's not even remotely the dominant problem in photorealistic rendering, as reflections are often not the dominant part of any particular scene. In some ways the radiosity technique has a better claim to mimicing "the real world" but that's sort of beside the point, any rendering model is going to be an empirical approximation and not an attempt at photon simulation.
Hi, ex-visual effects guy here. You didn't really convince me that these are "myths", and get a few things wrong in the process. I'll hit on a few highlights.
"Ray Tracing, which has major issues with memory and cache"
Memory is impossible to make generalizations about with rendering but there are situations where ray tracing can use far less memory than scanline.
Consider if you have a NURBS surface you'd like to render. With a raytracer, you can solve the ray to surface directly. With a scanline renderer, you must tesselate that surface. Or consider a simple sphere. The memory used to define a sphere can be 4 floats -- xyz position and radius. Solving a ray-sphere intersection is as simple as it gets. With a scanline renderer...it's a lot more. And say you have a velocity and want to motion blur it. Raytracer: 7 floats, stochastic sample the rays in time. Scanline render... it's even more RAM.
Renderman is not a pure scanline renderer anymore. It has had raytracing for a long time.
"Almost all animated movies are rendered using RenderMan"
No, all of Pixars are. That's not "almost all". Dreamworks uses a proprietary renderer. Blue Sky uses a pure raytracer for their movies (Ice Age 1,2,3, Robots, Horton Hears a Who). I'm sure others use Mental Ray.
"Without going into the technical details..."
If you're interested in the graphics space, you should really learn a lot more about how and when raytracing is useful and efficient. I've used pure raytracers and pure scanline renderers in production, I by far preferred the pure raytracer. A compromise between the two is best in general.
19 comments
[ 5.3 ms ] story [ 195 ms ] threadMy favorite FACT (not myth) about raytracing:
the real world is ray-traced.
By the way I was able to read the article. One thing I'd like to point out is that ray tracing lends itself better to parallelization because you can calculate each pixel's color independently of the others. That could be a major plus in the future that helps it win over scanline rendering.
I can't write a decent reply to this without having terrifying flashbacks of late night cramming for third year physics exams. But basically, raytracing's idea that "if it didn't hit your eye, who cares" is somewhat backed up by theory =)
principle of reversibility of light: "The principle that if a beam of light is reflected back on itself, it will traverse the same path or paths as it did before reversal. The principle of reversibility states that light will follow exactly the same path if its direction of travel is reversed."
But since I'm no longer a third year physicist contemplating the nature of existence, I just simulate light statistically. And sometimes that means doing things like "Photon Mapping", which is precisely raytracing, but the kind of raytracing you get when you know how to optimize an algorithm implemented as a computer program.
http://en.wikipedia.org/wiki/Double-slit_experiment#Delayed_...
http://en.wikipedia.org/wiki/Interpretations_of_quantum_mech...
Perhaps it was just an idea that's time had come too soon.
Do you have some example renderings of reflection techniques that look as good as ray tracing in complex scenery?
For example, take a look at these renders:
http://hof.povray.org/images/ChristmasBaubles.jpg
http://hof.povray.org/glasses.html
Do you think these methods of approximation could reach that kind of quality?
btw, why no mentions of other rendering approaches ? Stochastic MLT, Frameless ? Raytracing seems a bit oldfashioned to me.
"Ray Tracing, which has major issues with memory and cache"
Memory is impossible to make generalizations about with rendering but there are situations where ray tracing can use far less memory than scanline.
Consider if you have a NURBS surface you'd like to render. With a raytracer, you can solve the ray to surface directly. With a scanline renderer, you must tesselate that surface. Or consider a simple sphere. The memory used to define a sphere can be 4 floats -- xyz position and radius. Solving a ray-sphere intersection is as simple as it gets. With a scanline renderer...it's a lot more. And say you have a velocity and want to motion blur it. Raytracer: 7 floats, stochastic sample the rays in time. Scanline render... it's even more RAM.
Renderman is not a pure scanline renderer anymore. It has had raytracing for a long time.
"Almost all animated movies are rendered using RenderMan"
No, all of Pixars are. That's not "almost all". Dreamworks uses a proprietary renderer. Blue Sky uses a pure raytracer for their movies (Ice Age 1,2,3, Robots, Horton Hears a Who). I'm sure others use Mental Ray.
"Without going into the technical details..."
If you're interested in the graphics space, you should really learn a lot more about how and when raytracing is useful and efficient. I've used pure raytracers and pure scanline renderers in production, I by far preferred the pure raytracer. A compromise between the two is best in general.