NVIDIA Doubts Ray Tracing Is the Future of Games
SizeWise writes "After Intel's prominent work in ray tracing in the both the desktop and mobile spaces, many gamers might be thinking that the move to ray-tracing engines is inevitable. NVIDIA's Chief Scientist, Dr. David Kirk, thinks otherwise as revealed in this interview on rasterization and ray tracing. Kirk counters many of Intel's claims of ray tracing's superiority, such as the inherent benefit to polygon complexity, while pointing out areas where ray-tracing engines would falter, such as basic antialiasing. The interview concludes with discussions on mixing the two rendering technologies and whether NVIDIA hardware can efficiently handle ray tracing calculations as well."
Kirk should talk to Picard who is quite enthused about real time raytracing.
Saying something sucks if he's already developing a product for it.
“Common sense is not so common.” — Voltaire
A good way to mix both techniques is Relief Texture Mapping. It's a good way to get smooth surfaces thanks to the texture interpolation hardware, with no extra polygons.
Seriously though, does anyone expect Nvidia to say, "Yes, we really do think that our products will all be obsolete and outdated in a few years. Thank you for asking." I personally have no idea as to whether or not ray tracing is the future of games, but I really don't think that Nvidia is the right person to ask either, (just as Intel isn't).
Intel says to do it with the CPU, and nVidia says to do it with the GPU. What a surprise.
No folly is more costly than the folly of intolerant idealism. - Winston Churchill
Personally, I prefer spites to either ray-trace or polygons. I still thing Starcraft (the game, not the conversion van) had some of the best graphics. But then I am kind of a fuddy-duddy. I also think River Raid was an awesome game.
I judt got a nre Kinesis keybiartf so please excusr ant egregiou typos.
IBM doubts the future of the "personal computer"
Buggy manufacturers poo-poo the new horseless carriage
etc, etc.
Women are like electronics: you don't know how damaged they are until you try to turn them on.
We can't do it as well as Intel yet, therefore it sucks. BUY NVIDIA.
What about game and engine devs? Where do they see the future going?
For the most part, I really don't see ray-tracing adding much to the world of gaming that isn't being handled well enough by current methods. Unless someone was specifically creating games that somehow directly incorporated either the benefits or the added calculations involved with ray-tracing itself, it would only be a costly, and highly inefficient gimmick of an alternative to current techniques.
Sure, ray-tracing has its place in a lot of areas, but real-time gaming would be a terrible misuse of processing horsepower... especially when you could be applying it to other areas of gaming that actually affect gameplay itself. For example, how about more robust AIs for in game elements, or high-end physics processing that can combine things like fabric/hair/ fluid/fire physics processing with the ability to decimate objects completely as vector-calculated chunks based on the surrounding environments, rather than all this predetermined destruction we currently see in games. (Example, a surface could be eroded incrimentally by having a fluid running acrossed it until a hole forms in the shape of the fluid path...)
8==8 Bones 8==8
For years, the movie studios were using Pixar PRMan, which is in many ways a high-quality software equivalent of a modern graphics card. It takes a huge and complex scene, divides it into screen-space buckets of equal size, sorts the geometrical primitives in some way, and then (pay attention now!) tesselates and dices the primitives into micropolygons about one pixel each in size (OpenGL fragments, anyone?), shades and deforms them them using simple (or not-so-simple) algorithms written in the RenderMan shading language (hey, vertex and pixel shaders!) and then, it rasterizes them using stochastic algorithms that allow for high quality motion blur, depth-of-field and antialiasing.
Now the latest part is slightly easier for a raytracer, which can cast a ray from any place in the scene - of course, it needs this functionality anyway. But a raytracer also needs random access to the scene which means that you need to keep the whole scene in memory at all times, along with spatial indexing structures. The REYES algorithms of PRMan needs no such thing (it easily handles 2 GB of scene data on a 512 MB machine along with gigs of textures), and it allows for coherent memory access patterns and coherent computation in general (there is of course some research into coherency in raytracing, but IIRC, the results were never that good). This is a big win for graphics cards, as the bandwidth of graphics card RAM has never been spectacular - it's basically the same case as with general-purpose CPU of your computer and its main memory. But with 128 or so execution units of modern graphics card, the problem is even more apparent.
Unless the Intel engineeers stumbled upon some spectacular breakthrough, I fail to see how raytracing is supposed to have any advantage in a modern graphics card. And if I had to choose between vivid forest imagery with millions of leaves flapping in the wind and reflective balls on a checkered floor, I know what I would choose.
Ezekiel 23:20
Radiosity does more for indoor scene quality than does raytracing. Radiosity gives you the visual cue of a dark band at an inside corner, which is subtle and a basic part of the human visual mechanism for resolving depth. Raytracing makes shiny things look cool.
Oh, right, this is for gamers.
They will cut back our "first contact" date for at least 500 years.
Knowledge is power. Knowledge shared is power lost.
what does antialiasing have to do with anything? you can anti-alias just fine with raytracing.
Just because their products now are focused on rasterization (their current GPUs can do raytracing as well) doesn't mean their next generation ones have to be. I'm sure they'd be happy to produce raytracing hardware, if there was a demand for it and if they could make it fast.
That is the problem, as the article noted. You get research oriented things that are very pie in the sky about rendering techniques. They concentrate on what is theoretically possible and so on. nVidia isn't in that position, they are concerned with what is actually faster when implemented in hardware. I'm quite sure nVidia would shift over to making raytracing cards, if it was better to do so. In this case better means "Produces a better looking image in realtime."
I'm all for research in to other ways than what we do now, however that doesn't mean that just because something looks good on paper that it works in reality well. The question isn't what technique has what big O, the question is when implemented on real silicon with today's technology, what gives the better image?
If you want to be that abstract about things, vision is just a lighting model.
RTFA, they mostly agreed that ray tracing produces some very nice graphics, they just are fast enough for games and currently not better enough to justify the extra price for the hardware over what is already available.
IBM did realtime raytracing using three ps3 with linux
"A good way to mix both techniques is Relief Texture Mapping [ufrgs.br]. It's a good way to get smooth surfaces thanks to the texture interpolation hardware, with no extra polygons." The problem with a technique like this [similar for bump and normal mapping] is that it doesn't affect the actual geometry. That means that the edges of meshes, and the mesh generally when viewed from very oblique angles, will appear flat. Displacement, on the other hand, is a good solution to this as it actually affects the geometry involved.
"C is much too slow, to get good performance you must use assembly."
"Scripted languages are much too slow, to get good performance you must use compiled languages."
As computers get faster, there is always a move from technologies that are easier for the computer to technologies that are easier for the developer. Since ray tracing involves less hacks and is a more direct model of the effects developers want to create, it seems inevitable.
Which isn't to say I'm a raytracing fanboy. The blacksmith might well be right, if the car in question is powered by steam. But the blacksmith's opinion still isn't exactly news...
Considering how I've seen people going back to '50s style music, clothing, etc., it'd make sense if they suddenly just went back to text-gaming. Retro's the way to go! Stranded on an alien planet without a six pack of beer, baby!
I'll call it the mind-generated graphics system, or MGGS for short.
Patented and Copyrighted and Trademarked!
Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
Intel's original studies stated that currently raytracing requires too much of a performance hit to be viable. They're expecting it when 8-16 core processors becoming available at a commodity level, and thats at least 2-3 years from now. As for anti-aliasing, I thought that raytracing removed the need for it entirely because of how graphics are drawn?
I'd love to see Nvidia or ATI work on hardware that accelerates a pure voxel engine. I personally think there's too much emphasis on reaching a goal of photo-realism. Current polygon-based rendering tends to dictate a lot in terms of gameplay, often without game designers even noticing it because they don't know what's possible with something like a voxel engine.
Ray tracing provides THE best quality images.
Tell that to Pixar.
Dear nvidia,
Please hurry up and fix your drivers so the Cossacks series and Rome work again. Thanks, that is what I paid you for.
This was not redundant when I posted it. You just burned a mod point for nothing, because I'm about to show you redundant.
Done with slashdot, done with nerds, getting a life.
Pixar's movies aren't rendered in real time.
WWJD.... for a Klondike bar?
I'm not too up on 3D graphics, but what's with these comparisons of ray-tracing vs polygons, or ray-tracing vs rasterizing? Isn't ray tracing just a lighting model?
Ok, that's to torque the mod that decided I was being redundant. Now to expand on it: though I can see where ray tracing might be able to describe a perfectly curved surface or how it could replace some amount of texture mapping by modeling the reflections off it, it's not like the model can exactly describe geometry itself or the starting color of the object. As for rasterization, it's got to go to the monitor sometime, so I'm not sure what the comparison there is either. So other than radiosity lighting, what's being made obsolete here?
Done with slashdot, done with nerds, getting a life.
Unless you can turn everything into polygons on the tiniest scale and make rays bounce thousands of times. Even then you can't have things like bloom. Maybe it is possible of you have fullscreen shaders on top of a raytraced frame and render a frame for each time a ray bounces, but that requires extreme computing power not even possible within about 15-20 years. 2xFSAA could be possible of you render each frame at least four times, but that would take even more computing power, not to mention putting these four frames together in one frame...
I don't see this coming, if ever, any time in the near-, or maybe far, future...
Here be signatures
My understanding is that the Reyes rendering engine is based primarily on polygon subdivison to sub-pixels. There may be some support for ray tracing, etc., but I don't think it is primarily a ray tracer.
A few friends, my brother and I had a Crisco fight one summer.
Yeah- that's right - mother-f**king Crisco - everyone had like 2 pound cans of the stuff, and wore old clothes.
Pretty damn fun throwing a big greaseball and hitting someone upside the head with it, 'cause it sticks. Then the walk home from the local baseball field with big things of grease stuck to us.
Being a bored kid can be really fricken cool sometimes.
..........FULL STOP.
Second the previous sibling. Artists generate models out of subdivision surfaces (a curved "limit surface" in space that is approximated by subdividing into many small triangles). The triangles are subdivided small enough to fit into a single pixel, making scanline rendering trivial. So the bulk of the work being done is still essentially rasterizing, with the actual triangles being generated on-the-fly to match the level of detail required.
Raytracing itself is done only where needed... in general, that would be for reflective and refractive surfaces; either mirror/glass or some sort of glossy/blurry material. Photon mapping (which is similar but not identical to reverse raytracing) handles diffuse interreflection and caustics. All of those effects add quite a bit to the overall effect of an image, but they are only used when the rasterizing engine is insufficient.
In short, it's the 80/20 rule all over again. 80% of the rendering is cheap rasterization, the last 20% is expensive ray casting (ray tracing + photon mapping).
A likely story! Next you'll claim that the Smurfs weren't animated in real time, either.
nVidia is telling you what you need to hear to conclude that they aren't threatened with extinction.
The fact is that in probably in a little more than two years there is going to be NO need for discrete graphics anymore. In roughly two years time Intel is going to be pushing 16 cores on a die, probably following the announced AMD strategy of mixing in some cores that are highly optimized and streamlined for operations that just happen to be very similar to what graphics technology needs (AMD calls them XPU cores). And if they can deliver ray-tracing in real time then it's more than likely going to be ray-tracing because it's an order of magnitude more precise than other techniques. The simple fact is once we move to 16+ cores there isn't going to be a need for discrete graphics anymore. Move the basic 2D stuff into the motherboard and run the graphics on the discrete cores. Hell that's the whole principle behind the PS3, 8 (7 usable) identical, programmable, highly optimized SIMD floating point cores and a power processor to run the OS. Just take the model and stick 8 of the cell like cores on the die with 8 x86 cores and you have highly programmable graphics without the need for discrete graphics.
nVidia is going to be in big trouble in about 2 years. If you're an investor watch the AMD and Intel roadmaps and when the multi-core processors come out with the cell like processors and x86 processors on the same die it's game over for nVidia and time to sell the stock if they don't have another plan to stay viable. Not to mention Linux will be MUCH better off as we'll have direct access to those cores and will be able to do some amazing things.
The key point in raytracing vs rasterization is that in classic raytracing you shoot one ray per pixel and then look where it hits an object, while rasterization renders all the triangles in a scene to the screen, no matter if visible or not. This means that you have to process a lot of triangles in rasterization and get a lot of overdraw, so it gets slow with complex scenes, while in raytracing you have just one ray per pixel, no matter how complex the scene, i.e. rasterization scales with O(N) while raytracing is O(log(N)). For small scenes this means that rasterization is faster, while for large scenes it means raytracing is faster, in terms of actual graphics both algorithms so far are exactly the same. The way raytracing works allows you to do some effects that are much harder then rasterization (reflection, shadows, etc.), but that isn't really the main point to do it for realtime, since they all can be approximated "good enough" with normal rasterization.
All that said this is of course a drastic simplification, calculating the tree needed for fast ray/object intersection test takes plenty of time and can't be ignored for dynamic scenes, while rasterization does lots of tricks to render only a small subset of all polygons in a scene. And many current day graphic effects don't really work in either rasterization or raytracing domains, but in the shaders or as post-processing effects on the framebuffer, so you can't really make a clear cut 'rasterization' vs 'raytracing' differentiation when it comes to produce the complete image that you get to see in the end, since it involves a lot of extra tricks which might even come from both domains or none of them.
"Rasterization" scales perfectly well inside the chip, to scale it in the same way in a multichip setup takes more bandwidth than they are willing to allocate pins for at the moment (so they use AFR ... not SLI BTW). I don't care though, single chip solutions are in the right price range for me and multichip solutions are not.
... the way it hits memory, the need for fine grained hierarchies etc ... it's just nasty. Even after swallowing overdraw and the need for hugely oversampled shadow maps "rasterization" is still the better algorithm.
In my price range raytracing scales from unusably slow to still unusably slow. Even if there were dedicated hardware for it that would still be true, raytracing just has so many nasty aspects which make it slow for the kind of rendering we can do in realtime at the moment in consumer space
You mean simulate the forward emanation of quantum wave functions from light sources to the camera? (Closest to real we can get with present physics knowledge.)
So much horsepower is going into the _look_ of a game, but so little into animation techniques to make it _feel_ real not just look real. Character animation sucks on all games as far as I've seen. We still have pre-programmed movements that jerk from one animation phase to another, the whole process is very rigid, unintelligent and desperate for an overhaul of technology.
I'd like to see inverse-kinematics used in character animations. Example: As you walk in real life, you decide where your feet need to be, not where your thighs, hips or knees need to be. They follow automatically, as does your torso. Your arms tend to swing for balance. Your torso leans and sways to maintain a general centre of gravity across your limbs. When you are pushed, again your feet decide where they need to be to adjust your centre of gravity, stop a fall, etc.
With all the CPU power at our disposal, I don't see anyone trying out stuff like this. It would really make 3D games feel more realistic and dynamic, removing scripted movements. It's just an extension of the physics engine and ragdoll, but of course needs a lot of rules placed on it to make it not look silly while playing.
Then there's the dismal state of AI, and of course storytelling and engaging a players' imagination. "Gaming" is about imagination, otherwise it's just entertainment; interactive TV.
UT3 is a perfect example of how stagnated that genre is. UT3 is like Vista to UT2004's XP. We came from a place of innovation way back in the Zork days, when people were thinking up *new ways to tell a story*. Now it's all about hype and visuals but little real innovation.
There used to be an interesting debate between Professer Philipp Slusallek of the University of Saarbruecken and chief scientist David Kirk of nVidia at GameStar.de. The original article has been taken down, but I found a slightly mangled version on the Wayback machine and I've cleaned it up a bit and put it up on my not-a-blog: link.
I'd appreciate a better translation of the German part of the text.
Following up on my previous post about the debate between David Kirk and Philipp Slusallek in 2006 (link ... apologies to Dr. Slusallek, Slashdot truncated his name).
According to Dr. Slusallek's LinkedIn profile he's currently a "Visiting Professor at NVIDIA".
The performance of Dr. Slusallek's real-time raytracing engine at only 90 MHz was quite impressive: "In contrast we have recently implemented a prototype of a custom ray tracing based graphics card using a single Xilinx FPGA chip. The first results show that this really simple hardware running at 90 MHz and containing only a small fraction of the floating point units of a rasterization chip already performs like a 8-12 GHz Pentium 4. In addition, it uses only a tiny fraction of the external memory bandwidth of a rasterization chip (often as low as 100-200 MB/s) and therefore can be scaled simply by using many parallel ray tracing pipelines both on-chip and/or via multiple chips.".
It seems there may be room for more than one opinion about the future of raytracing and gaming at nVidia.
"A related effect is called ambient occlusion. An example of ambient occlusion is in the corner of a room, where the points on the surface of the wall near the corner can't "see" very much of the room, so those points are not as well-lit as points in the center of the wall."
I'm not sure what optical effect he's referring to. Ambient light is an approximation for second and higher order reflections, and depending on the brightness of the adjacent surfaces corners of a room may or may not seem darker than the surrounding wall. With interior lighting, the fact that they are simply further away from the light source is going to have a bigger impact (if you're in a room that's not lit by ceiling panels you can look at the ceiling of the room you're in too see what I mean). In addition, in the room I'm in, an even bigger factor is the wall texture - it's slightly glossy and the diffuse reflection of the overhead light is far more apparent than the slightly darker secondary reflections in the corner.
Raytracing avoids aliasing effects within an object, but without oversampling (say, shooting multiple rays near the corners of pixels that are near the edge of an object) you get just as much aliasing at edges. The folks at SaarCOR have demoed some interesting edge detection algorithms that allow them to only do supersampling where it's needed.
Hi, I'm a PhD student working on Real Time Ray Tracing. I actually reregistered to post this (I have a really old account I can't login to anymore tied to an old email address) Anti aliasing in ray tracing is ridiculously simple. Yes, ray-tracing is a point-sampling algorithm and is therefore susceptible to jaggies, but you do NOT have to send out multiple rays per pixel. After a frame is rendered with ONE primary ray per pixel, you then do a simple linear scan of the image. By comparing a pixel's values with neighbouring ones you can easily detect areas of the render where sharp transitions occur (jaggies etc). For those pixels and those pixels only, you can then send out one or more rays extra for anti-aliasing purposes. Adaptive supersampling is fast and produces high quality results and it's been around since Whitted's initial work on recursive ray-tracing. Other comments. "You must visit every object to build the data structure". Untrue. The data structures we use can be built on-demand as a ray traverses the scene. Also, O(N) or O(NlogN) rebuilds are not necessary between every frame. Simple O(logN) updates have been shown to work very well with deformable BVHs etc.
They could just nuke us now and be done with it.
Help poke pirates in the eyepatch, arr.