7 ms·
If you can do ray tracing fast, you can do rasterization faster. And so if the ray tracing is not critical, you're wasting time computing it.
by Retra 8y ago
If you can do ray tracing fast, you can do rasterization faster. And so if the ray tracing is not critical, you're wasting time computing it.
- elihu 8y agoI don't think it's a waste of time. Ray tracing puts you on the path to real-time global illumination, which I think everyone is going to want if it's in reach. It also makes a lot of non-graphics tasks easier, like determining line-of-sight visibility between arbitrary points in the scene or doing collision detection. Besides, computational power isn't something we necessarily need to conserve for its own sake. We stopped using Gourad shading when the hardware became fast enough that we didn't need it anymore. Polygon rasterization will stick around for a long time I think, but I don't think it will always be an essential part of everyone's real-time rendering technology stack. http://www.paulgraham.com/hundred.html http://www.paulgraham.com/hundred.html > I can already tell you what's going to happen to all those extra cycles that faster hardware is going to give us in the next hundred years. They're nearly all going to be wasted. > I learned to program when computer power was scarce. I can remember taking all the spaces out of my Basic programs so they would fit into the memory of a 4K TRS-80. The thought of all this stupendously inefficient software burning up cycles doing the same thing over and over seems kind of gross to me. But I think my intuitions here are wrong. I'm like someone who grew up poor, and can't bear to spend money even for something important, like going to the doctor.
- Retra 8y ago"Real time rendering" mostly means games, and performance is a very very easy bottleneck to hit for games. Because it is easy to make things more fun and interesting by scaling them up: more entities, more interactions, more options, etc. So I believe you are quite wrong. It is trivial to scale-up a simulation to the point where you're at a performance bottleneck. The only reason we don't scale things up today is because our computers are far too slow to handle it. And we stopped using Gouraud shading because it is horrendously ugly. We'd still be using it still if it looked half as good as rasterization does.
- fyi1183 8y agoGouraud shading and rasterization are not mutually exclusive. Rasterization is a technique for getting from polygons to pixels, gouraud shading is a technique for assigning colours to those pixels. Even flat shading is usually done with rasterization.
- elihu 8y agoOne of the surprising characteristics of ray tracers is that if you've got a reasonably efficient acceleration structure, they're relatively insensitive to scene complexity. Say you're rendering ten thousand triangles at a certain framerate, and then you bump the resolution of your meshes up so that you've got a hundred thousand triangles. The framerate drops a little bit, like maybe 20 percent or so, but it's nowhere near a linear slowdown. You can always slow the rendering times way down by adding a lot of reflection and refraction, but those are things you can't really do in a general and physically-correct way in a polygon rasterizer.
- berkut 8y agoNot necessarily - rasterisation can suffer from "overdraw", which raytracing doesn't (although it has its own issues with acceleration structure requirements, especially where moving objects in the scene is concerned, so it's not a complete win). One of the reasons VFX has moved to raytracing/pathtracing is that it copes with complexity a lot better in general (we're talking scenes with 500 million uninstanced triangles). It also allows you to do much more accurate camera projections like spherical / fisheye (which could be useful for VR). Doing things like omni-directional spherical 3D projection in rasterisation requires tricks or warping in 2D, whereas it's pretty trivial to trace rays from the camera and do it completely accurately with raytracing.
- skohan 8y agoAchieving "photorealistic" results via rasterization requires a lot of dirty tricks and slight of hand. Supporting it requires a lot of (expensive) hard work from graphics programmers and content artists. The content pipeline is relatively simple for ray-traced content: just define the material properties of the surfaces of your scene, and the transport properties of the media your light is flowing through, and the light bounces where it bounces. The limiting factor for real-time graphics applications is generally the cost of content creation. Real-time ray tracing could mitigate that cost.