Hacker News new | ask | show | jobs
by jaytaylor 2835 days ago
So the new top-end Nvidia cards will have dedicated ray tracing cores. However, real-time ray tracing is still so computationally expensive that games can only implement a hybrid form of it whereby ray tracing is applied for a certain effect or single object, and plain old rasterization is used for everything else.

I applaud NV for stepping up and delivering something in a new direction. Just think- how long has it been since something truly new has been introduced in the gfx world?

Reading through the full article, it was no small feat to dream up and build these cards. A very complex project from both product and engineering perspectives. Hardware-wise, the 2080 specs are quite insane, and these babies are thirrrsty, drawing ~250 watts.

That said, the move definitely seems risky, as it increases complexity significantly for game devs to code for this hybrid approach. What if the market doesn't warm up to this, or perhaps ATI or someone else comes up with something more novel?

I also wonder if it's just a few years premature. Not feeling compelled to give up the good old 970GTX yet. Wake me up when full ray tracing is ready :)

---

P.S. I couldn't help but snicker when looking at the table near the end showing which games will support what new imaging modes.

Of course, PUBG doesn't support ray tracing. Hardly a surprise, considering they can't patch without hours of downtime, and also frequently deliver patches containing "fixes" which break more than they fix.

(FWIW I've stopped PUBG and moved on to Elite:Dangerous, aka space truckers, thanks to it being recommended in an HN thread. Fun game, if you enjoy the solitude of loneliness of endless space! ;)

5 comments

One thing I hope these cores can do is walk a tree that's more general purpose than just volume intersection, like a BSP tree for z-sorting.

We could have scenes with exponentially more geometry if the geometry is culled more efficiently. Stuff like walls covered in pipes/debris, cloth that wraps around the model's body as it moves, much more complex and overlapping shadow volumes, etc.

Interesting thought, but I'm not convinced.

Constructing a robust BSP tree is very expensive, because you need exact rational arithmetic and the number of bits grows quite large. You wouldn't want to do that at runtime, so you could only use this for static geometry.

If most of your geometry is opaque, you can already achieve the same reduction in lighting complexity with a Z pre-pass.

Even if PUBG would support ray tracing, most users would probably turn it off, because being able to spot things in competitive games is more important than visuals. Good players even turn off shadows and post processing effects in order to get an advantage over players who dont. Ray tracing is a nice feature for single player games or multiplayer games that are not competitive (e.g. PvE games like Diablo).
Most users? I don't think so.
Most users support top of the end graphics cards? I think that card uses as power than my rig.
MS is pushing this kind of hybrid ray-tracing in DirectX 12. I imagine that Nvidia has been holding off on this until that came about because otherwise it would’ve been way too hard to push.

Of course you know Microsoft worked with all the major vendors because they don’t want to be seen as playing favorites. I would expect AMD would have whatever their version of this is in their next generation chip.

The article made it sound like DirectX only specifies a very high-level interface. So there’s probably a lot of room for AMD and Nvidia to maneuver for performance and quality without breaking compatibility.

10 GigaRays/sec = 80 rays per pixel at 1080p60fps.

That should be enough to do full scene real-time raytracing with rays per pixel to spare (usually 10 rays per path are more than enough).

I was under the impression from the initial coverage that they were actually getting something like 1 to 2 rays per pixel per frame. Perhaps even less.

From there they were using some sort of smoothing and/or temporal anti-aliasing to gather the data from multiple frames to get decent quality out of it.

Or are you proposing how many raise they would NEED to be able to do real time full raytracing? By the time we have that ability I imagine everyone will just want the 4K version anyway and we will be behind again.

Either way what nVidia has shown looks great. It’s too bad I’ll have to wait years to be able to use it as a console gamer.

Why does ray tracing require more than 1 ray per pixel anyway?
Due to noise and aliasing. If multiple features (edges, materials etc) cover a single pixel, you usually get aliasing. If you do random sampling (of reflections, lights, whatever) you get noise.

For anti-aliasing you'll usually want at least on the order of 10 rays per pixel for a nice result. If you do random sampling, you quickly need 100 to 1000 rays per pixel to get an acceptable noise level.

One ray represents many photons, and those photons scatter off in many different directions when they hit most surfaces. To get a reasonable picture of where they went, you need a lot of samples.

A single raycast also only gets you one step of the light's journey. That means, for example, that following light as it bounces from a light source, to a surface, to another surface to your eye requires at least 3 rays even for perfectly mirrored surfaces.

It depends on what you wan't to use ray tracing for.

If you want to calculate global illumination with path tracing (which is a form of ray tracing) then you need multiple samples per pixel to get a noiseless result.

Most of the time at least 500-1000 samples.

It's a stochastic process and it needs many samples per bounce. Basically, unless the surfaces are perfect mirrors, each angle of reflection is a probability function. Look for Monte Carlo methods for more information.
For the secondary rays for reflection, refraction and shadows.

At one ray per pixel, you can only do the primary ray and find which triangle it hits. The exact same thing can be done with rasterization much faster and with equal results.

Looking at the demo video Nvidia released yesterday[1], it is pretty obvious that the performance is still bit limited. The shadows and reflections are distinctly low-resolution and I don't think its solid 60fps either.

Sure it's still pretty nice for first-gen product, so not complaining too much. But there is still fair bit of road to go on.

[1] Atomic Heart: Official GeForce RTX Real-Time Ray Tracing Demo https://www.youtube.com/watch?v=1IIiQZw_p_E

Where did you base that "10 rays are more than enough" on? https://chunky.llbit.se/path_tracing.html
My understanding was that a key component of Nvidia's solution was a denoising neural network, dramatically reducing the number of rays needed.
I assumed this was just PowerVR/imagination tech's raytracing patents expiring.