What do you guys mean by hybrid ray tracing? Ray tracing and rasterization are different ways of rendering, so the only way I can think of using both is at real time cutscenes when certain sequences run with traditional rendering and in different scenes depending on the needs of the sequence, whatever engine is running it then switches to ray tracing.
That Star Wars demo by the way, according to the makers of the demo that talked about it at GDC, ran @ 1080p and 8 fps with the Titan V so I highly doubt we'll see ray tracing in the next generation specially considering that things are going 4k and high fps with VR.
https://www.tomshardware.co.uk/ray-tracing-rasterization,review-31636-8.html
A Hybrid Rendering Engine?
If you've read this far into this article, you may think that ray tracing is still far from being ready to replace rasterization, but that in the meantime it might be a good idea to mix the two techniques. And at first look, they do seem to be complementary.
It's easy to imagine rasterizing triangles to determine visibility, taking advantage of the excellent performance that the technique offers, and use ray tracing only on certain surfaces to add realism where it's necessary, such as adding shadow or achieving exact reflections or transparency. (Which I what I predict we will see real-time) After all, that's the approach Pixar used to make
Cars. The geometric models are rendered with REYES and the rays can be cast on demand to simulate certain effects.
Lord of Chaos is referring to this problem:
Unfortunately, though it sounds very promising, the hybrid solution is not easy to apply. As we've seen, one of the main disadvantages of ray tracing has to do with the data structure needed to organize objects in such a way as to limit the number of tests for ray/object intersection. Using a hybrid rendering model instead of pure ray tracing doesn't change that. The data structure will still have to be put in place, with all the disadvantages that implies. For example, we might consider ray tracing the static data and rendering dynamic data using rasterization. But with that scenario, we lose all the advantages of ray tracing. Since the dynamic data does not exist for the ray tracer, it'll be impossible to make objects cast a shadow or to see their reflections.
What's more, in terms of performance, the biggest problem is with the memory accesses generated by the secondary rays, which are typically the rays we need to keep in our hybrid rendering engine. So, the performance gain won't be as great as one might think. Since most of the rendering time is dominated by calculating secondary rays, the gain from avoiding calculation of primary rays is negligible.
In other words, by attempting to combine the advantages of both methods, this solution could end up combining the disadvantages, while losing the elegance of ray tracing and the high performance of rasterization.
My counter to this is about the issue which I believe would cause the most trouble in rendering:
What's more, in terms of performance, the biggest problem is with the memory accesses generated by the secondary rays, which are typically the rays we need to keep in our hybrid rendering engine. So, the performance gain won't be as great as one might think. Since most of the rendering time is dominated by calculating secondary rays, the gain from avoiding calculation of primary rays is negligible.
My solution to this is to leverage cloud computing to pre-calculate the secondary rays real-time so that the primary rays already have the secondary ray calculations handy rather than calculating them real-time. Thus only focusing on Primary rays and dynamic objects.
Basically there would be three levels of rendering.
Full rasterized scene.
Cloud ray-tracing at the mid and near range for non dynamic objects.
Real-time ray-tracing for near dynamic objects.
If looking at the diagram below, I'm proposing that the only thing which is calculated real-time on the primary rays (red lines) and rasterization.
The rest remainder of the near-mid scene is calculated via the cloud and the ray tracing is only calculated on the output of the cloud computations of rays and objects.
Basically only the red lines are resource intensive.