On Raytracing
I feel that raytracing gets a bit maligned these days, mostly due to the way that Nvidia is marketing, advertising and pricing their RTX brand of graphics cards.
But RTX and raytracing are not exactly the same thing, and just because people are rightfully unhappy with prices and scalpers and melting cables, that doesn’t necessarily mean that raytracing is not worthwhile.
Rasterization
Rasterization is a very fast and simple method of projecting 3D objects onto a 2D plane. But at it’s core, it doesn’t concern itself with lighting at all. It is just about squishing triangles into the right shape, to create a perspective view. Everything else, is layers upon layers of extra tricks stacked on top of that. Mipmaps, shadowmaps, cubemaps, z-buffer, post-processing, screen-space tricks, god rays, megatextures, bump maps, normal maps, displacement maps, bloom, specular maps, ambient occlusion, self-shadows, area lights, emissive textures, subsurface scattering, and so on and so forth.
Making all of those different layers work nicely with each other, and covering all the edge-cases turns rasterization into a bloated patchwork of disparate methods, that’s ultimately neither fast nor simple. Because of that, graphics gurus like for example John Carmack were already longing for raytracing decades ago.
Raytracing
Raytracing is a simulation of the actual physical behavior of light. If you run a full-fledged, pure raytracing approach, you can get photorealistic (or also stylized if you wish) lighting, that covers everything light does in the real world, without needing to heap on special extra layers. It’s simple, clean and accurate - but very, very calculation expensive. We simply can’t calculate enough rays in realtime yet, which is why we need AI denoisers and all sorts of tricks, to fill in the gaps and clean up the image.
Hybrid Methods
Basically all modern AAA games with high fidelity graphics today are using a hybrid approach. If you turn OFF “raytracing” you still get stuff like pre-baked, raytraced shadowmaps. If you turn ON “raytracing” you still get rasterization with an extra-layer of some select realtime raytracing features stacked on top of it.
You can find pure rasterization in many retro and indie games - and you can find pure raytracing in many Hollywood movies. Everything else though is some sort of mixture. The only thing that’s new, is that we now get a little bit of realtime raytracing added to that mixture. And that’s why often the visual difference between “raytracing” on and “raytracing” off is barely even noticable.
Raytracing is not a new thing either - the first first use of a computer to calculate simple raytraced shading happened in 1968! Yes, raytracing predates Pong by several years. It predates Nvidia by two and a half decades.
The Transition
We do not quite have the necessary hardware power to go full raytracing yet - and using just a little bit of raytracing as another extra-layer on top of rasterization is not going to bring the simplifications that clean up all the bloat. And it was never going to be like flipping a switch: “RTX on - RTX off”. It simply doesn’t work that way. We are in the early phases of a slow, years-long transition phase.
But the fact that we are now seeing games like Indiana Jones and the Great Circle requiring some form of raytracing and not being playable without, shows that we are now deep enough into the transition, that some simplification and cleanup can already be had, by removing certain rasterization paths and no longer supporting those.
The Future
As technology progresses we are going to see more and more raytracing methods getting added, and more and more rasterization methods getting removed - as we continue to slowly transation over.
And real raytracing is not a Nvidia scam or upsell or anything. Developers, graphics programmers and especially Engine makers have started pushing towards more and more raytracing methods long before RTX ever appeared on the scene. And both AMD and Intel are pushing raytracing features on their cards, not because they are blindly copying Nvidia, but because they understand the direction things are going.
Rile against Nvidia, their marketing and their pricing all you want - but please don’t let that cloud your views of what raytracing brings to the table. Go ahead and rant against RTX all you like - but please don’t call it “raytracing” or imply that’s one and the same thing.