https://www.youtube.com/watch?v=RNRp9Y33xWE Can you spot the difference worth >2-3x performance drop?
https://www.youtube.com/watch?v=RNRp9Y33xWE Can you spot the difference worth >2-3x performance drop?
For some tasks, ray tracing already outperforms traditional rasterization.
All "photorealistic" 3D renderers are trying to produce output on par with a true ray tracing renderer, and because the computation required is so high, tons of bodges and hacks are employed to approach that level of quality. The resulting complexity of a traditional rasterizer is astronomical compared to the complexity of a ray traced renderer.
Ray traced graphics has been the goal the entire time computer graphics have been a thing; for the past 40 years, at least. That's always been the goal. I can't remember a time when it wasn't.
It's only now that hardware fabrication technology has put us in a place where we're able to slightly open the door to the rendering techniques we've desired for so long. It's an exciting time.
It is not a scam. It may not perform well in most situations currently, but I can promise you, that will change significantly as time goes on.
Just like how early CPU hardware was slow and expensive, early ray tracing hardware is slow and expensive. Over time, CPU hardware has gotten cheaper and faster, and the same will happen with ray tracing hardware.
Highly dynamic environments are where the technology shines, because it can achieve results which traditional solutions simply can’t. I think ray-traced Minecraft is the best current example of the potential of this technology.
I don't know how that RTX tech is working, but from what I've seen of the port of Quake2, it looked much more convincing - did you see it before making that judgement?
Contrast the GPU with the newest generation of x86 CPUs. They have more cores than you can typically use, provide ridiculous amounts of pipelined throughput, and have specialized vector instructions which can dramatically accelerate common 3D graphics tasks (i.e. matrix multiplication).
Most practical ray tracing algorithms are trivially parallelized (e.g. just throw each scanline at a thread) and also exhibit properties which can leverage the deep stack depths and OoO execution enabled by modern CPUs. Ray tracing is inherently a recursive activity with a profound number of potential branching opportunities. x86 has absolutely no problem dealing with this kind of scenario. This is exactly what it was built for. GPUs on the other hand require yet more specialized hardware that has its limitations baked-in at the transistor level. x86 does not have these same kind of limitations.
Consider the hypothetical benefits of having your entire graphics pipeline implemented within 1 cache-coherent memory domain and on top of a single instruction set. Imagine no Direct3D/OpenGL/Vulkan/drivers/etc are involved to ruin your day. What if you could fit all of your required scene, texture and model data into L3 cache? How many times can you fill L3 from RAM per second on a 3950x with reasonable memory configuration? How many times per frame at 60fps? I feel we need to take some time to look at the emerging opportunities with the new hardware that is coming to market.
I worry that the developer community is so out of touch with the hardware aspect (e.g. 22ms hello world) that we are basically saying "lol no just use GPU magic graphics rectangle" and calling it a day. I feel like specialization of ASICs is fundamentally taking us in the wrong direction now that we are able to put so many general purpose cores onto a single package/die in a very cost-effective manner. Maybe this is why AMD is taking so long to bring a proper Nvidia killer to market. At some point there has to be a certain # of cores where someone raises their hand and asks "why do we still need a separate GPU?".
Consoles have dabbled with single memory models and high memory bandwidth etc. and its nice but its not new. Mobile chips are unified memory.