Investigating ray tracing, the next big thing in gaming graphics
extremetech.com
extremetech.com
For applications that deal in perfect lighting, yes it's probably a useful technique that would benefit from hardware support. But where is the real-world benefit for the rest of us? For most consumers, lighting provides about 2% of a game's value and 0% of everything else.
One of the things about ray tracing that was unexpected for me was that you could use a lower pixel resolution and get a higher fidelity 'feel' for the render.
Leave NURBS to vehicle and product CAD, where it's actually very useful
Anything can look good when you've got 10 minutes and 500 processors. I want to see what happens in 16ms. :)
The real problem with raytracing is that it's asymptotic computational complexity is far worse when you count scene objects. To compensate this you either lower the resolution or lower the lifetime of a ray(how many bounces it's allowed to make).
> lighting, reflections, diffraction, motion blur
Just about every one of those becomes easy, but incurs a huge performance penalty.
Also, thinking about it, I'm not sure that motion blur actually becomes significantly easier.
Lighting isn't a huge win, direct lighting is improved slightly, but GI is still impractically slow.
Reflection and diffraction are a pretty good win, but are also things that are solvable with a "ray-trace sometimes" approach, which is a much more likely solution for the near to mid-term.
And generally speaking visibility is done with some sort of ray checking anyways, sure it simplifies things that now we don't have two different solutions, but the complexity is a huge optimization.
So sure, it'd simplify things a ton, but I don't imagine it to be the primary rendering technology in real-time game for a long time.
For motion blur, you take frames at different points in time and distribute the tracing ray over time. So it's actually pretty easy. Don't know if it's practical or efficient tough.
I think a good analogy, say that I'm implementing a database. In my database, every single time it handles a query, it always does O(n) search across every record to find matches. The implementation would be so simple and elegant!
[1] http://www.tml.tkk.fi/~samuli/publications/lehtinen2012siggr...
It could really use a 3rd GTX580 to run the reconstruction filter that blackhole linked. But, it's getting better at a steady rate.
Meanwhile, the voxel cone tracing technique mentioned in the article (http://www.youtube.com/watch?v=fAsg_xNzhcQ) is a great hybrid. Rasterizers are great at primary visibility, but are terrible when the algorithm needs non-local information. By supplementing the rasterizer with a fast-but-blurry ray-tracer, you get most of the benefit of both techniques.
Fully ray-traced game engines? Oh no not again. Damn you Nintendo for starting this nonsense with those faked Project Reality demos...
Graphics engines have more in common with street magic than simulation in that the best ones use just enough physics and mathematics to get the job done and not a bit more. Wake me up when John Carmack says ray-tracing is the next big thing.
That said, ray-tracing has all sorts of unconventional uses outside of strict computer graphics i.e.:
http://www.tomsarazac.com/tom/Bicycles/headlight-tracer.html
The benefits of ray tracing come in precisely because it is more like simulation than street magic. Once you get to sufficient complexity, it is too hard to maintain an illusion. The truth is more consistent than an elaborate lie.
We are not yet close to that level of complexity. We will be eventually. Anyone putting a date on that time before it arrives is almost certainly going to be wrong.
I'm sure I'm not the only one on HN who has written a ray tracer, and once you have it's easy to extend it to something like Metropolis light transport or photon mapping. I remember when my code first worked (without error) how amazed I was that such a small amount of programming can achieve such realistic light simulations!
A website known as OMPF used to be about the only forum online for people interested in ray tracing and global illumination. For some reason, it seems as though it has gone down :(
Yes, it would be crazy expensive. Yes, it would be impractical. But it would show that a) it is possible to create without inventing anything new, and b) it costs $X dollars. Leave Moore to figure out the rest.
The industry could use a benchmark to tell us just how far away this is and a model of how to get there without creating a billion-core CPU.
Also, it seems like this would be something that would be amenable to a FPGA system. If so, it might be a lot closer than we realize. Don't know.
Intel was pushing their Larrabee architecture as the answer for a while.
So I'll spec it out. HD video, 30fps, editable with in-world physics.
Don't see anything off-the-shelf that's close to that today. My question was if it were possible to hack something together. If so, what did the configuration/cost look like.
Perhaps the answer right now is "no". That's cool. Just wondering.
'in world physics' is well managed by things like the PhysX engine that nVidia sells.
Photon mapping, radiosity, etc can give much closer to photorealistic results.