Ask Slashdot: How Did Real-Time Ray Tracing Become Possible With Today's Technology?
dryriver writes: There are occasions where multiple big tech manufacturers all announce the exact same innovation at the same time -- e.g. 4K UHD TVs. Everybody in broadcasting and audiovisual content creation knew that 4K/8K UHD and high dynamic range (HDR) were coming years in advance, and that all the big TV and screen manufacturers were preparing 4K UHD HDR product lines because FHD was beginning to bore consumers. It came as no surprise when everybody had a 4K UHD product announcement and demo ready at the same time. Something very unusual happened this year at GDC 2018 however. Multiple graphics and GPU companies, like Microsoft, Nvidia, and AMD, as well as other game developers and game engine makers, all announced that real-time ray tracing is coming to their mass-market products, and by extension, to computer games, VR content and other realtime 3D applications.
Why is this odd? Because for many years any mention of 30+ FPS real-time ray tracing was thought to be utterly impossible with today's hardware technology. It was deemed far too computationally intensive for today's GPU technology and far too expensive for anything mass market. Gamers weren't screaming for the technology. Technologists didn't think it was doable at this point in time. Raster 3D graphics -- what we have in DirectX, OpenGL and game consoles today -- was very, very profitable and could easily have evolved further the way it has for another 7 to 8 years. And suddenly there it was: everybody announced at the same time that real-time ray tracing is not only technically possible, but also coming to your home gaming PC much sooner than anybody thought. Working tech demos were shown. What happened? How did real-time ray tracing, which only a few 3D graphics nerds and researchers in the field talked about until recently, suddenly become so technically possible, economically feasible, and so guaranteed-to-be-profitable that everybody announced this year that they are doing it?
Why is this odd? Because for many years any mention of 30+ FPS real-time ray tracing was thought to be utterly impossible with today's hardware technology. It was deemed far too computationally intensive for today's GPU technology and far too expensive for anything mass market. Gamers weren't screaming for the technology. Technologists didn't think it was doable at this point in time. Raster 3D graphics -- what we have in DirectX, OpenGL and game consoles today -- was very, very profitable and could easily have evolved further the way it has for another 7 to 8 years. And suddenly there it was: everybody announced at the same time that real-time ray tracing is not only technically possible, but also coming to your home gaming PC much sooner than anybody thought. Working tech demos were shown. What happened? How did real-time ray tracing, which only a few 3D graphics nerds and researchers in the field talked about until recently, suddenly become so technically possible, economically feasible, and so guaranteed-to-be-profitable that everybody announced this year that they are doing it?
Simple: Hardware got more powerful.
#import
What else has changed in the last half century? We don't even have the Concorde anymore. Airplanes still look, act, and sound the same as in 1969 when the 747 first flew. Cars, houses, clothes, buildings, roads, food, all more or less look the same.
Only processing information has gotten better by orders of magnitude, because information is massless.
So while you whittle your life away playing stupid games, just remember than none of the Space Age fantasies are ever going to become real.
But you have nice games and cordless vacuum cleaners.
The short answer is that it isn't brand-new. As the article mentions, nVidia has been doing real-time ray-tracing demos for about a decade. Various tricks and approximations are used to make this a reality. Game developers have largely shied away from it because similar results can be achieved with typically better performance using other methods.
This announcement, particularly with the involvement of Microsoft, indicates that the companies finally feel that the technology is mature enough to actually be used in a game. My guess is that it will likely still be some time before it is put to use. The fact that it was announced at the same time likely indicates that the three companies have been working together for some time behind closed-doors to agree upon the DirectX Raytracing API.
More specifically, Nvidia made custom hardware to do the calculations.
Be careful with your terminology.
Real Time Ray Tracing with one primary ray and one shadow ray for each pixel, was viable last year as well (at 1080p.)
But this will not render indirect light, thus no Global Illumination.
You may be referring to Real Time Path Tracing, where you need to shoot a lot of rays for every pixel.
This is currently not possible, and also not possible in this year's GDC demos: I think most of the demos were hybrids (rasterizing+tracing), and definitely not full Global Illumination.
http://www.stolk.org/tlctc
Just saying, maybe some algorithm cycled down, seems it would explain the lack of a single patent holder.
Real time ray tracing was a topic since I was in college 20 years ago. A lot of PhD students have done their research. Algorithms optimized. Hardware advancing. Futurists at major corporations (fancy name for people responsible for monitoring tech) saw hardware evolving.
So Microsoft probably saw that it was going to be viable in 5 years (or whenever) in 2013. They probably starting developing an API in conjunction with major hardware manufacturers. So they all worked together to bring ray tracing to the masses eventually.
Now all this work is paying off and consumers get the end product.
This is no different than major corporations using augmented reality to validate construction designs. Ya, they are doing that atleast in labs. Take the 3D model as built and validate that it is as built. Or quickly look at something in the real world and figure out where the 3D model data is and figure out in a second what vendor supplied the broken part. Ya, this stuff is happening!
Demos of real time raytracing have dated back to 2009 or earlier, albeit with various limitations. Raster based rendering is faster and going to raytracing means much better lighting, at the expense of some resolution/geometric detail/hardware requirements.
I think what is being seen is that we've been well beyond the point of diminishing returns as far as raster can reasonably get in terms of better quality. Sure, we can cram more and more polygons and sure we can raise the bar to 4k resolution, but the bang for the back is small. Given that situation, video card market has an issue, they need to do demand generation.
So pushing 4k for gaming helps, and 8k would be nice, but it's just really hard to tell the difference at this point.
If that's a hard sell, then VR certainly can knock things back if it gets traction. With wider FOV, stereoscopic rendering, and optimal experience being at least 90Hz, that would certainly deliver. However, as much as I am a fan of it, it's far from a given that VR is ever going to be large enough to drive adoption. at volumes that can sate the business needs of the GPU vendors.
So raytracing is a third option to make best of breed graphics card noticeably struggle with something that's very visually apparent. Suddenly the market content with status quo of ever refined raster graphics simply must make the leap to have some marketable advancement.
The people pessimistic about any such advancement just continuously have their expectations calibrated to how fast it can perform raster graphics. Raytracing does mean having to step back, but we have enough headroom to take the hit.
XML is like violence. If it doesn't solve the problem, use more.
This story reminded me of https://www.euclideon.com/ ... They compose everything as "atoms" instead of triangles. If I ever make it to Oz, i'd like to check it out.
It is using rasterization for the scene, and then hybrid ray tracing for the reflective, shadow, and opacity components were it applies. This is not true ray-tracing, but rather another rendering "trick" to optimize for speed. Most of our rendering for games today is approximations, because it is good enough. Same thing here.
It was in the EULA, on page 2,763 paragraph 12 subsection 23 A. What do you mean, what's a EULA. It's that thing you're supposed to read before installing the software. You know like the book your about the Spanish kid your car came with. You know, Manual.
The short answer, as many have already pointed out, is none of this was unexpected. Also, saying that "bored" consumers pushed the increase in display resolution is simplistic. Whether FHD or 4k, no current video display system compares to the sensory inputs of a majority of humans - the bandwidth required is just too great. Manufactures continue to strain for that brass ring of true representation, whether for mass markets or professionals doing Real Work (tm).
Admitted I don't know anything about rendering, but they say that they're using a relatively low number of sample rays per pixel and then running an AI-based denoising algorithm to clean it up. Also it's just for lighting and such.
How Did Real-Time Ray Tracing Become Possible With Today's Technology?
And time; this would certainly have been possible years ago, at considerably greater expense.
Ok, ok, it was on 2x2 resolution...
Seriously though, the big problem with mapping real time RT to today's graphics hardware is ray decoherence. Graphics hardware likes branches (like if/else or loops) to go the same way, because it's SIMD: single instruction multiple data. It CAN support each lane having a different control path, but it loses efficiency the more of that starts going on. In the worst case it can be a severe loss.
So, primary rays are not too bad but the more they reflect around and have different lifetimes interacting with different things (think reflects from a narrow object where the reflected rays go in different directions) the worse it gets. People have been working on algorithms to mitigate this problem, which has helped, and of course graphics HW has been getting faster and faster.
Ray tracing is an impressive technical feat, but the argument against it for gaming still stands:
However fast you get at ray tracing, you can instead use that power for rasterization and do far far more.
The day may come where that gap doesn't matter anymore, or where we find a way to overcome it... but for now, I think this technology will primarily be used to help accelerate very simple environments, and more complex for offline rendering.
Remember the jump from the SNES/Genesis to Playstation/Saturn? How about the first time you saw a Dreamcast game? Those were big leaps. But PS2 to PS3? If you'd been paying PC games you'd seen stuff on par with PS3. And PS3 to 4 was hardly a leap at all.
The trouble is modern graphics have gotten _hard_ to make. Pixel shaders are a bitch. They're too labor intensive. What's needed is something that lets you do great graphics with less man hours and fewer bugs. If ray tracing isn't gonna do that then it might as well be PC's answer to 3D TVs. Especially if it's only kicking out 30 FPS.
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
You misuse the term "raster graphics", as that refers to bitmaps, not vector based real-time 3D rendering. Real-time ray-tracing has been around for almost two decades, but it wasn't mainstream until recently. As the parallel computational power of GPU increases, ray-tracing becomes the inevitable future.
Second just because they call it real time ray tracing does not mean it really is. It could be a technique to create a low res ray tracing to calculate the radiosity, reflectivity etc and then use the standard raster graphics to use these to adjust the texture maps of raster graphics.
So let us wait and see if what they call real time ray tracing and what we call real time ray tracing are one and the same.
sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
All the companies that announced this and the media that is reporting on it all gloss over the fact that the Ray Tracing that is being talked about is supplementary the standard rasterized shading engines. We aren't going to be getting 100% ray traced scenes. We'll get rasterized scenes with things like reflections and shadows being ray traced. This will fix the issue that rasterization has where objects outside of the viewing frustum are computationally ignored. 100% ray tracing is still a pipe dream with the current hardware standards that most consumers have.
According to this video it is not just more powerful hardware but also that they came up with the idea to use only a fraction of the rays normally required and to then used a power denoise algorithm to generate the final image.
What the fuck is the poster on about. Ray Tracing has been a known researched thing that was on the horizon for years, it hasn't suddenly miraculously appeared and was always expected once the hardware crossed the threshold of performance for it to be released for more general consumption.
As long as magic leap has been vaporware, the graphics vendors have known real time ray tracing was going to be required in a big way and have been working on it behind the scenes.
No, no it didn't. Pretty much zero innovation came about from nerd-coin mining. A bunch of people lost a crapton of money though.
No we don't, we have some half-assed hybrid of ray tracing, most of it is still raster.
I hate to break it to you, nobody actually gives a shit about desktops anymore. We did get the decade of the Linux smartphone. You know all of those Android devices out there that run the Linux kernel.
It all depends on what you want to classify as raytracing.
If the cut off is to just trace rays, it’s been done for a goddamn quarter century.
Look at demo scene stuff, chrome 4kb, Heaven Seven and others.
If you want results at 4K with Renderman quality with all the bells and whistles on, well it’s not going to happen at 1 frame a second, much less 60. (For a visually complicated scene)
Also the dumdum that wrote this tripe wonders why we can do today with current technology what we couldn’t do with the current technology of yester-year. That is donkey-brained thinking at its finest.
Many of us were raymarching distance fields 5+ years ago, I'm not surprised they figured out raytracing - many great minds in graphics development.
It's ray group estimating.
Saves a crapload of time.
My friend managed to do realtime raytracing years ago. He did have a large Cray at his disposal, but anyway that's not important, he still was able to do it.
The first thing to understand is that the Nvidia and MS press releases are complete crap. Oh it "works". The UE4 Star Wars thing is real enough. It's also running on $12,000 worth of GPUs at 30fps in 1080p, and is only partially raytraced.
Now does this mean realtime raytracing isn't here? Well the answer is no, it is here. The game Claybook is entirely raytraced, unlike the DirectX demos. It's in early access and runs on nothing more than an Xbox One or PS4, and does so at 60 frames per second. Here's the trailer: https://www.youtube.com/watch?... Now THIS is possible because graphics programmers have gotten quite clever over the years. The cleverest bit is called signed distance fields. This can be thought of a volume of points, or boxes, that all store the nearest distance to a solid "surface". Going through this structure allows you to raytrace very very quickly, as you know how much empty space you can skip each time without hitting anything. And since this data is relatively small for each point it doesn't use up a lot of memory either. It's so fast and low memory you can run a demo in your browser here: https://www.shadertoy.com/view...
Obviously there's a bunch of other clever programming going on in Claybook and other titles. But SDF's are the biggest thing to understand. That and that the MS Raytracing API is totally uninteresting from a performance perspective. In fact it's rather awful.
Full realistic ray tracing to provide real global illumination be it real time or otherwise has always been impossible. Ray tracing is only a simulation and has always employed artificial cutoffs and other hacks. Why? Well light is analogue, to simulate it properly requires a literally infinite amount of processing power. I doubt there'll be anything different about this tech, it's just a new api.
You fundamentally misunderstood the technology; partial solutions for partial rendering with interpolation is not 100% raytracing.
it's just used for effects not for full scene. they are not shooting a ray per pixel(or multiple). and following it where it goes. for most of the scene they don't need to do that and for the reflective surfaces they only need to do it once sfor every so many pixels.
people we're doing partial limited realtime raytracing to make some effects on pentium 100mhz's.. that you use raytracing as part of an effect is just.. well, it's not the same as raytracing with povray - not at all.
world was created 5 seconds before this post as it is.
Magic Leap
The number of rays that a GPU can trace per scene has increased at pretty much the same rate as any other scene element. The difference is that with machine learning it has finally become practical to determine which rays within a scene make enough of a contribution to merit the cost of tracing them, and bog standard rasterization takes care of the rest of the lighting.
It sounds like OP is asking "Why are GPUs so damn powerful so soon?"
In a word: Cryptocurrency mining
People were willing to pay for faster and faster GPUs for their mining farms and their profits allowed it. Look at the overwhelming demand for dedicated space heaters, er, miners. If there was no money in it, it wouldn't have happened.
It has been said that porn built the internet. Based on traffic share, that's a safe bet. There was money in being a 1 frame per second camgirl and there was money in video, which was difficult to get over a dial-up modem. A few fibers and cables later, even T1 lines were eclipsed.
In a world of the blind, the one-eyed man is king--and the two-eyed man is a heretic.
It's still not possible (in high resolution/high framerate) on current consumer GPU's.. The star wars demo for instance was done on a set of very VERY expensive (not available to the public) GPU's which will not be available for another few years.
Raytracing and rasterizing behave in memory differently, making the tradeoff between them less about processing and more about memory size. Rasterization and raytracing perform the same functions, but in a different order. Rasterization iterates over every triangle to see if it covers each pixel, and repeats that loop over every triangle for every pixel in the image. Raytracing iterates over every pixel, testing for intersection with each scene primitive.
The big difference is how memory is used in this process. Rasterizers can stream triangles in order very efficiently, while raytracers must have the entire scene in memory all at once. We've had more than enough computational capacity in GPUs to do reverse raytracing (perfect shadows and refractions, no support for global illumination, caustics, etcetera,) for more than a decade. Memory *size,* however, has only recently become great enough to support the same quality scene geometry that we're used to seeing from rasterized titles.
... I told them, smooth the picture bit... like divx smears/blurs the picture to compress it better.
This idea and the subsequent smoothers have made it a reality.
Far less rays needed now to produce acceptable quality pictures.
Amazing how one little idea can change the world ! ;)
Is this a trick question?
Even with a simplistic ray model, the more objects there are in the scene, the more complex the trace becomes. Until you hit an object, you don't know at what angle the ray diverges from that object; it may, for instance, go through several partially transparent objects before it reaches a light source, or it may reflect off of several items that are colored, or metallic (which, if done properly, introduces further complexities.)
The classic ray tracer has to examine every object N for every pixel generated M:. So the more objects and pixels there are, the longer it takes to render the scene. Complexity is straight-up NxM. This is without even thinking about things like soft shadows.
That is the bottleneck; and you're not going to solve it for all scenes just by throwing hardware at it.
You can solve it by simplifying the scene until the hardware can keep up, and as near as I can tell, that's what's being described here.
Or IOW, there's more hype here than truth.
I've fallen off your lawn, and I can't get up.
because you're clueless...Have you been reading the graphics roadmaps?
This was all layed out in the roadmaps in the early 2000's and so far they're right on schedule for 8k everything.
In 2003, I was shown a video during governmental / military training where the claim was made that "in 10 years, we will be producing real-time rendered video that is indistinguishable from actual real-world video" This was a civilian made video highlighting some awesome (for the day) work that was happening at some university.
The copyrights at the end of that video made it clear that it was already 10 years old. Don't believe everything you see.
So there's that but then there's also the obvious cache of civilian tech that is warehoused just waiting to be released at the right time. When I was a child, they told me about cameras being everywhere, debit cards, e-ink and many other forms of future tech that just sorta trickled into mainstream over the next 25-30 years.
Got kids in school? ask them about what they are being groomed to accept, perhaps they'll have a glimpse into whats coming in the next 25-30. Some will probably be very cool - some will probably be very scary.
Moores law is not dead.
No, graphics hardware has been steadily marching this direction for years. CUDA enabled crypto, not the other way around. GPUs moving to general purpose cores was driven by games needing different amounts of processing power at each stage in the graphics pipeline.
It may never be doable because of Blinn's Law.
Blinn's law says that the time to do something remains constant with the usual result that improvements go into the quality of the result. This is pretty self-evident with real-time video since your time budget is fixed by needed to maintain the frame rate and for any given frame rate you might as well use all the time available. Hence, it says nothing about whether "true" real-time ray tracing will ever be possible. The real question is not whether it will become possible but whether it will become practical. This is determined by whether or not there are alternative, less computationally intensive algorithms that produce visually similar (or better) results for that frame rate. If there are not then real-time ray tracing will the be the algorithm of choice.
To me, this is progress and it's exciting. I've been asking for R-T ray tracing ever since I heard about ray tracing. We gotta start somewhere with consumer access and this is it. It might be crap at first but it will get better and the tech gets all the advantages of mass market, mass adoption. Hopefully the games designers just use it in limited ways initially so it always looks good.
We've had so many iterations of GPU tech now. I've benefited from the larger screen sizes and better resolution, certainly. However I've noticed that in game titles, even game remasters/remakes, the reviews will tout how much better the game looks. I look at the comparative shots and yes it's better, but I often find myself a bit underwhelmed. There's no, "holy crap, that's awesome!" moment. Maybe the designers of the earlier version pulled off miracles?
R-T ray tracing has the potential for "holy crap, that's awesome!" moments.
Aliens.
Back in 1980, the University of Waterloo mathematics and computer science building had a locked public display case featuring artifacts from the senior-level computer graphics course, most of which involved ray tracing (standard chessboard-reflected-in-shiny-sphere kinds of things, but with the scenes aggressively simplified—like only three chess pieces of a dozen polygons each and the board reduced to sixteen squares).
What separated the great from the good was treatment of subtleties such as getting the specular highlighting right. I was young and naive and didn't have Wikipedia at my fingertips, so I don't recall much more.
They also had a public information kiosk back in 1980 which used some kind of polygon-fill graphics language to render an interactive dial-up information browser in all the best oversaturated colours. Just like the Internet, if the Internet consisted of exactly one host, and it was dead slow. But shiny! Everyone tried it out—for exactly three minutes (that would be about your third screen rendered).
They also had rooms full of card readers, which they couldn't bother themselves to eliminate until some fancy anniversary shindig a few years later.
In one terminal room you'd have IBM 3270 block-oriented displays, in the next you'd have the god-awful WIDJET terminals, in the next you'd have IBM PCs running APL (for statistics students), in the next you had Commodore SuperPETs, custom tweaked by the Computer Systems Group or related ecosystem (these people were later responsible for the Watcom C++ compiler).
WIDJET (Waterloo interactive direct job-entry terminals) was basically a JCL front-end with the ability to store about six whole files on non-card storage, where mostly you sat twiddling your thumbs waiting for your runs to pass through the job submission queue.
One such room was more advanced and you could *edit* your next assignment with your previous run still in the queue, but you had to sign up way ahead of time to actually get a seat in this room.
In the other room, you might submit a compile, sit there for ten minutes watching it bounce up and down the queue (upper-year jobs had priority) and then decide "oh, I did something wrong in the previous assignment" and you'd click "edit" on some previous source file, only to discover the message "job submission cancelled" popping up on the status line of your display and since you'd already spent years with the immense power of the TRS-80 or Apple II at your fingertips, you'd bash your head into the desk and wonder how you'd become mired in this technological institution of hazing, abuse, and mediocrity.
The SuperPETs were okay, but the custom Pascal did some kind of partial compile to catch syntax errors before running the interpreter. The error reporting was beyond horrible. 50% of all syntax errors were the same message: "syntax error near or before end of file." It was much like Donald Trump tweaking "WRONG!" at you if you got a single brace out of alignment.
"Sorry! I'll hunt through my entire program looking for the one I messed up." This worked for localized changes. But generally what you actually did after a big edit was added or removed braces at random until you found the problem through a tedious process of bisection (which, however, was an order of magnitude less tedious than dealing with WIDJET, even in the good room).
My first year at Waterloo was the biggest computer science mindfuck of my entire life.
Eventually I discovered you could kind of get into a groove with the IBM 3270 terminals—as archaic as they seemed—if you blinked longer than normal after each press of the ENTER key. Plus, these had chat, so you could send "nice sunrise" messages to all your friends at 05:00.
Fro
People who are good at what they do are typically monitoring or communicating with other people who are good at the same thing.
Or they're at least all watching the same thing and great minds think alike and all that. Kind of like telescopes. No one had even thought of a telescope, yet when optics became good enough, the telescope was independently invented by several different people within a year of each other, but all far enough apart that communication among them would have taken longer than a year, so it was impossible for them to have known what was up with the others. Most ideas that seem novel are really obvious to masters of the domain as long as they're presented with the same problem. This has been a sore point of our patent system for a long time. Just because something has never been done before doesn't mean the person who made it is special or put a lot of effort into it. They were just lucky with timing. Yay, lottery!
My guess is a combination of masters being masters and all saw the tipping point around the same time, and keeping their ears to the ground.
I remember back in 2004, when Beowulf clusters were still a cool thing, Quake iii getting the real time raytracing treatment. Great to see it in individual machines now, but I also wonder what cluster tech has replaced the old Beowulf...
https://games.slashdot.org/story/04/06/07/2350243/quake-iii-gets-real-time-ray-tracing-treatment
The trouble with the world is that the stupid are cocksure and the intelligent are full of doubt.
-Bertrand Russel