If you gonna cheat just give up on RT - this is what precomputed shadow maps, light maps, speculate maps etc are for together with various cheats to clip shadows when they overlap or already at max "darkness" same thing with lights when you have multiple lights sources you usually approximate by stacking the combine illumination values for light sources of the same direction.
I really don't understand why are they chasing RT.
Also would be nice to know how well they can actually compute shaders, do tessellation and many other things because this is one heck of a fluff piece and I can remember at least 1 of these past 20 years that proclaimed that real time RT in hardware is here.
> I really don't understand why are they chasing RT.
1. The highly-parallelizable nature of RT is ideal for many-core architecture we're heading toward. Note that the PowerVR hardware used in the demo has 4 cores, needs no fans, and uses 10x less power than a traditional rasterization-optimized GPU.
2. The simplicity of implementing physically-based effects leads to a much easier time for artists.
I would argue that physically-based raytracers actually make things more difficult for artists, because they tend to be less flexible. Being physically correct is great if what you get out of the renderer is exactly what you want, but as soon as you need to cheat anything to achieve a particular look, it's much easier to not be bound by physical correctness.
The Disney BSDF [1, 2] is extremely flexible and offers a lot of artistic freedom. The only real limitation is that the BSDF is required to be energy conserving, but that's hardly a limitation. A physically-based renderer is still able to produce non-photorealistic results.
Maybe, depends on whether you're doing CG animation (Pixar, Dreamworks style) or more realistic stuff - VFX, photoreal stuff.
If the former, then maybe a bit.
But the beauty of physically-based is that in many cases, you can take a model that's been textured and lookdeved and it will work nicely in many different lighting setups. Before Physically-based, you practically had to re-do stuff completely when you changed the lighting to get the look you wanted.
However, Physically-based still isn't a complete win - you can't looked something close up and expect it to look good in the distance - it just won't. You need to be aware of the LODs and create different asset variations appropriately for different distances.
Pixar switched to a path tracer for Monsters University, and it made it easier for the artists (once they unlearned the tricks and hacks they would have needed for less sophisticated renderers).
PathTracing (Though not regular Ray tracing) is actually pretty tricky to parallelize. I'd be interested in hearing what their hardware actually does? I'm guessing some hardware implementation of ray intersections with a BVH or kd-Tree?
The problem that occurs when trying to do path tracing on current hardware is that secondary (reflected) rays are incoherent so the gpu will stall one ray while waiting for another that hit something, leading to poor utilization of the gpu. It's still normally faster than on a cpu, but compared to "simpler" problems like some linear algebra (Machine Learning or similar) the perf of gpu vs cpu is low.
I thought GPU techniques do something like accumulate the secondary rays and use really fast GPU sorting algorithms on them before continuing, to bring back coherence.
Rasterization also is of highly-parallelizable nature and this parallelism has been exploited to great effect in the last decade(s). Given that Ray Tracing's only advantage over Rasterization is specular reflection it seems unlikely it is really superior in terms of efficiency. Especially since specular reflections and many other effects can be achieved via cheating in Rasterization.
For real GI, Path Tracing, Photon Mapping and so on are the methods of choice and not Ray Tracing.
Global Illumination, Path Tracing, Photon Mapping and Ray Tracing all belong to a category of algorithms that are better suited for multi-core general processors -- not the SIMD hardware of today's GPUs.
GPU's haven't stuck to SIMD parallelism for quite a few years now.
NVIDIA is not there yet SMT/DPT isn't true parallelism but it's good enough even for path tracing. AMD GPU's are pretty much truly parallel with every execution unit capable of executing any instruction asynchronously.
Ray tracing has other advantages besides shiny reflections: it can handle refraction, shadows, non-triangle-based geometric primitives (including CSG), and has less sensitivity to the total amount of geometry in a scene.
Global illumination is where we want to go to surpass the realism of current games, but path tracing and photon mapping are both fundamentally based on ray-tracing. Any hardware that makes ray-tracing go faster (especially for incoherent rays) should also help to speed up global illumination.
Their hardware actually combines hardware rasterization and raytracing.
Depending on the implementation, raytracing can have many benefits over rasterization, such as:
- ability to produce pixel-perfect shadows
- sub-linear complexity on the amount of primitives (vs. linear for rasterization)
- rays need not be coherent, i.e one can render non-linear projections or lots of small views
Path Tracing also is just another form of Raytracing. They demonstrated that their hardware can be used for it (just read the link).
> Also would be nice to know how well they can actually compute shaders, do tessellation and many other things because this is one heck of a fluff piece and I can remember at least 1 of these past 20 years that proclaimed that real time RT in hardware is here.
The chip iterates on "standard" GPU designs made to performed rasterization, therefore it has everything in place to launch compute jobs or do tessellation. In addition, they have some additional hardware for raytracing. From one of the previous GDC presentations it was more or less clear that you could programmatically activate raytracing with a configurable number of rays and those rays will deliver additional lighting contributions to the objects of the scene.
RT is a rasterization method it doesn't not save you from actually having to build the scene as in textures, materials, and transform it to the players viewport, for this you need many other things than RT which is why info about it would be appreciated rather than saying we can do RT at 1/10th of the power consumption NVIDIA does.
As I was saying, the GPU pipeline we are all used to is still there. I have posted in another comment some presentations from the GDC 2014 which you might find interesting.
RT is by far the least efficient method of doing that.
One of the issues with RT is that it actually creates "unrealistic" lighting at least as far as computer entertainment goes the global illumination tends to be way too uniform and washed out.
It looks great on the big screen when your eyes can adjust to the brightness of the screen which is the most luminous object in the room but it looks really washed out on a monitor in a well lit room.
Agreed, but the "grail" is you invent some technology where the GPU can RT a scene in real time with all of the illumination identified just prior to the frame it is used in, and now you save a ton on artists and modellers who are spending their time making lightmaps etc. Just point the magic gizmo at your geometry and "poof" perfectly lit scene.
No you don't have tons of artists and modelers making light maps etc, they are in 99% of the cases made automatically depending on the engine and modeling software you use you can render objects using what ever method you want in non-real time including raytracing and the software can generate things like specular and shadow maps.
>Just point the magic gizmo at your geometry and "poof" perfectly lit scene.
There are plenty of global illumination models that do not require doing full path tracing e.g. Radiosity https://en.wikipedia.org/wiki/Radiosity_(computer_graphics) which are much more efficient than ray tracing (even on dedicated RT hardware fyi) while resulting in pretty much an identical image, path tracing also works pretty damn well.
One of the main reasons that these aren't use isn't because the current hardware isn't fast enough but because the resulting image just doesn't look right because of various factors and has to be then highly adjusted to increase it's dynamic range.
Global illumination creates brilliant results when your eye perceive it as "real" illumination like for example when sitting in a dark cinema when the only light source is the light bouncing from the screen which means your eyes only adjust to the brightness level of various areas in the screen which allows it to maintain relatively high dynamic range even tho it's pretty much uniformally lit.
With computer monitors this simply doesn't work the monitor is most cases isn't the brightest object in the room as you have both day light and indoor lighting.
The monitor in most cases doesn't take as nearly as much of your view as a movie screen does and modern cinema projection solutions can actually provide high dynamic range by having different luminosity levels for different parts of the screen while your monitor is lit by a single diffused light source.
This pretty much means when you use global illumination you get much much lower contrast between lit and shadowed areas as well as overall darker lights and lighter shadows.
Sure the scene is universally lit but it just doesn't look like what people expect partially because they are used to direct illumination as it has been mostly used (with a few exceptions mostly due to the issues brought up here) for the past 20 years of real time 3D graphics.
So when you do use global illumination models (doesn't matter if they are precomputed like Valve's implementation of Radiosity, DICE's real time RS, or Nvidia's Gameworks Path Tracing) you either get a really washed out look or you have to tweak the hell out of it during post processing to give it a more stylized look.
And again Ray Tracing doesn't save you from shaders you still need to write the same material shaders as you do today some of them might be slightly simplified if you are doing various things like fetching different specular/reflection maps based on the viewport or scene composition etc. But overall you will still have the same shaders that make one door look like glass while the other like wood because it's silly to have to make 2 doors when you can just adjust a flag in a shader.
I really don't understand why are they chasing RT.
Also would be nice to know how well they can actually compute shaders, do tessellation and many other things because this is one heck of a fluff piece and I can remember at least 1 of these past 20 years that proclaimed that real time RT in hardware is here.