Slashdot Mirror


Ray Tracing for Gaming Explored

Vigile brings us a follow-up to a discussion we had recently about efforts to make ray tracing a reality for video games. Daniel Pohl, a research scientist at Intel, takes us through the nuts and bolts of how ray tracing works, and he talks about how games such as Portal can benefit from this technology. Pohl also touches on the difficulty in mixing ray tracing with current methods of rendering. Quoting: "How will ray tracing for games hit the market? Many people expect it to be a smooth transition - raster only to raster plus ray tracing combined, transitioning to completely ray traced eventually. They think that in the early stages, most of the image would be still rasterized and ray tracing would be used sparingly, only in some small areas such as on a reflecting sphere. It is a nice thought and reflects what has happened so far in the development of graphics cards. The only problem is: Technically it makes no sense."

266 comments

  1. Adaptive techniques: make or break by MessyBlob · · Score: 4, Interesting

    Adaptive rendering would seem to be the way forward. Ray tracing has the advantage that you can bail out when it gets complicated, or render areas to the desired resolution. This means a developer can prioritise certain regions of the scene and ignore others: useful during scenes of fast motion, or to bring detail to stillness. The result is similar to a decoded video stream, with detail in the areas that are usefully perceived as detailed. Combining this with eye position sensing (for a single user) would improve the experience.

    1. Re:Adaptive techniques: make or break by Anonymous Coward · · Score: 0

      This means a developer can prioritise certain regions of the scene and ignore others

      Sure, after calculating all of the rays and then figuring out which will reach the "prioritized" part of the scene, assuming that there is a shiny sphere or whatever visible. Now do you see why that makes no sense? It might work to "bring detail to stillness", though, if things aren't moving you won't notice the framerate hit.

    2. Re:Adaptive techniques: make or break by MessyBlob · · Score: 2

      > ...after calculating all the rays Not necessary :o) Assumedly, a game will have knowledge of its moving objects, and a quick calculation would create a region in the 2D viewing plane.

    3. Re:Adaptive techniques: make or break by morgan_greywolf · · Score: 5, Insightful

      Linux hackers are far better coders then most people who use Visual Studio Um, those two groups aren't mutually exclusive. Many of us *nix hackers also have day jobs that require us to use tools like Visual Studio. You make assumptions that aren't true.

    4. Re:Adaptive techniques: make or break by Anonymous Coward · · Score: 1, Insightful

      HAHAHAHA OPEN SOURCE GAMING? Get out of your dream world. Clearly you are not too knowledgable about games my good sir.

    5. Re:Adaptive techniques: make or break by DeeQ · · Score: 3, Insightful

      This is by far the dumbest statement I've ever read. Somebody has never tried to get a job in the field before eh?

    6. Re:Adaptive techniques: make or break by Anonymous Coward · · Score: 0

      Linux hackers are far better coders then most people who use Visual Studio (most of them can only use Visual Basic and C# anyway) so its likely they will add ray-tracing renderers that are far faster, more efficient and which produce better results. Wtf?! Are you some kind of linux hacker groupie? That's just...eww....
    7. Re:Adaptive techniques: make or break by morgan_greywolf · · Score: 3, Insightful

      Yes they are. If you get to use visual studio at work is because you are not good enough to be hired as a Unix coder. Um, yeah, right. There are far and away more Windows development positions than there are Unix development positions. And most enterprise apps these days aren't exclusively one or the other -- they are cross platform and mixed-language. So even a Unix developer might spend at least some time with Visual Studio.
    8. Re:Adaptive techniques: make or break by Anonymous Coward · · Score: 1, Insightful

      Why not use the old "ray-casting techniques" to take the light backwards from the camera? This would allow you to easily limit which areas of the screen received a full ray traced treatment. You would need to include reflectives as potential light sources for you back trace, but I don't see why it wouldn't be effective.

    9. Re:Adaptive techniques: make or break by Firehed · · Score: 2, Insightful

      Don't remind me. Exactly how a text editor can load slower than Photoshop will perplex me until the end of time.

      --
      How are sites slashdotted when nobody reads TFAs?
    10. Re:Adaptive techniques: make or break by Anonymous Coward · · Score: 0

      Oh I see you have used eclipse.

    11. Re:Adaptive techniques: make or break by Nullav · · Score: 2, Insightful

      Good luck with that. Plan on typing out a model?
      Ignoring that, taking into account that a coder/modeler isn't all that unlikely, you can't just slap up a game that's a notch above 'hello world' in complexity and wake up to a thriving community eager to have your children. If you want to start a game without paying people to work on it, it'll take time (probably months to years) and a few very interested/dedicated people to get it to go anywhere.
      Why do you think so few FOSS games have a plot?

      --
      I just read Slashdot for the articles.
    12. Re:Adaptive techniques: make or break by stevenmu · · Score: 1

      "Linux hackers are far better coders then most people who use Visual Studio" Silly comment tbh. Good coders write good code whatever tools they use, be it Visual Studio, Eclipse, Emacs, VI or anything else, bad coders write bad code whatever tools they use. And in addition to that if you take a good coder who has only ever written VB.Net with VS and sit them in front of a linux box and tell them to write something in C++, Java, Python, Perl etc, they will figure it out. But bad coders will just stick to what they've always done and fling poo at the other side to make themselves feel better.

    13. Re:Adaptive techniques: make or break by Cornflake917 · · Score: 2, Insightful

      I'm assuming you mean casting the rays from the light sources, instead of the camera.

      Starting the rays from the light source would be less effective because once you start adding a few more light sources to the scene you are going to have more sets of rays to keep track of then if you were to just cast the rays from the camera. Even worse, you would have to run calculations on rays that would never hit the camera. Either way, you would still have optimize the scene with BSP's or some sort of data structure to avoid unnecessary calculations.

      I'm starting to think you are suggesting what they are actually doing now.

    14. Re:Adaptive techniques: make or break by GNUALMAFUERTE · · Score: 0, Troll

      I have worked on Unix all my life. 5 Years as a Sysadmin, 3 years Coding. I have worked for a midsized ISP, a Hosting Company, 2 Telcos, and 2 software factories.

      Somebody has an IQ lower than his body temperature?

      --
      WTF am I doing replying to an AC at 5 A.M on a Friday night?
    15. Re:Adaptive techniques: make or break by GNUALMAFUERTE · · Score: 1, Interesting

      Yes, a low-budget junior, or a crappy developer.

      If you have solid Unix knowledge and experience, and you value your work, You don't work with windows, and you set that as a rule with your employer since day 0.

      I have worked at various Telcos, ISPs, Hosting Companies, Software Factories, and now I started my own company (very small, but gives me and my family all we need) and the last windows version I ever touched was 3.11.

      If you are a good professional, and you respect yourself, you don't have to do work you don't want to do. Just as a Windows guy doesn't have to know Unix, as a Unix Coder/Admin you just state very clearly that you DON'T KNOW Windows, and are not interested in learning.

      --
      WTF am I doing replying to an AC at 5 A.M on a Friday night?
    16. Re:Adaptive techniques: make or break by Anonymous Coward · · Score: 0

      First day on the Internet, I take it?

    17. Re:Adaptive techniques: make or break by jbreckman · · Score: 1

      In other news, DeeQ's house is probably on fire, with him in it.

    18. Re:Adaptive techniques: make or break by palegray.net · · Score: 1

      I used to spend a lot of time making sure applications would work on *both* Windows and UNIX platforms. Talk about fun...

    19. Re:Adaptive techniques: make or break by ojustgiveitup · · Score: 1

      Ignorance is never something to pride yourself on my friend. What confuses me is how someone as interested in technology as you seem to be could allow themselves to wall off a massive sector of the tech world. You can have no opinion worth espousing or being listened to without familiarity with the subject of that opinion. So unless this is a discussion about early-90's era Visual Studios development (which, wait, didn't even exist!) then you should kindly shut your bloated blow-hole.

    20. Re:Adaptive techniques: make or break by morgan_greywolf · · Score: 1

      Hey, man, don't harsh on Eclipse. Eclipse is an extremely useful IDE. Code completion, navigation tool, class hierarchy tree, source-level debugging -- everything you'd expect in a modern IDE.

    21. Re:Adaptive techniques: make or break by armareum · · Score: 1

      It is, the first part of the article illustrates it very simply.

      --
      Is this a rhetorical question?
    22. Re:Adaptive techniques: make or break by blackest_k · · Score: 1

      bad medical analogy here if you need a spinal surgeon would you get a General Practitioner to operate?
      Clearly a specialist is whats needed, and who makes the bigger bucks ?

      Clearly it pays to specialize in something , even windows development.

      incidentally what do you make of all the developers who only work on windows projects?
      your argument cuts both ways.my friend.

      finally insulting the GP was that really part of a winning argument? I must remember that one

      I think the GP post essentially was saying if your good enough then you don't need to take on work you don't want to do. I only see that as encouragement to do better, I honestly wish I was that good.

    23. Re:Adaptive techniques: make or break by Anonymous Coward · · Score: 0

      I didnt say it was bad in fact I use both. I said it was SLOW. It is also a PIG in memory. At about 500 meg currently on this box. I have talked to a few other Devs. It came down to 'if I didnt have VS I would use this'. Eclipse *could* be so much more. Unfortunatly it is cluttered and slow... About 70 seconds from icon to editor with eclipse about 10 seconds with visual studio. Perhaps I have it configured wrong.

      I am usually one who likes open source stuff. But MS has the IDE world. It is a step above all the others. I have used many and it currently is the 'top of the pile tool' for me. If MS ports it to Linux I would pay for that...

    24. Re:Adaptive techniques: make or break by jvkjvk · · Score: 1

      Not to say that people who use Visual Studio are worse coders than those who don't, but you appear to be validating the point by saying that there are many less Unix dev positions.

      Consider the pool of people who want to develop in Unix or even Linux, commercially. Quite large, right? Now, there are only jobs for 10% of those people. Well, which 10% of those people get the jobs on average, the least qualified (worse) or the more qualified (better) developers?

      It's because there are so many jobs for Windows that statistically speaking HR scrapes more than just the cream off the top to fill the available positions.

      Of course, this says absolutely nothing about a specific individual -- only that if you know their day job is writing Windows applications there's a better probability they are not in the top 10% of coders than someone writing Unix commercial software. A specific individual writing Windows code may be able to hand you your hat on a platter in any fair comparison.

      Of course, this only holds true if programmers in general would prefer and seek out Unix or Linux positions than Windows positions.

    25. Re:Adaptive techniques: make or break by Cafe+Alpha · · Score: 2, Informative

      Uhm, tracing from the camera IS how ray tracing works.

      No cookie for whoever gave the bozo above me "insightful".

      Casting from the light source forward (photon tracing) is too expensive and is rarely done, though it does give you more accurate effects - caustics, colored bleeding from reflected illumination etc.

      Some of that can be approximated more cheaply with radiosity algorithms.

    26. Re:Adaptive techniques: make or break by Anonymous Coward · · Score: 0

      Now, now... Be kind to the parent. If I learned everything I know about computer science and programming from Slashdot, I'd probably believe the same thing.

      Kinda like learning about science in a red state...

    27. Re:Adaptive techniques: make or break by ojustgiveitup · · Score: 1

      I guess I hadn't really considered whether it was part of a winning argument or not, I just thought bloated blow-hole was very apt and nice-sounding. I have no problem with specialization, I myself am a UNIX programming specialist and would be totally lost using Visual Studios, just as a general practitioner would be totally lost doing spinal surgery. The difference is that the General Practitioner would never proudly exclaim "I have absolutely no experience with spinal surgery whatsoever and thereby proclaim that anyone who does it is inferior to myself!" Or I don't know, maybe they do, but if so, nobody takes them seriously. It's not necessarily ignorance I disdain. Our field (and medicine as well, to continue your imperfect analogy) is too dense and varied for comprehensive knowledge to be possible. What I find highly objectionable is people who proudly and simultaneously proclaim ignorance of and disdain for something. Anything. By the way, I totally agree with you that being good enough to only work on those things you enjoy is a really good goal to have, and in fact I think software engineering allows us that ability more than nearly any field, but that's certainly not what GGP was saying. Along with all the rest of the crud he spewed he did say something similar, but incomplete - that if it happens to be UNIX programming that you want to do then you are good enough to do UNIX programming (which is what you want to do). Elitist *and* circular. Bravo.

    28. Re:Adaptive techniques: make or break by GNUALMAFUERTE · · Score: 1

      Which is what we were talking about, but I got flamed because they didn't read the original post: Someone talking about Unix coders that have day jobs where they use Visual Studio.
      If you work with Visual Studio, it means you can't get a job as a Unix Coder, It mean s you are not that good on Unix.

      About your analogy, it's far from perfect, this analogy is better:

      Being a Unix coder at nights, and using Visual Studio during the day is like being a neurosurgeon during the night but working as a miracle healer.

      --
      WTF am I doing replying to an AC at 5 A.M on a Friday night?
    29. Re:Adaptive techniques: make or break by ojustgiveitup · · Score: 1

      Ha, Ok, that's a pretty good and real funny analogy. But it still doesn't mean that Visual Studio developers are inherently worse programmers. Even if it's inexplicable to you and I, some people actually prefer working with Microsoft and their tools and are good with them. If the tables were turned and they worked UNIX jobs because there weren't as many Windows jobs, they would be the ones selling out because they weren't good enough to get the Windows jobs. You can never prove that one type of programming is "better" than the other. They are just different.

    30. Re:Adaptive techniques: make or break by mfnickster · · Score: 1

      > I have worked on Unix all my life. 5 Years as a Sysadmin, 3 years Coding.

      Wow! That's quite a résumé for an 8-year-old! :)

      --
      "Slow down, Cowboy! It has been 3 years, 7 months and 26 days since you last successfully posted a comment."
    31. Re:Adaptive techniques: make or break by Anonymous Coward · · Score: 0

      My god, wait, what if they use vi or emacs for writing the software, and then use msbuild to build it, never once touching VS?! I must know what this does to the equation!

    32. Re:Adaptive techniques: make or break by Anonymous Coward · · Score: 0

      When talking about the state of the art, I very much doubt that the development environment is a big issue...good programmers are good programmers, period.

      Additionally, there is the "little" matter of ray tracing being inherently far more computationally expensive by definition...solving that is a mathematical problem, not really related to programming ability directly, although of course a clever programmer might be able to come up with the appropriate tricks to make things easier, but once again, such tricks are likely to be quite independent of programming environments (as long as they aren't insanely constrained - like Java/.NET VMs). ...and I say this as a very long time Unix programmer who wishes for MSWin to disappear to the advantage of everyone...

    33. Re:Adaptive techniques: make or break by GNUALMAFUERTE · · Score: 1

      Well, if it's Vi, then they diserve to die.

      If it's emacs, AND they cross-compile for windows under unix using gcc ... then they might have a chance to save their souls =P

      --
      WTF am I doing replying to an AC at 5 A.M on a Friday night?
    34. Re:Adaptive techniques: make or break by Abcd1234 · · Score: 1

      Even if it's inexplicable to you and I, some people actually prefer working with Microsoft and their tools and are good with them

      Or, god forbid, some might realize, through wisdom and experience, that both toolsets have their advantages and disadvantages, and so choose not to be blindly, idiotically idealogical about the whole thing.

      Unfortunately, there are those who seem to prefer being dogmatic douchebags. Such is the way of the world.

    35. Re:Adaptive techniques: make or break by ojustgiveitup · · Score: 1

      Well, I agree and disagree with you. There are some "dogmatic douchebags" (nice word choice) and there are some people who genuinely prefer non-Windows tools. Though the former are usually the screamers and the latter are usually the quiet ones who go about their business with a "to each his own" attitude.

    36. Re:Adaptive techniques: make or break by Abcd1234 · · Score: 1

      Absolutely. But I would suggest that GNUALMAFUERTE fits the former description, rather than the latter. :)

    37. Re:Adaptive techniques: make or break by Abcd1234 · · Score: 1

      Being a Unix coder at nights, and using Visual Studio during the day is like being a neurosurgeon during the night but working as a miracle healer.

      You, sir, are an idiot. Let me enlighten you: Visual Studio is an IDE. It's a tool. It's not a religion. It's not a way of life. And it's use certainly isn't indicative of the quality of a developer (though, being blindly idiological certainly is... and not in a good way).

      What you're saying is equivalent to stating that a carpenter is an idiot for using screws in some cases instead of nails.

      Here's a hint: one when chooses a tool, one should use the best tool for the job. Period. Sometimes, that's a screw (VS + Windows) and sometimes that's a nail (Emacs/Vi/GDB/etc + Unix). After all, one wouldn't hesitate to deride a carpenter who insisted on using nails for ever single application. The same is true of languages, development environments, operating systems, hardware platforms, text editors, etc, etc.

    38. Re:Adaptive techniques: make or break by GNUALMAFUERTE · · Score: 1

      Not true. Not everything is relative. Quality is sometimes relative, but other times, it's an absolute measure.

      Microsoft products are low quality, and they teach bad practices to developers.

      --
      WTF am I doing replying to an AC at 5 A.M on a Friday night?
    39. Re:Adaptive techniques: make or break by Abcd1234 · · Score: 1

      Oh that's bullshit. Microsoft tools don't "teach" any more than Emacs teaches, or gdb teaches, or gcc teaches. They're *tools*. The quality of the code is entirely dependent on the developer wielding them.

      The most you could conceivably say is that a bad developer, given Microsoft tools, may have an easier chance of fucking things up. The problem is, having worked on both sides of the fence, doing extensive Unix, Java, and Win32/C# development, I don't think that's even remotely true. Frankly, as far as toolsets go, I think they're all basically equivalent, particularly given how similar the platforms are, and I have a hard time believing you could prove otherwise (though you're certainly free to try).

    40. Re:Adaptive techniques: make or break by GNUALMAFUERTE · · Score: 1

      Unix forces you to have a clear understanding of the system.

      You have a well structured kernel, libraries and includes that you install as needed, for a specific purpose, a given editor that you choose, automake and autoconf, you end up with a Makefile, and you use make, which in turn will call gcc and a linker. We are in a POSIX compatible system. You then have an XServer, and a widget library if you want to create GUI applications. You write the code, and debug it with gcc.

      In the Windows World, you have an amorphous system, that is installed as is, and you don't really have a complete idea of what is going on inside, you fire up that icon that got installed with that visual studio CD, and click on the widgets to add your code. The editor is the only editor, and magically compiles your code. It auto completes your code as you type, and includes thousands of magic libraries you don't even know about. You don't have the lesser idea of how certain things are manager internally.

      It's OK if you are going to develop a stupid accounting software, but take a developer that was born with visual studio, and put him to write a webserver, and he will fuck up, for sure (actually, he won't know where to start).

      Prove me wrong.

      --
      WTF am I doing replying to an AC at 5 A.M on a Friday night?
  2. "How will ray tracing for games hit the market?" by bobdotorg · · Score: 5, Funny

    That completely depends on your point of view.

    --
    __ Someday, but not this morning, I'll finally learn to use the preview button.
  3. This isn't what we need in games by Lurks · · Score: 5, Insightful

    I guess one has to state the obvious in that by moving to a process which is not implemented in silicon, as with current graphics cards, the work must necessarily be done in software. That means it runs on CPUs and that's something Intel is involved in where as when you look at the computational share of bringing a game to your senses right now, NVIDIA and ATI/AMD are far more likely to be providing the horsepower than Intel.

    But really, even if this wasn't a vested interest case (and it may not be, no harm exploring it after all) - the fact remains that we don't actually need this for games. Graphics hardware has gone down an entirely different route whereby you write little shader programs which create surface visual effects on top of the bread and butter polygons and textures. This is a well established system by now and has a naturally compressive effect. It's like making all your visual effects procedural in nature rather than giving objects simple real-world textures and then doing a load of crazy maths to simulate reality. It works very well. Rememeber a lot of the time you want things to look fantastical and not ultra-realistic so lighting is some of the challenge.

    Games aren't having a problem looking great. They're having a problem looking great and doing it fast enough and game developers are having a problem creating the content to fill these luscious realistic-looking worlds. That's actually what's more useful, really. Ways to aid game developers create content in parallel rather than throwing out the current rendering strategy adopted world wide by the games industry.

    1. Re:This isn't what we need in games by BlueMonk · · Score: 2, Interesting

      I think the problem with the current system, however, is that you have to be a professional 3D game developer with years of study and experience to understand how it all works, whereas if you could define scenes in the same terms that ray tracers accept scene definitions, I think the complexity might be taken down a notch for developers making quality 3D game development a little more accessible and easy to deal with, even if it doesn't provide technical advantages.

    2. Re:This isn't what we need in games by CannedTurkey · · Score: 3, Interesting

      I think the problem with the current system is that it scales horribly. Right now we're barely pushing 2 Megapixel displays with all those shader effects turned on. If the Japanese have their way we'll have 33MP displays in only 7 years - because this is the 'broadcast standard' they're shooting for. Can they double the performance of the current tech every 2 years to eventually meet that? I have my doubts.

      --
      Ingredients: Turkey, Mechanically Separated Turkey, Water, Salt, Flavour.
    3. Re:This isn't what we need in games by darthflo · · Score: 3, Insightful

      Keep in mind recent parallelization advances. According to TFA, raytracing performance scales almost linearly with the number of processors (factor 15.2 for four quadcore machines connected via GigE over a single core); both Crossfire and SLI don't scale remotely that great.
      If the parallelization trend continues like it's progressing now, manicore CPUs are probable to arrive before 2010. Also, both AMD and Intel appear to be undertaking steps in the direction of enthusiast-grade multi-socket systems, increasing the average number of cores once again. Assuming raytracing can be parallelized as gread as TFA makes it sound, rendering could just return to the CPUs. I'm no expert, but it does sound kinda nice.

    4. Re:This isn't what we need in games by Anonymous Coward · · Score: 1, Insightful

      Ray-tracing uses shaders too but in a more natural way. They define how an object is shaded, how light reflects on an object. That's what shaders in rasterizers are used for too, but they also use them to emulate a lot of effects that come naturally in ray-tracing. Shadows, reflections, lighting, ambient lighting...

      Ray-tracing versus rasterizing has little to do with fantastical versus ultra-realistic. All cgi in movies is rendered with ray-tracing (pixar's renderman is technically a rasterizer though, but not like the one used in games). Cars, Nemo, ... don't look realistic, they look fantastical.

      Ray-tracing gives the designers much more freedom. It's better in every way, except for speed.

    5. Re:This isn't what we need in games by should_be_linear · · Score: 1

      It is hard to predict what creative artists heads are capable of, given possibilities of Ray Tracing. In the beginning it will not being much improvement over current state-of-the-art graphics, just like graphics in late Amiga 2D games looked much better then first 3D textured games (few polygons, low-res textures). With Ray Tracing technology, complexity of scene (number of polygons) can be increased by several orders of magnitude. This can especially improve games like flight simulators, where you can see millions of polygons "at once", think of looking at multiple cities at once from 5000 meters height. Ray tracing is (almost) infinitely parallel process. If 100-cores CPU existed, it would be easy to utilize all those cores to render a Ray Traced scene 100 times faster then 1 core is able to do.

      --
      839*929
    6. Re:This isn't what we need in games by ddoctor · · Score: 1

      Assuming raytracing can be parallelized as gread as TFA makes it sound, rendering could just return to the CPUs

      GPUs are far more parallelized than CPUs - in that sense, it makes more sense to offload it to the GPU. However, CPU parallelization is increasing, so you never know. With things like GPGPU, the line between what's done on CPU and GPU is blurring.

    7. Re:This isn't what we need in games by cnettel · · Score: 1

      n being what? The beauty of it is that it's quite nice, when related to the number of pixels. The problem is the horrible non-locality when literally bouncing around the scene.

    8. Re:This isn't what we need in games by kestasjk · · Score: 1

      As I understand it from the article as the number of polygons goes up ray tracing becomes more and more attractive, and that's the major draw. Apparently there'll come a point where scenes are complex enough that it is more efficient to use ray tracing.

      He also hinted that ray tracing could make collision detection much better, so that you dont get hands/guns sticking through thin walls/doors, which would also be good.

      But hey I'm not rooting for one of the other, game devs will use whatever is best and I'll sit back and enjoy..

      Now to click submit before I open that 85MB PNG from the article..

      --
      // MD_Update(&m,buf,j);
    9. Re:This isn't what we need in games by Lurks · · Score: 1

      "I think the problem with the current system is that it scales horribly."

      On the contrary, it scales very well actually. You can simply use more pixel pipelines to do things in parallel to do less passes (which is what you see in most graphics hardware including the current consoles), or you can render alternate lines, or chunks of the display etc for multiple entire chunks of hardware such as SLI/Crossfire on the PC.

      The problem you describe is essentially that any complicated visual processing in very high resolutions requires a massive amount of processing power and that's expensive to implement. It's possible, it's just expensive. There's just no way in hell the massively massively more computationally expensive technique of raytracing is going to improve upon things. I game on a PC in 1920x1200 predominently with a very high graphics part with large amounts of dedicated memory. That costs a lot more than the hardware that's in a console but it's actually the same type of graphics part that's in the 360/PS3, it's just a higher spec part with more parallel bits etc.

      There's also a bit of light at the end of the tunnel for the first time with this stuff. A really good PC graphics card (the 8800GT) is now available for money which people would actually consider spending. Sadly this is a bit too little too late for the PC as a gaming platform but it does show the march of technology quite well.

      By the next console cycle they'll be pitched at whatever NVIDIA releases fall of 2009 most likely. With current performance increases I'd say a ballpark is being able to render in 1920x1200 comfortably with AA and with less performance concerns than the current generation in terms of on-screen content. No it wont be 33MP displays but honestly early-adopters aside it's still going to be a long time before 1920x1200 displays can be considered the norm for the living room.

      And I think you're into diminishing returns after that sort of resolution anyway. Better to remove some on-screen limitations due to console architectures (of which there is quite a lot, mostly due to lack of memory and bandwidth) rather than arms race the resolution issue alone.

    10. Re:This isn't what we need in games by Josef+Meixner · · Score: 1

      Graphics hardware has gone down an entirely different route whereby you write little shader programs which create surface visual effects on top of the bread and butter polygons and textures. This is a well established system by now and has a naturally compressive effect. It's like making all your visual effects procedural in nature rather than giving objects simple real-world textures and then doing a load of crazy maths to simulate reality.

      ... a way which was pioneered by the Reyes renderer (if I am not istaken) and is standard in any contemporary rendering system. Actually at that level there isn't a lot of difference between raytracing and rasterization. Raytracers often have more freedom in the shaders because e.g. shadows interact very elegantly with this system. A rasterizer needs to integrate shadow calculations (e.g. shadow volumes) in the shader code, a raytracer just shoots a shadow ray and then "knows" which light source has an effect and which one doesn't.

      Ways to aid game developers create content in parallel rather than throwing out the current rendering strategy adopted world wide by the games industry.

      There is one of the advantages of raytracers, you can use incredibly find details as the performance doesn't degrade as fast with many objects and with detailed objects and there are ways to even handle many light sources (one way is called "Lightcuts" and handles in the order of 100k lights without degrading too badly). It is even possible to delay the loading of objects and only represent them as bounding box and only load them when that bounding volume is hit. A rasterizer can't do that so far down.

    11. Re:This isn't what we need in games by mdwh2 · · Score: 2, Informative

      Keep in mind recent parallelization advances. According to TFA, raytracing performance scales almost linearly with the number of processors

      Yes, and standard rasterisation methods are embarrassingly parallel, too. As the other reply points out, we already have parallel processors in the form of GPUs. So I don't see that either multicore CPUs, or that raytracing is easily parallised, is going to make raytracing suddenly catch up.

      What we might see perhaps is that one day processors are so fast enough that people are willing to take the performance hit to get better effects from ray tracing (though even then, I hear that even non-real-time realistic 3D rendering often doesn't use ray tracing these days?)

    12. Re:This isn't what we need in games by Josef+Meixner · · Score: 1

      And why do you think that is any different with raytracing? Model geometry is very similar and I doubt that you will understand the math behind BDRF (Bidirectional Reflectance Function, a way to describe surface characteristics) or scattering in participating media without some time to study it. In fact they are so similar that OpenRT is a raytracer with an interface quite similar to OpenGL. The shader system is completely different, though as it wouldn't make sense to limit it to GPU-shaders without hardware support.

      Raytracer handle big geometry quite well, but if you think you can just throw everything in a naive way at them, you will get a bad surprise on the terrible speed. I don't see that modeling would be much easier, you don't have to model low poly (which is indeed hard), but because of the way raytracers work you often can't get away with a texture but need to have geometry. Also the textures are as muchwork, writing efficient shaders is not a lot different and the complete game logic is the same.

    13. Re:This isn't what we need in games by mdwh2 · · Score: 1

      If 100-cores CPU existed, it would be easy to utilize all those cores to render a Ray Traced scene 100 times faster then 1 core is able to do.

      And if a 100-core processor existed, we could use those to render rasterised graphics 100 times faster. Will 128 do?

      (I don't disagree with the rest of your post, but there is no special advantage with multicore processors and ray tracing.)

    14. Re:This isn't what we need in games by SharpFang · · Score: 1

      The little problem is that power usage scales almost linearly with the number of cores, and so does the price to a degree.

      2010 sounds realistic for a top-shelf equipment for the few chosen. 2020 looks more like consumer-grade electronics.

      --
      45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
    15. Re:This isn't what we need in games by Squalish · · Score: 1

      The japanese standard is, to put it bluntly, complete BS.

      We MIGHT have the technical capability to encode 4K video in 4:4:4 by 2015 in realtime with upper-pro-level gear - it's a stretch. We won't see cameras like the Red One standardize in movie studios until well after this decade, much less television studios. 33 megapixels for a broadcast standard is ludicrous - and will be impossible even for the highest end cinema to implement in 7 years.

      I'd settle for a solid, end-to-end 1080p60 in VC-1 as a broadcast standard - it's at the upper end of the picture quality an average person can distinguish, it's barely doable with today's hardware and bandwidth, and it's a big step above the current incredibly messy process (which usually includes reencoding in lower resolutions or horrible bitrates, interlacing, and viewing in non-native resolutions).

      --
      People in Soviet Russia, however, appear to be afflicted with amusing juxtapositions of the aforementioned situation
    16. Re:This isn't what we need in games by MobyDisk · · Score: 1

      But it is much harder to do certain effects this way. Ray tracing gives free per-pixel lighting, shadowing, reflections, and radiosity with minimal or no added work on the part of the developer. Tto do that same on today's cards the programmer must master a whole series of mathematical and psychological tricks and shortcuts to fake-out the apperance of those same things, then implement those in some funky assembly language for the video card.

    17. Re:This isn't what we need in games by crhylove · · Score: 1

      Remember also, that right now a Core 2 duo has 291 transistors. Eventually, with the advent of nanotechnology and other heat efficient technologies that make our current stuff like tinker toys, we may have 291 cores on a cpu. At that point, if there is an advantage to ray tracing (which I believe there are many), we'll be doing it. I'm interested to see physics advancing more in games for the next few years. I think there is a lot more improvement to be done in physics than in graphics, also hugely benefiting by multicore.

      In 1946 Eniac had approximately 175,000 transistors. In 2007 a core 2 duo had 291 million. So that's a ratio of:

      175,000:291,000,000 or

      7:12,000
      (I'm ball parking in my head, leave me alone).

      That happened in 60 years. So let's extrapolate 60 years.... I'm sure that there will be some derivative chips being sold THIS YEAR that have 8 cores, which is even more than 7 (if there aren't already, I'm not a chip fab engineer, obviously), so in 60 years I predict we will have 12,000 core chips.

      Now, imagine a beowulf cluster of those!!!

      I'll call it O'Drinnan's law:
      The increase of cores popularly used in silicon chips will be similar to the expansion of transistors in the previous age. Probably even 10 to 20 times faster. Let's wait and see about nanotech....

      --
      I hold very few opinions. I hold information based on observation and fact. If you wish to disagree, please use facts.
    18. Re:This isn't what we need in games by CannedTurkey · · Score: 1

      Impossible is a figment of your imagination.

      --
      Ingredients: Turkey, Mechanically Separated Turkey, Water, Salt, Flavour.
    19. Re:This isn't what we need in games by Ginger+Unicorn · · Score: 1
      according to TFA raster processes are a rough approximation of ray tracing, and an ultimately inefficient and non scalable one at that. once you get to certain number of polys ray tracing becomes better than raster processes in every regard (faster, more efficient, more detail), and can even be merged with the collision detection process for further efficiency and pinpoint detection. The point of TFA is that the advent of multicore CPUs will make it more efficient and less expensive to raytrace than to rasterize, eliminating the need for expensive power hungry video cards.

      if this turns out to be the case, this will also be a boon for linux by eliminating the need for complex proprietary video card drivers. The CPU can do all the work. And it introduces an immediate mainstream use for multicore cpus, instead of just video encoding and SETI.

      --
      (1.21 gigawatts) / (88 miles per hour) = 30 757 874 newtons
    20. Re:This isn't what we need in games by Bob-taro · · Score: 1

      Games aren't having a problem looking great.

      No, but you may have no idea how difficult it it to make them look that great. Most of the lighting, even in modern games, is pre-calculated, and they use a lot of "tricks" to get those realistic effects, but if you look closely enough, you start to notice the shortcuts. My current favorite games are the half life 2 series. The flashlight shadows look good, but they are unidirectional and don't "fan out" like they should. It looks fine at medium distance (and I think it just cuts off at some distance), but for very close objects it doesn't look right. An object very close and to one side of you will still cast it's shadow directly forward (rather than directly away from you). Sometimes the pre-calculated and dynamic lighting don't blend well. I remember one place where I pushed a door from a light room into a dark room, and part of the door still looked brightly lit.

      If you look at a map editor, there are all kinds of lighting "things" placed all over it, and reflection maps are placed at certain points and pre-calculated based on static lighting (which would imply, I guess, that you wouldn't ever see a reflection of a dynamic light, or even the light it casts). With ray tracing, lighting and reflections could all be calculated in real time, so the mapper's job would be easier with ray tracing, and you wouldn't necessarily have to throw any existing content - it would just be rendered differently (e.g., the author's ray traced version of Quake 4).

      I'm sure some things would be MORE difficult with ray tracing. I think diffuse lighting is pretty expensive, so maybe soft shadows and volumetric fog would be difficult. The author makes a compelling argument that ray tracing will become cheaper than rasterization at some point, but I'm sure it will have a rough start. I would expect the first big RT games to be designed to show off what RT does well, and cover up what it does not. Eventually, they will come up with tricks (and probably specialized hardware) to make "everything" look good, even if it's not always quite "right". Just like they've done with raster graphics. Then we'll have to work on getting real time photon mapping into games!

      --
      Prov 9:8 Do not rebuke mockers or they will hate you; rebuke the wise and they will love you.
    21. Re:This isn't what we need in games by Anonymous Coward · · Score: 0

      If you talk to game developers today, the main challenges and expenses for a game aren't related to the engine (maintaining and presenting and rendering the "game world") but the huge art assets required: modeling (terrain, buildings, characters, vehicles, objects...), animation (of mostly the same), textures & shaders (of the same), particle and other "special" effects, cut-scenes, and so on.

      That's where the huge ballooning of computer/console games has happened.

    22. Re:This isn't what we need in games by Anonymous Coward · · Score: 0
      I can buy an 8 core RACKMOUNT machine today for about 1000 GBP (about $2000). The UK is expensive, so I'm sure I could've gotten it cheaper in the US. A hostingprovider I've dealt with is providing 16 core (4x quad core) machines. 8 core (dual quad core cpu's) machines are alread most cost effective for some uses, and I'm sure 16 core ones are just a year away from being the most cost-effective across the board if you need the number of cores.

      In other words it's likely going to come down to how soon consumers "need" that many cores - the technology will be there in a couple of years since density is vital to keeping cost down for many enterprise uses (I can now easily stuff 16 cores into 1U of rack space, since the 8 core servers I mentioned are half depth - cutting the number of racks I need save about $1400/month per rack for hosting in London).

    23. Re:This isn't what we need in games by eefsee · · Score: 1

      One other point the article makes is that designing a high-quality world for a raster engine is a PITA. You have to take the time to not only "draw" the world, but to develop hints for the raster engine so that it can perform its job reasonably well. And even then, certain effects like the portals and reflections-in-reflections cited by the article will be showstoppers.

      The benefit of ray-tracing is as much a benefit to world and game designers as to players. As RT makes new worlds and effects possible and old notions easier to implement it will open doors. It will open doors to new gameplay, which players will like. And it will open doors to new designers, by lowering the complexity to game design.

      I first saw RT demonstrated on Crays in the Ohio Supercomputing Center in the 1980s. It was a elegant solution then, today the power of our processors and innovative shortcuts of some clever coders is bringing that elegance to the masses. I think we will love what this makes possible.

    24. Re:This isn't what we need in games by budgenator · · Score: 1

      The fallacy of nano-technology will always be the "processor", CPU's have 45 nanometer traces now and sometimes the electrons just barrel through the switches because they are too small to be seen (Quantum tunneling)! Shrinking them more will just mean the a calculation will have to be repeated several times to get reliable answers; we call them binary digits a 1 or a 0, but right now we are really at trinary digits, a 1, a 0 and a maybe

      --
      Apocalypse Cancelled, Sorry, No Ticket Refunds
    25. Re:This isn't what we need in games by Anonymous Coward · · Score: 0

      The current state-of-the-art rasterizers are the product of a long and vicious evolutionary cycle (remember back a few years ago when there were 40+ companies competing to get where nvidia ended up?). The fact is that if ray-tracing (which is a very well understood technique by everybody in the 3d hardware business) was a good architectural choice, the winning design today would have been a ray-tracer. Current rasterizer designs are massively parallel, with thousands of threads in flight and hundreds exectuting concurrently. There's no way that any general CPU (which has to handle exceptions and is tuned for very different instruction mixes) can compete with that, and even purpose-built ray-tracing hardware runs into the one key reason that rasterizers are the way they are: ray-tracers suck at using memory bandwidth efficiently. Walking a graph structure to figure out how to color each pixel is a terrible way to use each line of memory that you fetch, and by the time you solve that problem you've burned so much silicon on caches and coherency that you've given up area that a simpler rasterizer would have used to run more threads. Having worked in the industry since 1993, I'll make the bold prediction that for any given amount of memory bandwidth and desired image quality, a standard rasterizer will always beat a ray-tracer on cost by an order of magnitude (and thus will win in the marketplace).

    26. Re:This isn't what we need in games by Sloppy · · Score: 1

      As the other reply points out, we already have parallel processors in the form of GPUs. So I don't see that either multicore CPUs, or that raytracing is easily parallised, is going to make raytracing suddenly catch up.
      I don't know if it'll catch up, but if raytracing gets fast enough, it'll certainly be preferable. GPUs are neat when you happen to be playing a game, but they don't help a "make" command finish sooner.
      --
      As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
    27. Re:This isn't what we need in games by mdwh2 · · Score: 1

      GPUs are neat when you happen to be playing a game, but they don't help a "make" command finish sooner.

      Well, a multicore CPU won't help you there either.

    28. Re:This isn't what we need in games by BlueMonk · · Score: 1

      I think ray tracing would simplify things over the current model geometry from the developer perspective because you have more primitives to work with so you don't need to always be dealing with so many vertices and converting everything into triangles and whatnot. You can deal with objects at a higher level. I for one have done some work defining some simple POV-Ray scenes, but could never really get into modeling in a way that I could use in games (I think only recently has a free tool become available that would support that -- Blender -- while POV-Ray has been free a long time). Certainly there will still be complexities, but the bar is lowered for new developers trying to get started in 3D game development. Maybe that's a bad thing for the pros trying to make their mark in the industry, but for those of us who are struggling with finding adequate modeling tools and working with geometry, it'd be nice to deal with the higher level primitives that a ray-tracer could provide rather than always having to break it down into polygons (and align the textures on the edges of so many polygons? Is that an issue?)

    29. Re:This isn't what we need in games by mdwh2 · · Score: 1

      I'm afraid there's much misinformation in your post.

      * I could say that using shaders gives "free per-pixel lighting". I'm not sure if you mean free as in coding effort or performance - it's true for the former, as for the latter, on modern cards the difference between per-vertex and per-pixel doesn't seem to be significant (plus, it seems silly to criticise rasterising for its per-pixel performance anyway - it's still way faster than ray tracing!)

      * Shaders do not require "some funky assembly language", they are programmed in high level languages (which, I should point out, contain standard features that make graphics programming easier than standard C or C++). Assembly language was only used in the early days.

      * For that matter, shadows and reflections don't require shaders anyway.

      * The mathematics required to implement shadows or reflections is no harder than 3D programming in general, or what you'd need for doing ray tracing.

      * I'm not sure what you mean by "psychological tricks"? The algorithm for stencil shadow volumes for example mimics what you would expect - a pixel receives light from any light that isn't blocked (i.e., casting a shadow on it). The downside is that it can only handle direct hits from a light source, and it's harder to do light reflections from other surfaces.

    30. Re:This isn't what we need in games by Sloppy · · Score: 1

      Uhr? make -j 2 or some higher value depending on what you've got under the hood. Runs your gccs in parallel.

      --
      As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
    31. Re:This isn't what we need in games by nsebban · · Score: 1

      Games aren't having a problem looking great. They're having a problem looking great and doing it fast enough and game developers are having a problem creating the content to fill these luscious realistic-looking worlds.
      Lately, games are having a problem being fun :/
      I would love to see game editors work on the entertaining part of the games, which is basically what the customer is paying for.
      --
      ____
      nico
      Nico-Live
    32. Re:This isn't what we need in games by mdwh2 · · Score: 1

      Uhr? make -j 2 or some higher value depending on what you've got under the hood. Runs your gccs in parallel.

      CPUs are there for running a job very fast - GPUs are there for running tasks that are easily parallelised very fast. The latter are not just for games, it's just that 3D graphics is one of the few common tasks that is embarrassingly parallel.

      I'm not sure how ray tracing becoming standard is good for GCC compiling - since ray tracing is also embarrassingly parallel, if it becomes standard, we might see that offloaded onto a future GPU anyway.

      I haven't tried compiling with multithreading, but if it really does scale well, then there's no reason you couldn't do that job on a GPU either. Though I suspect what actually happens is that different threads are each compiled in a separate thread - in which case, it's better to have a smaller number of faster cores (a CPU) than a larger number of slower cores (a GPU). And which also means, suddenly having a 1,000 core CPU (as people are claiming will be utilised for ray tracing) won't make your compiling go 500 times faster than a dual core, unless you have 1,000 source files.

    33. Re:This isn't what we need in games by Anonymous Coward · · Score: 0
    34. Re:This isn't what we need in games by SoupIsGoodFood_42 · · Score: 1

      He also hinted that ray tracing could make collision detection much better, so that you dont get hands/guns sticking through thin walls/doors, which would also be good.

      Can someone please explain to me exactly why this happens? I've done some complex 3D modeling and animation (where weird things like that can happen), but not as familiar with gaming.

      At least in Stalker, you can just pretend it's an radioactive anomaly.

    35. Re:This isn't what we need in games by LordVader717 · · Score: 1

      Well, not if the unit for resolution (magapixels) already takes that into account.

  4. Also of interest ... by foobsr · · Score: 1

    There is a project 'The OpenRT Real-Time Ray-Tracing Project' (not so much open despite name, but noncommercial code available) out there, and presumably Blender should be there soon.

    CC.

    --
    TaijiQuan (Huang, 5 loosenings)
    1. Re:Also of interest ... by Yetihehe · · Score: 1

      Its name is OpenRT just because it's modeled after OpenGL. It has nothing open in it, only name.

      --
      Extreme Programming - Redundant Array of Inexpensive Developers
  5. Wow. by SCHecklerX · · Score: 2, Insightful

    I remember some scenes that I would create with PoV to sometimes take several hours for a single frame to complete. Now we're looking at doing it in real time. Amazing.

  6. Further Reading by moongha · · Score: 5, Interesting

    ... on the subject, from someone that doesn't have a vested interest in seeing real time ray tracing in games becoming a reality.

    http://realtimecollisiondetection.net/blog/?p=38

    1. Re:Further Reading by DeadChobi · · Score: 3, Insightful

      I think the article that your blog entry points to is a much better read on the subject. The article linked in the summary gushes on about how it's finally possible to ray trace in HD in real time, but only if you're willing to build a small cluster computer. In addition, the summary's article goes on about how the ray traced model scales logarithmically while the raster model scales linearly, but it doesn't provide a very rigorous explanation of where the writer is getting these values from.

      In short, I don't buy the summary article's viewpoint because at times he can be confusing or ambiguous with respect to his "proof." I like the parent's linked article, because the author of that article at least provides something computationally meaningful to think about.

      --
      SRSLY.
    2. Re:Further Reading by Cornflake917 · · Score: 1

      That's a pretty interesting article. I think rasterization will still be around for a while, mainly because there is so much hardware that is supporting it. However, I think if the future beholds much faster CPU's, ray tracing at some point might be able to handle very complex scenes more efficiently. Aliasing is problem, but it will always be a problem when you're are rendering a 3d scene to 2d pixels. With that said, I think we will have to see some more data structures/algorithms that will make ray casting more efficient if we want game developers to take it seriously. I'm guessing there hasn't been huge focus on efficiency on ray casting because the movies studios want quality over efficiency.

    3. Re:Further Reading by distributed · · Score: 1

      Quoting from the excellent article posted by the parent:

      A serious problem that is often overlooked when demonstrating a ray traced game like Quake 3 RT is that while ray tracing scales well for static scenes, it does not for moving scenes. The most important operation in ray tracing is to determine the closest triangle from the origin of any particular ray. This is generally done by building a partitioning tree which allows you to quickly disregard most of the triangles in the scene without actually doing the expensive intersection test. The problem is that computing these trees is expensive, and any change to the location of triangles inside the tree means recomputing the entire partition tree.

      The author of that article (Dean Calver) repeatedly gives examples (like the one above) to how doing ray-tracing in real-time for motion scenes scales much worse than rasterization.

      I think that this post is just another one in a series of FUD tactics by Intel to set the stage for Larrabee. Besides nothing prevents current one chip GPGPU systems (like CUDA from NVIDIA and CTM from ATI) from being better than that really expensive cluster.

      --
      [all generalizations are untrue except this one]
  7. Ray tracing is so wrong... by Oscaro · · Score: 0, Troll

    I keep finding people who think that ray tracing is some kind of "perfect" rendering algorithm.

    Actually I think of ray tracing as of the bubble-sort of computer graphics. It is absurdly naive, completely inefficient, and totally not necessary, especially for real time graphics. There are lots of different approaches to rendering that are much more flexible, efficient, and feasible.

    1. Re:Ray tracing is so wrong... by Anonymous Coward · · Score: 0

      Such as? Please...bestow your knowledge upon us, oh Great One.

    2. Re:Ray tracing is so wrong... by Maian · · Score: 2, Interesting

      According to the article, incorrect. Read the 3rd page: http://www.pcper.com/article.php?aid=506&type=expert&pid=3

    3. Re:Ray tracing is so wrong... by darthflo · · Score: 1

      Like?
      (I'm genuinely interested. Got some links for further reading?)

    4. Re:Ray tracing is so wrong... by tomandlu · · Score: 1

      Do you actually know what you are talking about?

      If so, feel free to expand, otherwise I can't help but feel that you're missing the point.

      Yes, plain vanilla raytracing has many inefficiencies, but so would a car without gears. All current raytracers implement various strategies for speeding up rendering (bounding boxes being the most obvious).

      As others have said (and partially covered in TFA), the advantage of raytracing is that it simulates a real-world process (albeit ass-backwards - i.e. light is traced from the viewpoint to the lightsource(s), rather than visa-versa), and therefore many effects that are buggy, difficult or impossible for traditional graphic engines are simplified.

    5. Re:Ray tracing is so wrong... by SharpFang · · Score: 1

      There was this project on /. with 'photon tracking' image generation. It emulated behavior of separate photons, their route and properties from the light source to the camera. The image got a nice effect of rainbow in a prism, realistic reflection in a mirror-like sphere, filtering the light through colorful glass etc. The problem was that creation of the image employed thousands of computers and months of work, and was still rather 'grainy', like high-sensitivity film. Meaning given enough computational power you'd get 100% accurate, perfectly made images, but we're far behind the 'enough' of the computational power yet.

      --
      45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
    6. Re:Ray tracing is so wrong... by SharpFang · · Score: 1
      --
      45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
    7. Re:Ray tracing is so wrong... by Yetihehe · · Score: 1

      Have you checked povray? It gives very good efects in hours (some raster images render in hours too).

      --
      Extreme Programming - Redundant Array of Inexpensive Developers
    8. Re:Ray tracing is so wrong... by Anonymous Coward · · Score: 0

      Yes, thats called Photon Mapping, and it generates very nice images, but it uses the same algorithms as ray tracing, and is much, much, much less efficient as it is a stochastic process; many photons will not contribute to the visible scene, and even worse, geometry culling is much more tricky as all the geometry in a scene has the potential contribute to the lighting of any one surface. Also, unless you're willing to model billions of photons, photon mapping only accurately simulates relatively diffuse effects like indirect lighting and caustics, and is generally only used to generate a lightmap. To actually render the image (at least if you want reflection and refraction in the traditional mirror/glass ball sense) still requires regular raytracing.

      A realtime raytracer with a photon mapper backing it up would be amazing though.

    9. Re:Ray tracing is so wrong... by Oscaro · · Score: 1

      Like?
      (I'm genuinely interested. Got some links for further reading?) The algorithms currently used by all the graphic cards are perfectly fine, with the help of shadow mapping, ambient mapping, reflection mapping and all sort of tricks that let you generate a plausible image, even if it is not "physically accurate". All the auxilliary maps can be efficiently generated on the fly.

      Even in non-realtime renderings (ie: pixar movies) ray tracing is used VERY sparingly in very special situations when it cannot be avoided. They use a completely different approach wich (again) is based mostly on maps. See the papers on http://graphics.pixar.com/ and especially http://graphics.pixar.com/Reyes/paper.pdf

      BTW the software from pixar was used for most cg you ever saw in movies. See https://renderman.pixar.com/products/whatsrenderman/movies.html for a list.

      I really think that most enthusiasm for ray tracing comes from people who saw some ray-traced animation on the amiga 15 years ago and have not bothered to find out if something better is available.
  8. How far we've come in just 15 years by dada21 · · Score: 5, Interesting

    I was a founder of one of the Midwest's first rendering farms back in 1993, a company that has now moved on to product design. Back then we had Pentium 60s (IIRC) with 64MB of RAM. A single frame of non-ray traced 3D Studio animation took an hour or more. We had probably 40 PCs that handled the rendering, and they'd chug along 20 hours a day spitting out literally seconds of video. I remember our first ray trace sample (can't recall the platform for the PC, though) and it took DAYS to render a single frame.

    I do remember that someone found some shortcuts for raytracing, and I wonder if that shortcut is applicable to realtime rendering today. From what I recall, the shortcut was to do the raytracing backwards, from the surface to the light sources. The shortcut didn't take into account ALL reflections, but I remember that it worked wonders for transparent surfaces and simple light sources. I know we investigated this for our business, but at the time we also were considering leaving the industry since the competition was starting to ignite. We did leave a few months early, but it was a smart move on our part rather than continue to invest in ever-faster hardware.

    Now, 15 years later, it's finally becoming a reality of sorts, or at least considered.

    Many will say that raytracing is NOT important for real time gaming, but I disagree completely. I wrote up a theory on it back in the day on how real time raytracing WOULD add a new layer of intrigue, drama and playability to the gaming world.

    First of all, real time raytracing means amazingly complex shadows and reflections. Imagine a gay where you could watch for enemies stealthily by monitoring shadows or reflections -- even shadows and reflections through glass, off of water, or other reflective/transparent materials. It definitely adds some playability and excitement, especially if you find locations that provide a target for those reflections and shadows.

    In my opinion, raytracing is not just about visual quality but about adding something that is definitely missing. My biggest problem with gaming has been the lack of peripheral vision (even with wide aspect ratios and funky fisheye effects). If you hunt, you know how important peripheral vision is, combined with truly 3D sound and even atmospheric conditions. Raytracing can definitely aid in rendering atmospheric conditions better (imagine which player would be aided by the sun in the soft fog and who would be harmed by it). It can't overcome the peripheral loss, but by producing truer shadows and reflections, you can overcome some of the gaming negatives by watching for the details.

    Of course, I also wrote that we'd likely never see true and complete raytracing in our lives. Maybe I'll be wrong, but "true and complete" raytracing is VERY VERY complicated. Even current non-real time raytracing engines don't account for every reflection, every shadow, every atmospheric condition and every change in movement. Sure, a truly infinite raytracer IS impossible, but I know that with more hardware assistance, it will get better.

    My experience over the years was ALWAYS with static images that were raytraced. They looked great, but it wasn't until I experienced raytraced animations (high res, many reflective and transparent layers with multiple light sources and a sun-source) that I really saw the benefit and how it would aid in gaming.

    The next step: a truly 3D immersive peripheral video system, maybe a curved paper-thin monitor?

    1. Re:How far we've come in just 15 years by Twisted64 · · Score: 5, Funny

      Imagine a gay where you could watch for enemies stealthily...
      How's that voice recognition software working out for you?
      --
      Consciousness is a myth. Trust me.
    2. Re:How far we've come in just 15 years by Anonymous Coward · · Score: 1, Funny

      Imagine a gay

      Paging Dr. Freud ...
    3. Re:How far we've come in just 15 years by 192939495969798999 · · Score: 2, Interesting

      You can do global lighting (the next step from radiosity) with no side effects using interval rendering/raytracing. and since interval math lends itself to parallelization, your only limit would be hardware cost, which should eventually be low enough to have a globally-lit and raytraced real-time game. At first maybe just 3d pacman, but how awesome would that be!

      --
      stuff |
    4. Re:How far we've come in just 15 years by 4D6963 · · Score: 2, Funny

      Imagine a gay who could watch for enemies stealthily by monitoring shadows or reflections

      There, fixed it for you, it makes a bit more sense now, I guess..

      --
      You just got troll'd!
    5. Re:How far we've come in just 15 years by hackstraw · · Score: 1

      My experience over the years was ALWAYS with static images that were raytraced. They looked great, but it wasn't until I experienced raytraced animations (high res, many reflective and transparent layers with multiple light sources and a sun-source) that I really saw the benefit and how it would aid in gaming.

      All this is fine, but I think we will have to wait another 20+ years for computers to be fast and cheap enough before this becomes a reality.

      The next step: a truly 3D immersive peripheral video system, maybe a curved paper-thin monitor?

      The quality/cost is variable, but these things are available today. Shutter glasses, linear and circular polarized glasses, there is a TV on the market right now that offers a degree of 3dness w/o glasses (I can't find the link to it now).

      Its definitely more fun dreaming about what will come in the computer world, than dealing with the "Why the fsck doesn't this work like it should?" today.

      fscking pays better than dreaming though.

    6. Re:How far we've come in just 15 years by Marvin01 · · Score: 1

      The next step: a truly 3D immersive peripheral video system, maybe a curved paper-thin monitor?
      I don't know about curved monitors or true 3D immersion, but I would expect in the near future to see PC games with support for 3 monitors, the main display screen and two others which you would arrange to give peripheral vision.
    7. Re:How far we've come in just 15 years by framauro13 · · Score: 1

      Now, 15 years later, it's finally becoming a reality of sorts, or at least considered. So your scenes finally completed rendering? :)

      A very interesting perspective.
      --
      In an effort to conform with internet communication standards, please note that the above comment is 100% biased opinion
    8. Re:How far we've come in just 15 years by nschubach · · Score: 1

      All this is fine, but I think we will have to wait another 20+ years for computers to be fast and cheap enough before this becomes a reality.
      This is the part that I don't understand... We have the massively parallel video cards, couldn't silicon be etched to speed up common ray trace functions?
      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
    9. Re:How far we've come in just 15 years by dada21 · · Score: 1

      All this is fine, but I think we will have to wait another 20+ years for computers to be fast and cheap enough before this becomes a reality.

      I'm not sure I agree, only because we're currently considering what horsepower we would need tomorrow to do it the way we do it today. I've looked at the technology many times over 15 years, including writing a few theoretical thoughts that I sold to private developers back in the day. One thing I looked at was a pre-rendered set of values for each object and face that would inflict value changes on other object/faces on the same plane (positive, negative variations). The idea was to use something similar to polarization values to instill a sense of raytrace effect on other objects in the same polarization plane. As far as I know, not much has come of these ideas, but then again I don't pay as much as attention as I did.

      As we find new ways to get to the same calculations, or close to it, we can shave quite a bit of processing needs off. Pre-rendering values makes sense, and I think some 3D engines use that idea already. We're not talking about rendering millions of rays through thousands of objects, if you can just segment the object-faces into maybe 3000 planes (or less) and just add or subtract light based on the percentage/distance from other objects. Someone WILL find shortcuts, I'm sure.

      The quality/cost is variable, but these things are available today. Shutter glasses, linear and circular polarized glasses, there is a TV on the market right now that offers a degree of 3dness w/o glasses (I can't find the link to it now).

      All those technologies are more harmful to true peripheral gaming progression. I've tested all of them, and was even on an alpha committee for some devices going back 10+ years or more.

      The biggest problem with peripheral rendering is that it HAS to be directly effected by head tilts. Peripheral images MUST stay peripheral. The only product I ever theorized that would work well would be a headset with 2 panels per eye. The front panel would be your "full front vision" and the second panel would be a circular wrap LCD around the front panel, with the image slightly blurred or reduced in true resolution. If you notice something due "West", meaning on the left middle part of the circular panel, and move your head to look, that vision comes into focus on your main panel, and the rest of the panel shifts its peripheral view. This means real time head-motion sensing, which we've seen can be done successfully. Would gamers use it? Doubtful. Would it be standardized for competitive products to use the same software code? Even more doubtful. But it CAN be done elegantly and usefully.


      Its definitely more fun dreaming about what will come in the computer world, than dealing with the "Why the fsck doesn't this work like it should?" today.

      fscking pays better than dreaming though.


      I tend to disagree. Companies are willing to pay for theoretical products that are outside the box, especially if you have the sofware and hardware knowledge to build a virtual prototype. The big problem is that many employees are fearful of taking the risks to find that reward.

      For industry-types out there: I do have about 3 theory papers ready to sell and consult on going deeper into some of these thoughts :)

    10. Re:How far we've come in just 15 years by Mister+Whirly · · Score: 1

      I had a Matrox card that would do that about 5 years ago. Too bad only about a dozen games or so supported it.

      --
      "But this one goes to 11!"
    11. Re:How far we've come in just 15 years by SuiteSisterMary · · Score: 1

      ...so, why *do* they call you Solid Snake?

      --
      Vintage computer games and RPG books available. Email me if you're interested.
    12. Re:How far we've come in just 15 years by mehere101 · · Score: 1

      AS much as I would like to see raytracing, There's no way that we will see it take over rasterized methods for quite some time. For one thing, elements of what you have said have already come. Stencil shadows using John Carmacks depth-fail method already provide pixel perfect shadows. While glass currently cannot perform realtime cubemap rendering, in the future I can see glass being able to render true reflections.

      All this is additionally limited because most of the Realtime raytracing techniques I have seen are not able (currently) to use shader programs or anything similar. Vertex shaders, which modify aspect of vertices, have obvious uses in all areas of 3d rendering. The biggest issue I see is the lack of fragment shaders (pixel shaders in Direct X). These allow complex shading, such as real-time radiosity, real-time ambient occlusion, Relief mapping, Post processing, etc.

      Despite all this, Raytracing will eventually overtake rasterization due to raytracing scaling to cores much better that rasterization. It is hard to predict how soon we'll see raytracing, and to be honest I don't see it happening too soon (unless nVidia and AMD/ATI release raytracing optimized graphics cards)

    13. Re:How far we've come in just 15 years by hackstraw · · Score: 1

      The biggest problem with peripheral rendering is that it HAS to be directly effected by head tilts. Peripheral images MUST stay peripheral. The only product...

      Circular polarized glasses are not affected by head angle. Even works upside down. They are "achromatic" to boot, no ghosting or strange colors, but they are still goofy glasses, and it a requires dual rear projection setup.

      I tend to disagree. Companies are willing to pay for theoretical products that are outside the box, especially if you have the sofware and hardware knowledge to build a virtual prototype. The big problem is that many employees are fearful of taking the risks to find that reward.

      For industry-types out there: I do have about 3 theory papers ready to sell and consult on going deeper into some of these thoughts :)


      I've never really worked "in industry", kinda been instutionalized since grade school (either in schools, working for them, or similar environments). In these worlds, we ask/beg/plead^H^H^H^H^H^H send proposals to the government for funding. Slightly different worlds.

    14. Re:How far we've come in just 15 years by IdeaMan · · Score: 1

      The next step: a truly 3D immersive peripheral video system, maybe a curved paper-thin monitor? Add to that something like Ray-Traced sound. Possibly more complex due to interactions with surfaces of different sizes changing the frequency characteristics of the sound.

      --
      They ARE out to get you simply because They are in it for themselves and they don't care about you.
    15. Re:How far we've come in just 15 years by Anonymous Coward · · Score: 0

      It sucks balls.

    16. Re:How far we've come in just 15 years by budgenator · · Score: 1

      The first thing I thought of was how cool reducing or increasing atmospheric effects as a player progressed which would increase visual acuity or causing tunnel-vision every time you got hit or pulled too many G's.

      --
      Apocalypse Cancelled, Sorry, No Ticket Refunds
    17. Re:How far we've come in just 15 years by Anonymous Coward · · Score: 0

      Juth great!

  9. Now hear this by suso · · Score: 4, Insightful

    I get tired of hearing this talk about real time ray tracing. They might be able to get basic ray tracing at 15 frames per second or more. But it won't matter, the quality won't be as good as some of the high quality images that you see that take hours to render. Sometimes days.

    See, the two are incompatible because the purpose is different. With games, the idea is "How realistic can we make something look at a generated rate of 30 frames per second". But with photorealistic rendering the idea is "How realistic can we make something look, regardless of the time it takes to render one frame."

    And as time goes on and processors become faster and faster, the status quo for what people want becomes higher. Things like radiosity, fluid simulations and more becomes more expected and less possible to do in real time. So don't ever count on games looking like those still images that take hours to make. Maybe they could make it look like the pictures from 15-20 years ago. But who cares about that? Real time game texturing already looks better than that.

    1. Re:Now hear this by IceCreamGuy · · Score: 5, Insightful
      from TFA:

      At HD resolution we were able to achieve a frame rate of about 90 frames per second on a Dual-X5365 machine, utilizing all 8 cores of that system for rendering. The quote is referring to Quake 4. So they already can raytrace a semi-modern game at 90 FPS, and they have a graph that very clearly shows raytracing at a performance advantage as complexity increases. Just look at the damn graph (page three), the point where raster performance and raytracing performance intersect can't be more than a couple years off, and it's apparent that we may even have crossed that point already. Continue becoming tired of hearing about raytracing, the rest of us will sit patiently as the technology comes of age. Personally, I'm tired of hearing about this HD stuff, I mean, it's not like HD TVs will ever be mainstream, with their huge pricetags and short lifespans. Oh wait...
    2. Re:Now hear this by jibster · · Score: 1

      I wish I had mod points to give you, this is the post I wanted to make. Forget the arguments that you think RTRT will never happen, its a mathematical certain that it will.

    3. Re:Now hear this by suso · · Score: 4, Insightful

      The quote is referring to Quake 4. So they already can raytrace a semi-modern game at 90 FPS, and they have a graph that very clearly shows raytracing at a performance advantage as complexity increases. Just look at the damn graph (page three),

      I don't have to look at the damn graph to tell you that what people are going to want is this

      And what they are going to get is this

      And, they should just be happy with this (which, is pretty awesome)

      My point is that real time photorealistic rendering will never catch up with what people expect from their games. It will always be behind. If all you want is mirrors, then find a faster way to implement them at the expense of a bit of quality.

    4. Re:Now hear this by cheater512 · · Score: 1

      Where are my mod points when I need them?

      If your going to do it, you might as well do it properly.
      It cant be done so dont worry about it.

    5. Re:Now hear this by MrNemesis · · Score: 3, Interesting

      Even more interestingly, they managed to do Quake 4 using CPU's only. Since modern graphics card are no longer just a bunch of vector processors but merely a colossal stack of many scalar processing units they should be able to be much more flexibly adapted to different types of processing - at the moment their internal software is generally specialised for polygon pushing, but I don't see any reason why nVidia or whoever could start developing an OpenRT stack to sit alongside their OpenGL and DirectX stacks, other than there not being much interest in consumer level raytracing just yet (is there raytracing work being done for GPGPU projects?).

      Are there any reasons why current GPU designs can't be adapted for hardware assisted raytracing?

      --
      Moderation Total: -1 Troll, +3 Goat
    6. Re:Now hear this by Mister+Whirly · · Score: 2, Interesting

      And people used to say the same thing about real-time 3D gaming in the late 80s. Along with - water and fire will never look realistic, you will never be able to render more than 10 frames per second, and nobody will ever buy an expensive video card with tons of memory and a FPU built in.

      --
      "But this one goes to 11!"
    7. Re:Now hear this by The_Wilschon · · Score: 4, Insightful

      I think you still should look at (and understand) the damn graph. The point of the article was that if you want a given complexity of scene (which translates into quality of image), you only have to get a little bit more complex than current game scenes before current ray tracing techniques become faster than current raster techniques. Thus, ray tracing at 30 fps will look better than raster at 30 fps in the near future, perhaps already. Ray tracing is the quickest known route to better graphics quality at the same frame rate in games.

      Yes, what can be produced will still be behind what people want or expect. But ray tracing will be less far behind than rasters in the near future.

      All of this is according to TFA; I don't know much about this from a technical standpoint.

      --
      SIGSEGV caught, terminating

      wait... not that kind of sig.
    8. Re:Now hear this by tolan-b · · Score: 4, Informative

      I think you're missing the point. The reason Quake 4 looks crap raytraced was because it wasn't written to be raytraced, no shaders are being applied (because they were all written for a raster engine) so of course it looks bad. This stuff is just research.

      One of the biggest hurdle in game graphics is geometry detail. Normal mapping is just a hack to make things appear more detailed, it breaks down in some situations. Raytracing will allow *much* higher geometry detail than rasterisation. Better reflection, refraction, caustics and so on are just gravy.

    9. Re:Now hear this by Anonymous Coward · · Score: 2, Informative

      (is there raytracing work being done for GPGPU projects?)

      In a word, yes. Check Beyond3D.com forum's GPGPU subforum (lots of raytracer stuff discussed and introduced) -- and also the CellPerformance subforum about raytracers on PS3's CPU (those SPEs rock for that) running on Linux of course.

    10. Re:Now hear this by MrNemesis · · Score: 2, Interesting

      Thanks for that, good to finally see something that seems ideally suited to the Cell.

      As an aside, isn't the work to combine your current bog-standard processors with inbuilt "graphics processors" (a la AMD Fusion and Intel Larrabee) just going to turn every consumer CPU into a Cell-ish architecture within five years or so - a number-crunching core or two plus an array of "dumb" scalar processors?

      --
      Moderation Total: -1 Troll, +3 Goat
    11. Re:Now hear this by Cornelius+the+Great · · Score: 4, Interesting

      You completely missed the parent's point. Traditional rasterization chugs when a scene gets complex enough (I think the complexity is O(n)). Ray tracing scales very nicely (O(Log n)) and you can throw in stuff like TRUE reflection/refraction with minimal decreases in performance, with millions more polygons. Yes, rasterization is faster in current games, but throw in hundreds of millions of polygons into a scene and see what happens.

      Furthermore, rasterization requires tricks (many would call them "hacks") to make the scene approach realism. In games today, shadows are textures (or stencil volumes) created by rendering more passes. While they look "good enough", they still have artifacts and limitations falling short of realistic. Shadows in raytracing come naturally. So do reflections, and refractions. Add some global illumination and the scene looks "real".

      Rasterization requires hacks like occlusion culling, depth culling, sorting, portals, levels of detail, etc to make 3D engines run realtime, and some of these algorithms are insanely hard to implement for best case scenarios, and even then you're doing unnecessary work and wasting unnecessary ram rendering things you never see. Raytracing only renders what's on the screen.

      That being said, I don't think raytracing will completely replace rasterization, at least not right away. Eventually, some games may incorporate a hybrid approach like most commercial renderers do today (scanline rendering for geometry, add raytracing for reflections and shadows). Eventually, 3D hardware will better support raytracing, and maybe in another decade we'll begin to see fast 3D engines that use ray tracing exclusively.

      --
      Sigs are for losers
    12. Re:Now hear this by roystgnr · · Score: 4, Informative

      they have a graph that very clearly shows raytracing at a performance advantage as complexity increases.

      No, they have a graph that very clearly shows that raytracing while using a binary tree to cull non-visible surfaces has a performance advantage over rasterizing while using nothing to cull non-visible surfaces. Perhaps someday a raster engine will regain that advantage by using these "BSP Trees" as well.

    13. Re:Now hear this by Anonymous Coward · · Score: 0

      So don't look at the damn graph. Just don't expect anyone to take your rant seriously if you aren't prepared to do the most basic research.

    14. Re:Now hear this by Anonymous Coward · · Score: 0

      God forbid there's lag time between what people want, and what they can have. Just because it won't catch up, does not mean someone shouldn't do it.

      People throughout history have been saying things were impossible, or weren't worth doing. People did many things anyways with amazing results.

      And we're never EVER going to get faster processors, or better techniques. NEVER...

      PS I am happy with your last example. I'd rather have a mildly accurate hit detection and fair lag adjustment system for multiplayer games, cause they currently suck badly.

    15. Re:Now hear this by Anonymous Coward · · Score: 0

      How about this? Or this?

      These are just proof of concept things, keep in mind. A couple researchers who don't necessarily have time to add in a bunch of special effects and make it look good, and on hardware that will be available to consumers in only a couple of years. And as explained in the article (although, honestly, I take it with a grain of salt) ray tracing only becomes logarithmically more difficult to render as you add more to the scene rather than linearly more difficult, plus you don't have overhead of portal calculations or precalculation of visibility occlusion, and physics detection and AI object detection can both be done using rays simultaneously to rendering (read: at almost no additional cost).

      Seriously, you took a ray tracing screenshot from FOUR YEARS AGO and tried to compare it with a game that came out less than 6 months ago. And not only that, but a doctored publicity screenshot of crysis that doesn't even represent how the game looks. Trust me I worked at EA, I know how those publicity screenshots are made, and it has nothing to do with real time rendering.

    16. Re:Now hear this by RightSaidFred99 · · Score: 1

      This is worse than the (falsely attributed) "nobody will ever need more than 640k" quote. Seriously, the multicore revolution is just starting. When you start seeing processors with 80-256 cores and dedicated ray tracing optimization instructions those barriers you see will start falling very quickly. I'd say within 5 years we'll have the hardware capacity for realtime raytracing that looks a lot better than what we see now, and in 7 years realtime ratracing that looks like a Pixar movie.

    17. Re:Now hear this by RightSaidFred99 · · Score: 2, Insightful

      Again, your short-sightedness really amazes me. Have you not noticed how fast cores are being added? Look up Intel's Larrabee, for example. It's really a little silly to use the word "never" in this context. Unless you're being philosophical. Take for example youre first link. I'd bet you $50 that within 7 years we will be able to render that in realtime, at 1920x1200 resolution at 60 frames per second. 7 years is a lot sooner than "never".

    18. Re:Now hear this by MukiMuki · · Score: 1

      Is it just me or do in-game raytracing folks seems to miss a rather dirty point? Yes, raytracing performance increases linearly with more processors. Yes, it can handle a lot of things (polygon-level hit detection) with a minimal hit on performance. Yes, it can give you true reflections... ... but resolution and framerate jumps will MURDER you. Whoopty do, 15fps @ 256x256 on a quad core processor. You realize that 30fps @ 1024x768, which is the BARE BONES MINIMUM for a PC game (seriously, dipping below either one of those numbers in 2008 is goddamn embarassing) would require *96* processors running at that speed (12x for the resolution, 2x for the framerate). And that's with the current level of detail they've achieved in this demonstration.

    19. Re:Now hear this by MukiMuki · · Score: 1

      I would just like to point out that this is also with a world that would be difficult to make dynamic (something rasterized games are significantly improving in) with crappy lightning (faking GI or caustics seems to be doing really well in the rasterized world) and ZERO anti-aliasing (we're not even going to HAVE that discussion)

    20. Re:Now hear this by Cornelius+the+Great · · Score: 3, Insightful

      I've been working with computer graphics for quite a while, and I have seen trends in realtime rendering switch paradigms. We went from ray-casting hexagonal rendering (Wolfenstein 3D) to 2.5D BSP sector engines (Doom, Duke3D) and then onto rasterized "true" 3D (Descent, Quake). Ray tracing is the next step. Remember when Quake was only playable at 320x200 resolution on the average PC at the time (Pentium 60), while Duke3D ran fine in SVGA? I do.

      It's like arguing that we should go back to raycasting because it can render a textured cube many times faster than a 3D rasterized engine could.

      You're being rather shortsighted.

      --
      Sigs are for losers
    21. Re:Now hear this by IdeaMan · · Score: 3, Interesting

      Actually if the Open Source world gets a clean, easy to use OpenRT stack and standard going before MS they would have one shot at making the next Killer App. Once they get that one truly awesome game out using RT and an easy way to switch to Linux, the rest of the gaming world could fall right into their laps.

      --
      They ARE out to get you simply because They are in it for themselves and they don't care about you.
    22. Re:Now hear this by Cornelius+the+Great · · Score: 2, Insightful

      Btw, you do realize that 15 fps on a quad-core processor is done ON the cpu. You're comparing software rendering of raytraced rendering vs. hardware-accelerated rasterization. With the newest graphics cards, we're seeing just the first generation of hardware-accelerated raytracing. Give it some time.

      --
      Sigs are for losers
    23. Re:Now hear this by comingstorm · · Score: 1

      Are there any reasons why current GPU designs can't be adapted for hardware assisted raytracing?

      Yes. Current GPU designs are very poor at branching; and the the geometry acceleration structures in ray tracing (which take a big part of the time) use lots of branches to traverse. It's possible there may be some way to circumvent this problem, but I haven't heard of anyone finding one yet...

      You may still be able to use the GPU to accelerate some parts of the ray tracing pipeline. Surface shading in ray tracing is very similar to pixel shading in rasterization; and at any rate you should be able to use the GPU as a postprocessor to combine the rays into the final image. But so far the GPU has proven poorly adapted to the abovementioned geometry processing.

    24. Re:Now hear this by Anonymous Coward · · Score: 0

      Also, normal mapping is actually an intermediate rendering. That's why we hear of models having 5 million polys, an RT engine would use the 5 million poly directly, and look much better (no jagged edges, for one).

    25. Re:Now hear this by SCSI-Wan · · Score: 1

      I in no way mean this to be offensive, but replace all your references to ray tracing with vector based rasterization, and you could have made the same argument 15-20 years ago (and I'm sure someone did). This view is only valid when looking at a static universe with regard to technology. Its the nature of all technology to eventually be replaced by some other technology that, when in its infancy, was vastly inferior to its predecessor. Otherwise, some of the most advanced games we'd be playing today could still be using side-scrolling pixmaps. If ray tracing does someday become dominate, eventually it too will be replaced by some other technique.

    26. Re:Now hear this by Anonymous Coward · · Score: 0

      A caveat of the oft-quoted O(log n) number: It's only true for static geometry. The data structure used is the k-tree, and was really intended for off-line rendering. It takes a long time to build it. The RTRT demos tossed around are using a mixed scenegraph of k-trees for the world and more naive approaches for entities, IIRC.

      However, RTRT researchers have been investigating alternative methods for culling and optimizing scenes which allow for detailed dynamic meshes. What you want to look for are the "State of the Art in RTRT" reports which are made ~yearly.

    27. Re:Now hear this by Anonymous Coward · · Score: 0

      Whoopty do, 15fps @ 256x256 on a quad core processor
      Where is this figure coming from? The article says 90 fps @ 1280x768 on an 8-core processor.
    28. Re:Now hear this by grumbel · · Score: 3, Insightful

      The problem I have with ray-tracing is that I find it hard to see its advantages. Sure, it can put out more polygons then raster and it can do reflective spheres and sharp shadow. But those things have very little to do with visual quality. Reflections are pretty much a non-issue, nobody really cares as long as there is something that looks somewhat close to a reflection and environment maps can get that done. Sharp shadows are actually extremely ugly and people are moving onto soft shadows now. Higher polygon counts, sure nice to have, but again not really all that important, slap on a few normal maps and you can have your 5'000'000 reduced to a 5'000 polygon model without noticeable detail loss.

      The majority of quality improvement these days seems to come from post processing effect and clever textures and programmable shader use. If you want to get fur on an animal via polygons you will have to spend a load of rendering time, but if you fake it with textures you can get pretty good results on todays hardware. Same with shadows and a lot of other stuff. Doing it 'right' takes a load of computing power, faking it works in realtime.

      I simply haven't seen all that much raytracing that actually could compete with current day 3D hardware, those that do look better then todays 3D hardware is done in offline renderers and takes hours for a single frame.

    29. Re:Now hear this by Madsy · · Score: 1

      What I love about raytracers, is that a lot of concepts like shadowing, lighting and refraction falls naturally in how the algorithm works. It is fun to code.
      Nothing stops you from using dot3 maps, specular maps and the like in a raytracer though. By computing the barycentric coordinate for the triangle you hit, you can interpolate data between the vertices, like texture coordinates and vertex colours. (if you really need that)
      And it is actually the rasterizers that depend on high polygon counts; not the other way around. By increasing or decreasing the vertex count, rasterizers can adjust the accuracy of the data interpolated between vertices. ** This is why smooth shading looks like shit on low-poly meshes. Raytracers rely on this at all, since the pixels are totally independent from eachother. Also, any primitive that can defined as a parametric equation, can also be presented directly instead of using triangles.

      ** I have to admit, the use of normal maps solves this to some extent.

    30. Re:Now hear this by smellotron · · Score: 1

      Current GPU designs are very poor at branching; and the the geometry acceleration structures in ray tracing (which take a big part of the time) use lots of branches to traverse.

      Second that. One of the big advantages of rasterization is the cache. Raytracing is notorious for locality of memory references.

      You may still be able to use the GPU to accelerate some parts of the ray tracing pipeline.

      Check out The Ray Engine. This uses the GPU to parallelize ray-triangle intersections.

      ...at any rate you should be able to use the GPU as a postprocessor to combine the rays into the final image.

      Raytracing basically gives you point samples across a 2d plane. Rasterizing those point samples is a pretty straightforward task for the GPU. Not to mention all of the other rendering layers: someone mentioned caustics... you could dedicate one CPU to photon-mapping caustics and layer those on as a rasterized "onion skin".

    31. Re:Now hear this by RedWizzard · · Score: 1

      Higher polygon counts, sure nice to have, but again not really all that important, slap on a few normal maps and you can have your 5'000'000 reduced to a 5'000 polygon model without noticeable detail loss. There is still a long way to go before adding polygons won't improve the image. We're nowhere near the limit yet.

      The majority of quality improvement these days seems to come from post processing effect and clever textures and programmable shader use. All of which are largely techniques to get around the limitations of rasterization. They provide approximations of higher polygon counts. But if it's possible to just use the higher polygon counts why would you not do so? It kind of reminds me of the CISC v RISC phase processor development went through. Processor architecture got more and more complex until eventually a radical change was the best way forward.

      If you want to get fur on an animal via polygons you will have to spend a load of rendering time, but if you fake it with textures you can get pretty good results on todays hardware. Same with shadows and a lot of other stuff. Doing it 'right' takes a load of computing power, faking it works in realtime. Raytracing will be superior in the long run - it scales better. That's pretty much the whole point of the article. You're comparing real time raytracing using only general purpose CPUs to rasterization using dedicated GPUs and concluding that the rasterization looks good enough and performs better. That's true, but not really a valid comparison - you should be looking a pure software rendering for the rasterization as well. If you do that you find that realtime raytracing already looks better and as soon as it gets any traction with the game developers you'll start seeing hardware for it too.
    32. Re:Now hear this by RedWizzard · · Score: 1

      Whoopty do, 15fps @ 256x256 on a quad core processor. You realize that 30fps @ 1024x768, which is the BARE BONES MINIMUM for a PC game (seriously, dipping below either one of those numbers in 2008 is goddamn embarassing) would require *96* processors running at that speed (12x for the resolution, 2x for the framerate) According to TFA they are up to 90fps @ 1280x720 with 8 cores. Perhaps you should read the whole article next time?
    33. Re:Now hear this by RedWizzard · · Score: 1

      That being said, I don't think raytracing will completely replace rasterization, at least not right away. Eventually, some games may incorporate a hybrid approach like most commercial renderers do today (scanline rendering for geometry, add raytracing for reflections and shadows). The article's argument is that the hybrid approach makes no sense. If you're doing shadows and reflections via raytracing then you're probably going to have at least one ray per pixel anyway so all you're saving is the primary rays at the cost of doing the whole rasterization routine. It might be the best option in some cases but the article's author expects people will find that it'll generally be better just to cut over to raytracing entirely.
    34. Re:Now hear this by MrNemesis · · Score: 2, Insightful

      Sod the game - if there was an open source, cross-platform hardware, architecture agnostic accelerated RT API available (I'm assuming that vendor-specific OpenRT acceleration a la nVidia's OGL would still be closed source) that made RT viable for the mainstream (either for gaming or CAD/animation work), there'd be practically no difference between MS and everything else either for gaming (including consoles) or 3D workstation work, and D3D would no longer be the de feacto standard for accelerated 3D - that'd be a BIG win for open standards.

      Ah, a man can dream... :D

      --
      Moderation Total: -1 Troll, +3 Goat
    35. Re:Now hear this by Creepy · · Score: 1

      you've got some of that right
      Ray Tracing does in fact scale better than rasterization. I don't remember the Big-Oh numbers exactly, but I believe you're correct in that it is O(logn) with no reflections - more on that later...

      With the exception of LOD, none of those are really hacks - they just remove parts of the scene that aren't needed, something rasterizers excel at, but you can't really do with ray tracers because ray tracers need to be aware of the entire scene (since object know about each other). Ray tracers usually throw away objects rather than reduce their detail if the scene is too large, and I'm not sure that's better.

      what isn't quite right:
      Most modern renderers can do single pass shadows with some limitations (e.g. casters can't get too close to the light source).

      both raytracing and rastering draw only what's on the screen but need to be aware of objects offscreen for purposes of shadowing and lighting. Rasterization does this by clipping polygons against the view volume, raytracing by casting rays for each pixel shown and ignoring anything outside the display area. Clipping is a hardware operation and doesn't affect runtime performance these days.

      HARD shadows in ray tracing come naturally. Ray tracers actually do diffuse lighting poorly, so soft shadows require costly operations such as photon mapping or radiosity.

      I'm not so sure about graphics cards ever supporting raytracing - what is probably more likely is a on-dye convergence with the CPUs, and from what I've read, companies like Intel are already working on this. As I said, raytracing needs to be aware of the scene because objects see each other to properly draw reflections and shadows. That means it is best if the entire (viewable) scene is in memory (geometry and textures). GPUs currently work on limited datasets - limited parts of the scene and textures are in memory and they fake shadows and don't do true reflections because objects are not aware of other objects. I believe ray tracing could massively benefit from Unified Shaders if implemented on-dye with a CPU, because they probably can be used like a bunch of high speed parallel processors. Parallel memory access to data may be the biggest time hamper.

      other stuff:
      Ray tracing and pseudo ray tracing are already used in games, just not at the scene level. Look at Steep Parallax Mapping or Relief Mapping - both those techniques use pseudo ray tracers on what is essentially a 3D texture (it's a mapped surface - and some versions I've seen even use true ray tracing for modern hardware).

      When you add in a technique that gives good diffuse to a ray traced scene, its big-Oh value is as bad or worse than rasterization (photon mapping is O(nlogn), I think Radiosity is O(n^2)).

      In summary, Ray Tracing excels at:
      Specular Lighting, reflections, and hard shadowing
      rendering complex scenes
      rendering any mathematically defined object (spheres, tori, etc), not just polygons
      visual accuracy (spheres are round, for instance).
      is easily parallel-izable (each ray can be calculated independently).

      Ray Tracing stinks at:
      Diffuse lighting and related effects such as soft shadows.
      Scene reduction (not suitable for GPU)
      speed on smaller scenes
      Spacial indexing (realtime tree recalculation is much worse than for rasterization, as I recall, so it works best on static scenes)

      If you haven't noticed, I don't favor one or the other, I think they both have merits and drawbacks. In college I estimated by Moore's law that by 2011 individual CPUs would be faster than rasterizers for most scenes provided Z-buffering replaced the painter's algorithm (which I expected because I used hardware accelerated IRIX workstations), but I totally missed the scaling and power of GPU hardware and multi-core processors, so it's amusing that that date actually may still be pretty close to correct.

      There may be an interesting battle coming up. I think the next gen shader will be a tessellation shader, so you fee

    36. Re:Now hear this by aztektum · · Score: 1

      Yes because, you know, the computers we have now will be the same ones we use 10+ years from now. Computer chip makers are switching over to competing with Frito-Lay. MS and F/OSS people have decided to quit battling and throw picnics (however it turns ugly when F/OSS organizers invite everyone, but MS only wants to invite its buddies). Technology as it exists *right now* is the best we'll ever see.

      It's the downward spiral! The end is nigh! Hug your PC's and cherish them, for soon it will be back to using slide rules, pencils and parchment!

      --
      :: aztek ::
      No sig for you!!
  10. Holy Grail? Maybe not. by Dr.+Eggman · · Score: 3, Informative

    Although I have a hard time arguing in the realm of 3D lighting, I will direct attention to the Beyond3D article, Real-Time Ray Tracing: Holy Grail or Fool's Errand?. Far be it of me to claim that this article applies to all situations of 3D lighting, it may be that Ray Tracing is the best choice for games, but I for one am glad to see an article that atleast looks into the possibility that Ray Tracing is not the best solution; I hate to just assume such things. Indeed, the article concludes that Ray Tracing has its own limitations and that a hybrid with rasterisation techniques would be superior to one or the other.

    --
    Demented But Determined.
  11. shaders vs ray tracing .... by Anonymous Coward · · Score: 1, Interesting

    As already mentioned, openrt is not open source. A good open source RTRT I've looked at is Manta. http://code.sci.utah.edu/Manta/index.php/Main_Page

    And to the (+5 Insightful) naysayer who says that the future of games will be in shaders not in RT ... what are you comparing there? You're almost comparing a technology with an implementation.

    You can implement a ray tracer on the gpu. I.e. through the use of shaders.

    1. Re:shaders vs ray tracing .... by ASBands · · Score: 1

      This is actually my research project (ray tracing on graphics card). As far as I know, all the current working ray-tracers are implemented on CPU. From what I can tell (from the multiple failed implementations), there seem to be endless issues with driver incompatibility, because through software emulation, the systems at least run, but emulating defeats the purpose of implementing RT with shaders in the first place. The graphics card is Turing-complete, even if it isn't sovereign.

      GPUs have numerous advantages, the most obvious being how parallelize-able the shader architecture is. The raw processing power of a GPU is so much greater than a CPU for stream processing, and there are many computer science problems that can be translated to a streaming model. Memory access time is incredibly fast (if you even need it with the 4096 registers) and GPU performance on the card is (theoretically) more controllable, as you don't have to deal with operating system interference.

      Translating ray-tracing to a stream model is involved, but there are tons of advantages when it comes to building an interactive engine. Once the primary lighting is done (the ambient and shadow calculations), the system can stop - but not just stop, it can stop on the fly. When the first pass kernel finishes its job, we can test how much time has passed since the last screen render and choose to not calculate diffuse and specular, reflection and transmission on the fly. Reflection and transmission calculations are unique in that they can theoretically go on forever. The question is: How many times should a ray bounce before it stops? Long enough to keep up a framerate of 45 FPS? Sure, it is incredibly easy to implement. Granted, stopping a ray trace with the simplest part of lighting doesn't show off the areas where ray tracing is more efficient than rasterization, but it will still work.

      Some claim that ray tracing is completely inefficient for rendering non-static scenes. This comes from the fact that ray tracing relies heavily on acceleration structures and that, when objects in the environment move, these will need to be completely recalculated. As games get more and more detailed, things like individual blades of waving grass would present a problem. However, with uniform spacial subdivision (or "the Uniform Grid"), you can easily calculate the areas that a blade of grass can possibly be in and reuse the voxel coordinates throughout the scene. This is an even more trivial problem to overcome with nonuniform spacial subdivision, with the added cost of a harder to traverse acceleration structure. Each scene would have to be tested to see which technique is the most efficient on the majority of graphics cards, as there isn't going to be a definite answer.

      Which brings me to my last point, which is that I do not agree with TFA. There is nothing preventing a game from using both rasterization and ray tracing. It takes smarter (more?) programmers to deal with developing two different rendering techniques. The development of a quality ray tracer can also be applied to other parts of a simulator, as ray tracing is incredibly helpful in a physics engine. No, ray tracing is not the holy grail - nor is it a fool's errand. It will be something that every engine developer will need to know and understand. To those not in the small and specific business, you might notice a few more shiny things.

      --
      My UID is a prime number. Yeah, I planned that.
  12. already done with Quake by RMH101 · · Score: 2, Interesting
    1. Re:already done with Quake by mdwh2 · · Score: 3, Interesting

      It says that a quad core processor gets 16.9 frames at 256x256 resolution.

      Wow.

      (Like most ray tracing advocates, he points out that ray tracing is "perfect for parallelization", but this ignores that so is standard 3D rendering - graphics cards have been taking advantage of this parallisation for years.)

    2. Re:already done with Quake by quantumRage · · Score: 3, Informative

      well, if you look more closely, you would notice that the articles have the same author!

    3. Re:already done with Quake by Facetious · · Score: 3, Informative

      It says that a quad core processor gets 16.9 frames at 256x256 resolution. Keep reading there, genius. If you had read beyond page one you would see that they are getting 90 fps at 768x768 on a quad core OR 90 fps at 1280x720 on 8 cores.
      --
      Let us not become the evil that we deplore.
    4. Re:already done with Quake by Enahs · · Score: 2, Informative

      As someone pointed out in another comment, they're getting much higher framerates than that. Plus, their ultimate goal seems to be an OpenRT, roughly analagous to OpenGL, with the goal of interfacing with raytracing gfx cards.

      I for one welcome our new raytracing overlords...

      --
      Stating on Slashdot that I like cheese since 1997.
  13. Well DUH!! by Critical+Facilities · · Score: 1, Funny
    From TFA

    If you use a 16-core machine instead of a single-core machine then the frame rate increases by a factor of 15.2!

    No kidding?? Well if you drive a car with a 16 cylinder, 1500 HP engine, it's a LOT faster than a 4 cylinder compact. More on this story as it develops.
    1. Re:Well DUH!! by tmagic · · Score: 1

      4 times as fast?

    2. Re:Well DUH!! by Yetihehe · · Score: 1

      It's more trucking sand with 16 cars instead of one. Now try to truck one big rock with 16 cars. Some things aren't easily parallelizable (tough word). Also some processes don't look good when making car methaphore.

      --
      Extreme Programming - Redundant Array of Inexpensive Developers
    3. Re:Well DUH!! by Anonymous Coward · · Score: 0

      If you use a 16-core machine instead of a single-core machine then the frame rate increases by a factor of 15.2! No kidding?? Well if you drive a car with a 16 cylinder, 1500 HP engine, it's a LOT faster than a 4 cylinder compact. More on this story as it develops. WHOOSH! That's the sound of his claim going right over your head.
    4. Re:Well DUH!! by prefect42 · · Score: 2, Insightful

      I'm sure you thought you were being clever, but you weren't.

      If you knew anything about parallel algorithms you'd know that it's fairly common to have things that scale with more like 75% efficiency, and you're still happy. It's all down to how much communication is required, and how often it's required. With raytracing normally (as in, a decade ago when I knew anything about this) you'd parallelise over multiple frames. With real-time rendering you'd need to parallelise within a frame. Depending on your scene, there will be a static cost (bounding box calculations) in addition to the per-pixel costs.

      jh

      --

      jh

    5. Re:Well DUH!! by Critical+Facilities · · Score: 1

      I'm sure you thought you were being clever, but you weren't.

      Wow, aren't you a ray of sunshine?? I didn't say I knew anything about parallel algorithms, I admit I know nothing about them. I can grasp what you (and some others) have replied, but none of that information was stated in conjunction with the line I quoted from TFA. My point? It just struck me funny to have this odd statement that (at least on its surface) seems to state something OBVIOUS which is, 16 processors are faster than 1. So for crying out loud, lighten up, it was a joke.
    6. Re:Well DUH!! by Anonymous Coward · · Score: 0

      No, not DUH. Most algorithms don't parallelize nearly that well. 15.2x on a 16x core increase is very good.

  14. in the player's best interests, natch by Speare · · Score: 4, Insightful

    Daniel Pohl, a marketer at Intel

    There, fixed that for you.

    Raytracing the shiny first-intersection makes a lot of sense, even if it doesn't sell more CPUs. Sure, some day we will all have stunning holistic scene graphs that fit entirely within the pipeline cache of the processor, but it's not yet time for that.

    Every change in developing a game engine requires changes in the entire toolset to deal with how to produce assets, how to fit within render time limit budgets, and how to model the scene graph and the logic graphs so that both are easily traversed and managed.

    In the meantime, we have a pretty nice raster system right now, with a development strategy that provides for all those needs. You might not think that fullscale raytracing would upset this curve, but I'm not convinced. What do you do when a frame suddenly is taking more than 1/30sec to render, because the player is near a crystalline object and the ray depth is too high? How do you degrade the scene gracefully if your whole engine is built on raytracing? We've all played games where things like this were not handled well.

    I contend that game AI is sometimes more advanced than academic AI because game developers are results-oriented and cut corners ruthlessly to achieve something that works well enough for a niche application. The same goes for game graphics: 33 milliseconds isn't enough to render complex scene graphs in an academically perfect and general way, it will require the same results-oriented corner-cutting to nudge the graphics beyond what anyone thought possible in 33ms. If that means using raytracing for a few key elements and ray-casting/z-buffering/fragment-shading the rest of the frame, game developers will do it.

    --
    [ .sig file not found ]
    1. Re:in the player's best interests, natch by Anonymous Coward · · Score: 0

      Oh yeah, you're right ...

      "In the meantime, we have a pretty nice raster system right now ..."

      "In the meantime, we have a pretty nice Windows Operating system right now ..."

      You see some kind of parallel there ? It's not because the market is already oriented in some way that it's the way to go on ... We have here some generic CPU competing against a specialized hardware... Guess who wins ? The specialized hardware of course.

      I agree with you that until the raytracing "technology" is mature enough, it would need to cut corners to even be able to compete with Raster. But doesn't Raster cheat already ?

    2. Re:in the player's best interests, natch by Anonymous Coward · · Score: 0

      Every change in developing a game engine requires changes in the entire toolset to deal with how to produce assets
      Its not THAT bad. As most of the tool set is setup for polygons now. Guess what raytracing uses? I think the real bottleneck will be memory bandwidth with so many cpus chugging away.

    3. Re:in the player's best interests, natch by JMZero · · Score: 3, Interesting

      I contend that game AI is sometimes more advanced than academic AI

      I contend that game AI is almost always laughably bad (or pretty much non-existent). I realize Mass Effect doesn't exactly win a lot of points for its AI, but the problems very nearly ruined a AAA-developer/large-budget game. I remember one point where, out of battle, I was telling one of my squad to go somewhere. There was pretty much one feature in the room - a wall intersecting the direct path to the target point. Getting around this wall would require one small deviation from the direct path. Instead of walking around the wall, the character just stood there "I'm going to need a transporter to get there" or something.

      I can't imagine how the "AI" could have been implemented in order for that kind of failure to be possible (and common - I had repeated problems with this through the game). I assume they must have just cheated vigorously on the "follow" logic, as - if they'd used the same system - you'd be losing your squad around every corner.

      Really, though, none of the maps were that complicated. The "navigable area" map for the problem location couldn't have had more than 200 or so vertices (it was a very simple map, one of the explorable bunker type areas). That's few enough that you could just Floyd-Warshall the whole graph. But, more generally, a stupidly naive, guessing DFS (that capped at 3 turns or something) would have worked just fine too. I can't think of a solution or algorithm that would fail the way their system did constantly. Mind-boggling.

      Stepping back a bit, this shouldn't even be a consideration. There are simple, fast, robust algorithms that could handle this kind of trivial pathing problem without putting any strain on CPU or occupying more than a couple pages of code. That they don't have a better solution says that they (and most of the games industry, in my experience as a player) value AI at very close to 0.

      --
      Let's not stir that bag of worms...
  15. Now it's a good time for a new Amiga. by master_p · · Score: 2

    What's the Amiga have to do with raytracing? well, let me explain:

    When the Amiga was released, it was a quantum leap in graphics, sound, user interface and operating system design. It could run full screen dual-playfield displays in 60 frames per second with a multitude of sprites, it had 4 hardware channels of sound (and some of the best filters ever put on a sound board), its user interface was intuitive and allowed even different video modes, and its operating system supported preemptive multithreading, registries per executable (.info files), making installation of programs a non-issue, and a scripting language that all programs could use to talk to each other.

    20 years later, PCs have adopted quite a few trends from the Amiga (the average multimedia PC is now filled with custom chips), and added lots more in terms of hardware (hardware rendering, hardware transformation and lighting). It seems that the problems we had 20 years ago (how to render 2d and 3d graphics quickly) are solved.

    But today's computing has some more challenges for us: concurrency (how to increase the performance of a program through parallelism) and, when it comes to 3d graphics, raytracing! Indicentally, raytracing is a computational problem that is naturally parallelizable.

    So, what type of computer shall we have that solves the new challenges?

    It's simple: a computer with many many cores!

    That's right...the era of custom chips has to be ended here. Amiga started it for personal computers, and a new "Amiga" (be it a new console or new type of computer) should end it.

    A machine with many cores (let's say, a few thousand cores), will open the door for many things not possible today, including raytracing, better A.I., natural language processing and many other difficult to solve things.

    I just wish there are some new RJ Micals out there that are thinking of how to bring concurrency to the masses...

    1. Re:Now it's a good time for a new Amiga. by blahplusplus · · Score: 1

      "That's right...the era of custom chips has to be ended here"

      I wish people would stop saying this, the real-estate budget for transisters, memory bandwidth and a lot of other things get in the way of "have the cpu all do it". There's a reason custom chips have cornered the market ever since 3Dfx and the other first generation 3D cards from 10 years or so ago. Since no matter how fast a CPU is, you can't compete with the degree of specialization (not to mention experience) a company designing custom chips has.

      Just where pray tell are you going to get the monster memory bandwidth needed that modern graphics cards have? I swear I have to wonder what some people are smoking... Memory bandwidth is just as important as IPC or whatever else helps a cpu comput more instructions per clock.

  16. Don't get it, by fozzmeister · · Score: 1

    OK when models get further away in games, they get less detailed, both in terms of textures and polygons. Now if you have a light, with a simplified character, casting a shadow onto a wall quite a long way away, this simplification might become very much more obvious.

    1. Re:Don't get it, by mehere101 · · Score: 1

      This situation is already encountered with rasterized methods and has been solved. The shadows have a limit, beyond which they will not be cast. Another part of the solution is that shadows are only cast using the highest resolution mesh.

  17. He's talking about scaling by Xocet_00 · · Score: 2, Informative

    In a lot of cases in computing, doubling the number of pipelines (read: adding a second core, for example) does not, in fact, double performance unless the problem being worked on is highly parallelizable. For example, this is why one can not accurately describe a machine with two 2.5GHz processors as a "5GHz machine". Most computation that personal computers do on a day to day basis does not scale well, and the average user will reach a point of diminishing returns very quickly if they add many cores to increase performance for these tasks.

    So all he's demonstrating here with his "16-core" experiment is that ray-tracing is a highly parallel process, and that throwing lots of cores at it will work effectively to increase performance without reaching that point of diminishing returns (at least, not reaching it very quickly.) Yes, we expect 16 cores to be faster than 4 cores or 1 core, but he's saying that when we're ray-tracing we can expect 16 cores to be almost four times faster than four cores and almost sixteen times faster than one.

  18. Honk! Honk! by tripwirecc · · Score: 1

    That guy should ask the movie industry whether mixing rastering and raytracing makes sense or not. The defacto rendering engine, Pixar Photorealistic RenderMan, thinks that frankenrendering is a worthwhile thing.

    1. Re:Honk! Honk! by 91degrees · · Score: 1

      The movie industry could conceivably be wrong.

    2. Re:Honk! Honk! by tripwirecc · · Score: 1

      But it works for them. And is still faster than pure raytracing.

    3. Re:Honk! Honk! by Anonymous Coward · · Score: 0

      Do they do realtime rendering ?

  19. AND...it doesn't produce realistic images! by Joce640k · · Score: 2, Interesting

    Ray tracing looks hyper real on scenes full of plastic and mirrors but it's useless for rendering real-world scenes where radiosity effects dominate.

    --
    No sig today...
    1. Re:AND...it doesn't produce realistic images! by tomandlu · · Score: 1

      Actually, I was wondering about this. Radiosity isn't a huge problem for raytracing - correction, it is a huge problem for raytracing, so raytracers that implement radiosity generally use a separate process.

      Does rasterisation get radiosity "for free" or is it yet another process that has to be implemented?

      If the latter, then this can't really count against raytracing.

    2. Re:AND...it doesn't produce realistic images! by flewp · · Score: 1

      You can still bake the shadow information into the textures. Sure, it wouldn't necessarily work for dynamic, moving objects, but it's just one partial solution.

      --
      WWJD.... for a Klondike bar?
    3. Re:AND...it doesn't produce realistic images! by dave420 · · Score: 1

      Really? And that's from 2000. Check out their more recent galleries for some realistic (and some not so realistic) images.

    4. Re:AND...it doesn't produce realistic images! by Yetihehe · · Score: 1

      This, this and this are fairly realistic. Those are only examples from povray hall of fame, there are better raytracers.

      --
      Extreme Programming - Redundant Array of Inexpensive Developers
    5. Re:AND...it doesn't produce realistic images! by DragonWriter · · Score: 1

      This, this and this are fairly realistic. Those are only examples from povray hall of fame, there are better raytracers.


      POV-Ray has for many years included a radiosity engine that works alongside (IIRC, actually as a preliminary step before) the actual "raytracer". This enables it to produce scenes that involve radiosity effects and not just what can be done by raytracing alone (at the cost of taking more time than just raytracing the scene.)

      How germane it is discussions of "raytracing" as a method of rendering for games depends on whether the discussion is really of "raytracing", per se, or a similar combination of radiosity-based rendering and raytracing. From what I dimly remember of how radiosity works, I don't think its as easily parallelizable as the strictly raytracing part, and thus may not have the natural advantage in scalability that is claimed for raytracing.
    6. Re:AND...it doesn't produce realistic images! by mfnickster · · Score: 1

      That third one vaguely reminds me of old Amiga magazine covers. :)

      --
      "Slow down, Cowboy! It has been 3 years, 7 months and 26 days since you last successfully posted a comment."
    7. Re:AND...it doesn't produce realistic images! by Yetihehe · · Score: 1

      It IS as easily parallelizable, just not so much optimizable. Radiosity in current form requires sometimes 100 radiosity rays per one primary ray. For primary rays there are algorithms which can remove about 90% computations due to coherence (you shoot "bundles" of rays). But radiosity IS parallelizable, because you can make calculations for each primary ray on other processor.

      --
      Extreme Programming - Redundant Array of Inexpensive Developers
    8. Re:AND...it doesn't produce realistic images! by Anonymous Coward · · Score: 0

      Umm...give it time? You expect a technology that's only just arrived to do everything perfectly? How long have the rasterization guys hammered on these problems (and still fail?).

      Get a grip!

    9. Re:AND...it doesn't produce realistic images! by 91degrees · · Score: 1

      Ray tracing has been around for a very long time. There were ray tracing applications for the Amiga.

    10. Re:AND...it doesn't produce realistic images! by Anonymous Coward · · Score: 0

      Raytracing can be used a number of ways - getting physically accurate highlights and reflections, getting accurately shaped hard-shadows (which then need further calculations to make them loose sharpness the further they get away from the object casting the shadow based on the location and dimensions of the light source...if they really want it to look real), and yes, even global illumination (aka radiosity).

      Pre-calculated global illumination stored in lightmaps will always be more accurate than real time calculations, but they will always have the drawback of being basically static. You aren't going to be nearly as accurate if, say, you have a character holding a lantern running through an other wise dark tunnel.

    11. Re:AND...it doesn't produce realistic images! by egomaniac · · Score: 1

      The earliest "lighting" in 3D games was none at all: ambient only. In Doom, each sector had a defined brightness and all of the surfaces in the sector were the same brightness.

      With the advent of "true" 3D, lighting could be computed in real time. You'd have a light source, and each polygon's brightness would be computed by looking at its distance and angle to the light source. This was slightly better than ambient-only lighting, but still looked like crap and was relatively expensive to implement, particularly as the number of light sources increased.

      Before long we realized that there was little point in computing the lighting at runtime, since most lights stayed in one place anyway. So we used much more powerful algorithms, such as radiosity, to pre-compute the lighting of the scene, and then the "lighting" is just a static texture. You can do dynamic lights on top of that for e.g. spell effects and muzzle flash, but most of the "lighting" in the game is just prerendered texture maps.

      Seems like ray tracing could use very similar techniques.

      --
      ZFS: because love is never having to say fsck
  20. No, raytracing is BETTER adapted to custom chips. by argent · · Score: 1

    So, what type of computer shall we have that solves the new challenges?

    A custom chip that has hundreds or thousands of dedicated raytracing processors that run in parallel. Raytracing is embarrassingly parallelizable, so it's far better suited to specialized processors than vectorizing.

    Saarland University, the people who designed OpenRT in the first place, were getting 60+ frames a second on a hardware raytracing engine in 2005... and their raytracing engine only had 6 million gates and ran at 75 MHz. Today's GPUs have 100 times as many gates and run at 8 times the clock. A dedicated raytracer built with nVidia's or ATI's or Intel's resources instead of Saarland University's could give you that thousand core processor right now.

  21. Pun Intended by Wanado · · Score: 1, Funny

    It is a nice thought and reflects what has happened so far in the development of graphics cards. I've been reflecting on this subject as well.
    --
    Somehow along the way I made a bad choice in life and now must live with 0 Karma.
  22. I guess you could use it for shadows... by Joce640k · · Score: 1

    Ray tracing solves two problems well - shadows and reflections.

    A hybrid renderer might produce slightly better shadows than we have today but we still need orders of magnitude more power before it happens. Right now we're pushing the limit of graphics cards without ray tracing. Adding ray tracing at each pixel will make your pixel shaders hundreds of times slower.

    --
    No sig today...
    1. Re:I guess you could use it for shadows... by 42forty-two42 · · Score: 2, Interesting

      Read TFA. Ray tracing does NOT happen on the graphics card; it happens on your CPU. And they've got Quake 4 at 1280x running at 90 FPS raytraced already. Since raytracing scales almost linearly, as you add more cores to your CPU (which is likely the future direction of CPU technology improvement), you improve raytracing performance by about the same factor.

  23. Hardware product dependence not good by dazedNconfuzed · · Score: 2, Insightful

    the fact remains that we don't actually need this for games.

    Your post is heavily dependent on availability of suitable hardware. Software can be ported and recompiled to new platforms, but hardware-dependent software has a short lifespan precisely because getting usable hardware doesn't last particularly long. There's a lot of otherwise good enjoyable games which are unplayable now because they depended on the early Voodoo cards or other unrepeated graphics hardware. Now with CPU power ramping back up (relatively speaking), we can pull away from lifespan-limiting dependence on dedicated graphics hardware, and move the full rendering process back to generic CPU hardware.

    Torques me off when I want to play something but can't - not because I don't have the horsepower, but because it requires obsolete cards.

    BTW: The article notes that RT vastly outperforms raster on very high poly count scenes - that alone is reason to switch.

    --
    Can we get a "-1 Wrong" moderation option?
  24. General purpose CPUs: a REALLY bad way to do this. by argent · · Score: 5, Interesting

    Professer Philipp Slusallek of the University of Saarbruecken demonstrated a dedicated raytracer in 2005, using a 66 MHz Xilinx FPGA with about 6 million gates. The latest ATI and nVidia GPUs have 100 times as many transistors and run at 6-8 times the clock with hundreds of times the memory bandwidth. Raytracing is completely parallelizable, and scales up almost linearly with processors, so it's not at all unlikely that if those kinds of resources were applied to raytracing instead of vectorizing you'd be able to add a raytracer capable of rendering 60+ FPS at the level of detail of the very latest games into the transistor budget of the chips they're designing now without even noticing.

    Here's a debate between Professer Slusallek and chief scientist David Kirk of nVidia: http://scarydevil.com/~peter/io/raytracing-vs-rasterization.html .

    Here's the SIGGRAPH 2005 paper, on a prototype running at 66 MHz: http://www.cs.utah.edu/classes/cs7940-010-rajeev/sum06/papers/siggraph05.pdf

    Here's their hardware page: http://graphics.cs.uni-sb.de/SaarCOR/

  25. Not the GPU. by DrYak · · Score: 1

    GPUs are far more parallelized than CPUs - in that sense, it makes more sense to offload it to the GPU.


    Not that much. Because GPU achieve ultra high parallelism using SIMD (single instruction multiple data) mechanisms.
    And those aren't very efficient with very diverging code path.

    i.e.:
    - in traditional triangle rasterisation a lot of pixels are calculated at the same time for the same triangle. Thus a lot of thread will be running the exact same shader code on the GPU. SIMD is a nice increase of performance.
    - in RayTracing, all pixels (all rays) start at the same point. But as rendering advance (as ray travel away from the camera) they will start to get different paths. In the end not all rays have taken the same path and executed the same shaders at the same time.

    Thus you won't get as much improvement from a GPU as you would expect compared to other algorithms.

    CELL's SPU or other chips that have several units that could take diverging paths (the latest generation of SPARC Niagara chips that don't share 1 single math core for all 32 threads) would probably perform well.
    On the other hand, modern GPU are starting to have a large number of separate SIMD processors, so even if they couldn't take full advantage of their SIMD capability (as explained above), they could still achieve good performance by running 1 thread per multiprocessor.
    --
    "Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
  26. Raytracing scales up far better... by argent · · Score: 1

    Raytracing scales up far better than rasterization. Adding triangles to a raytraced scene has far less effect on it than to a rasterized scene, because you don't have to render anything that's not actually part of the scene... and you don't have to run what is effectively a separate rendering pass to eliminate parts of the scene to limit the hidden variables, and the processing for each collision is much simpler so you can fit thousands of dedicated raytracing processors in a hardware raytracer where the same transistor budget might support 8 or 12 rendering pipelines.

    Look at what they were doing in 2005, with 1% of the gates, 1% of the memory bandwidth, and 15% of the core clock speed of today's GPUs: http://graphics.cs.uni-sb.de/SaarCOR/

    1. Re:Raytracing scales up far better... by daVinci1980 · · Score: 3, Insightful

      Disclaimer: I work for NVIDIA. I speak not for them.

      People keep saying this, that raytracing scales up better than rasterization. It's simply not true. Both of them have aspects that scale linearly and logarithmically. They do scale differently, but in a related sort of wy.

      Raytracing is O(resolution), and O(ln(triangles)), assuming you already have your acceleration structures built. But guess what? It takes significant time to built your acceleration structures in the first place. And they change from frame to frame.

      Rasterization is O(ln(resolution)), and O(triangles). Basically, in a rasterizer, we only draw places that we have triangles. Places that don't have triangles have no work done. But the thing is, we've highly pipelined our ability to handle triangles. When people talk about impacting the framerate, I want to be clear what we're talking about here: adding hundreds, thousands, or even a million triangles is not going to tank the processing power of a modern GPU. The 8800 Ultra can process in the neighborhood of 300M triangles per second. At 100 FPS, that'd be (not suprisingly) 3M triangles per frame.

      Modern scenes typically run in the 100-500K triangles per frame, so we've still got some headroom in this regard.

      Cheers.

      --
      I currently have no clever signature witicism to add here.
    2. Re:Raytracing scales up far better... by ASBands · · Score: 1

      Unfortunately, triangle drawing isn't the only thing that happens when a frame is rendered. There are shadows to draw, specular and diffuse lighting, reflection, refraction and transmission, there is bump, normal or parallax mapping, particle systems, motion blur and depth of field. Ray tracing is cut out for these things. There are plenty of other non-triangle things such as anti-aliasing, anisotropic filtering and the entire non-graphics portion of the game. Anyway, ray tracing scales up for multiple processors a lot better than rasterization, which seems to be the path we're going down.

      You do make a good point about ray tracing being O(resolution). With most engines these days, 1920x1200 renders only a little slower than 800x600 - the key to speed up lagging framerate is to turn extra graphics effects off. A ray traced engine will be sped up more by adjusting the resolution. With monitors growing in size all the time and LCD looking terrible at any resolution but its native one, it might not be the best path to travel down.

      However, I don't agree with your argument that since graphics cards are geared towards rasterization, that we shouldn't develop (or at least try) a different technique? Did John Carmack look at video cards in the early 90s and decided that they could only play 2-D games? No. If popular game engines shift to ray tracing, video card manufacturers will shift with them.

      --
      My UID is a prime number. Yeah, I planned that.
    3. Re:Raytracing scales up far better... by argent · · Score: 1

      You're scaling along a different axis....

      Raytracing is O(resolution), and O(ln(triangles))

      First, resolution isn't growing very fast. Top-of-the-line displays today are 2560x1600. Top of the line displays in 1998 were 1280x1024. That's four times as many pixels in 10 years. Good quality consumer displays were 1024x768 then, and they're 1280x1024 now. That's not even twice the number of pixels. Resolution is not a limiting factor in performance.

      But raytracing is also O(processors). It scales up linearly with the number of raytracing pipelines available. Trading off slower and simpler raytracing engines for more parallelism works. There just doens't seem to be that kind of parallelism in rasterization.

      Also, rasterizers aren't just rendering triangles. They're using shaders and textures to avoid rendering triangles, which is why you only have half a million triangles per frame... you're using pre-baked textures and procedural algorithms to avoid rendering in real-time. Which means you need the memory bandwidth to pump those textures through the pipeline, and the megahertz to run the shaders.

      The raytracer can simply throw more triangles at the scene. The result, as Philipp Slusallek points out, is that you need less CPU and less memory bandwidth for the raytracer.

    4. Re:Raytracing scales up far better... by IamTheRealMike · · Score: 1

      Thanks. I was hoping somebody knowledgable would pipe up on this topic.

    5. Re:Raytracing scales up far better... by daVinci1980 · · Score: 1

      I still don't speak for NVIDIA.

      Sorry, I should've been clearer about my 100-500K number. This includes passes for (e.g.) depth texture rendering (for shadow passes), environment mapping passes, etc. Everything else you mention is still an effect that is either complex in the number of triangles or the number of pixels.

      I don't agree that raytracing inherently scales up better. Modern GPUs are basically lots of custom HW sitting on top of many processors (see the stream processors field). And raytracing doesn't make certain issues go away, like the texture bandwidth requirements. Modern game engines use huge amounts of texture bandwidth (and contrary to your post's sibling, they generally aren't for precalculated visibilty or luminosity maps. That's so 1996).

      I'm not saying that we shouldn't be looking into raytracing as a possible successor to rasterization. It could be that raytracing is the right direction. What I am saying is that you should avoid reading an article written by someone who has intimate knowledge of raytracing, but only has knowledge of rasterization as of about 10 years ago, and assume that everything he says is correct. (Just as you should take everything I say with a grain of salt, my own RT knownledge is currently limited, though I'm taking steps to get to the bleeding edge of RT as quickly as I can).

      Cheers!

      --
      I currently have no clever signature witicism to add here.
    6. Re:Raytracing scales up far better... by daVinci1980 · · Score: 1

      There just doens't seem to be that kind of parallelism in rasterization.

      I'm sorry, but you are simply mistaken. Rasterization is an embarassingly parallel problem.
      --
      I currently have no clever signature witicism to add here.
    7. Re:Raytracing scales up far better... by argent · · Score: 1

      Rasterization is an embarassingly parallel problem.

      If you just count the rasterizing itself, yes, rasterization and raytracing are similar. The difference is that this step is most of the work in a raytracer, but isn't that really a tiny part of the job in a modern GPU? Most of the GPU is devoted to the preprocessing hacks, shaders, texture copying, and all the other front end work to make it look good with as low a triangle count as it can get away with.

      Kirk makes that point... as a point in favor of rasterization(!)... in http://scarydevil.com/~peter/io/raytracing-vs-rasterization.html .

    8. Re:Raytracing scales up far better... by XMod · · Score: 1

      Raytracing is O(resolution), and O(ln(triangles)) Rasterization is O(ln(resolution)), and O(triangles). So, basicaly, raytracing wont be a problem at all in the near future. The human eye have a limit of resolution, so there is not room for infinite improvement of resolution, the infinite doesnt matter. But the number of triangles is boundless, and infinite number is the ideal for the a perfect resolution. So, bascialy in the next 3 or 4 years, resolution will be bascaly a constant, given the eye resolution factor, but the number of triangles will keep scaling up for the sake of realism. So raytracing do have an edge of rasterizing.

    9. Re:Raytracing scales up far better... by ASBands · · Score: 1

      Currently, ray tracing is slower for most scenes. However, it is trivially parallelizable. After the scene is described, each pixel can be computed completely independently of every other pixel. To speed up, creating a shared acceleration structure is almost a requirement for speed (which is why the proper structure must be chosen). Keeping this in blindingly fast video memory and share it between 128 shader processors and performance is almost 128 times greater. While we don't have any GPU ray tracers that work with SLI/Crossfire, the system should show a near-linear performance increase (with additional overhead for generating or transferring the acceleration structure twice).

      I agree with you, though. Since ray tracing is a much easier concept to understand (anybody with knowledge of linear algebra can see what is happening) and has only recently gained momentum (because, until now, it hasn't been technically feasible), there is a lot of hype surrounding it. People need to understand that there is nothing magical about ray tracing - it is just a different rendering algorithm. It may be the future of gaming, it may not. Personally, I think hybrid engines are the real future - strangely, they already seem to be implemented...

      --
      My UID is a prime number. Yeah, I planned that.
    10. Re:Raytracing scales up far better... by daVinci1980 · · Score: 1

      No, the human eye doesn't have a resolution limit, anymore than 35mm film has 'resolution'.

      The human eye is an analog processing device. It's basically nonsensical to talk about the 'resolution' that such a device can discern. However, I'll posit this: a good printer is 600-1200 dots per inch. It'd be difficult for most people to tell where the dots are at 600 dots per inch, although you can still tell in certain situations.

      Current monitors display data at around 96 dpi (monitors for Windows, anyways). That's off by a factor of 6-12, depending on which end of the spectrum you're going for. For a 20.8" monitor to match print quality, it'd need to have a resolution of around 9984x7500 pixels. (I ballparked the measurements, that could be off by 1% or so).

      Monitors are going up in resolution all the time. I use a 2560x1980 monitor at work. I could definitely find space for another.

      --
      I currently have no clever signature witicism to add here.
    11. Re:Raytracing scales up far better... by gringer · · Score: 1

      No, the human eye doesn't have a resolution limit, anymore than 35mm film has 'resolution'. Wikipedia tells me that the resolution limit of the eye is about 1-1.5 minutes http://en.wikipedia.org/wiki/Eye#Acuity (well, about 1.2 minute of arc per line pair). That's about 200-300dpi at 1 foot:
      1 / (tan (2*pi/(360 * (60/1.2))) * 12) = approx. 238.7324

      That's the resolving power at 1 foot, for a good eye, in the main area of focus... resolving power drops off as you go outside that area of focus. If you're looking at a screen at 1 foot with more than ~200dpi, it's unlikely you'll notice the difference.
      --
      Ask me about repetitive DNA
    12. Re:Raytracing scales up far better... by Anonymous Coward · · Score: 0

      > No, the human eye doesn't have a resolution limit, anymore than 35mm film has 'resolution'.
      > The human eye is an analog processing device. It's basically nonsensical to talk about the 'resolution' that such a device can discern.

      You may have heard of the cells called "rods" and "cones" - there are a finite number of these in the retina. The visual cortex does a certain amount of interpolation, but there is definitely a limit to the detail the eye can resolve.

      Ever wonder why stars twinkle in color? It's because the white light comes from a point source, too small for your eye to resolve as a single object. However, since its light rays jiggle due to refraction in the air and the movements of your eye and head, several different cone cells in your retina get stimulated by the incoming photons - some red, some green, some blue.

    13. Re:Raytracing scales up far better... by Anonymous Coward · · Score: 0

      Fuck your company and their stupid proprietary hardware. Where are the specs of the GPUs you sell?

      Glass

  27. headtracking by ANCOVA · · Score: 1

    If I understand the concept correctly, this combined with headtracking (the Wii guy?) will revolutionize the gaming world. Of course there's a fat chance I didn't get it at all, 'coz I don't have the time to read TFA at work...

  28. Nvidia rejoice! There's money to make! by Cathoderoytube · · Score: 1

    Uugh. I'd like to say depth map shadows work perfectly well in games, and it'd be nice to stay with it.
    Raytracing is a lot more intensive on the hardware which to me says that the video card companies will be pushing for game developers to implement it just so they can sell more powerful cards.
    I guess the next logical step after raytracing would be global illumination, and real time displacement maps. None of which the gaming industry actually needs.

    Once again what the gaming industry needs is creativity not video cards with 2gb of on board memory.

    --
    I have nothing compelling to say
    1. Re:Nvidia rejoice! There's money to make! by ErikZ · · Score: 1

      Bingo. The reason Intel hired this guy is that they're trying to come up with a killer app for a 64 core CPU.

      --
      Democrats or Republicans. They are both taking us to the same place and they are not afraid of us anymore.
  29. Re:General purpose CPUs: a REALLY bad way to do th by Anonymous Coward · · Score: 0

    Mod parent up. The debate and the SIGGRAPH paper are more on topic than the rest of the usual junk posted in the comments. Additionally, thanks for sharing the debate, I hadn't read it before.

  30. No you don't by SmallFurryCreature · · Score: 1

    That is an optimization that is used today. It is NOT a law. Think the real world, just because that huge billboard is miles away doesn't mean some guy runs up to it and tears down the paper and puts a low res version up on it. The entire world in RL and 3D has the same detail no matter where it is.

    As you shoot the ray, it finds the entire world the same size and detail. This is actually one of the problems, for proper raytracing you can't use a lower res model for faraway objects because then the scene might indeed end up as you say, reflecting low-res stuff up close.

    However, using lower res models is a crappy shortcut anyway, while it currently does lessen the rendering burden it in turn asks for considerable effort to supply the various version of models and textures.

    There is another problem with it. Zooming/magnification. Say you are looking at a far away character, now you switch to your sniper scope and all of sudden you see a stick figure, doesn't work does it. Same with camera's that might show that model up close while you are far away. Notice how many outdoor shooters have you wade through grass obscuring your close range vision, while a sniper sees you standing on clear open ground.

    I remember Intel making a lot of noise about this optimization by cutting detail on far away objects years ago, it worked but only for games with a fixed view of the world where you couldn't all of sudden get a closeup. In regular rendering you can pull the same stunt, If a building is ALWAYS going to be background, you only need to build the part you see, many a 3D scene is like an old hollywood set, nice facades and nothing in back.

    As we get faster hardware, hopefully we can do away with the old hacks to come up with a scene that can be rendered. Quad core PC's don't even cost that much right now, willbe intresting to see what a few more years will bring. Mind you, if all goes to the CPU, I expect AI will take a hit.

    --

    MMO Quests are like orgasms:

    You may solo them, I prefer them in a group.

  31. There is some raytracing already... sort of by TomorrowPlusX · · Score: 1

    I'm not disagreeing with the author ( I did RTFA ), but I want to say there is some ray tracing ( in a sense ) already in some modern games. Specifically, some types of parallax mapping can be considered to be bastard red-headed stepchildren of raytracing.

    What you have is ray tracing in texture space, but that texture is brought to the screen via conventional scanline rasterization methods. Sort of. My glsl parallax shader code sucks though ( looks all gelatinous close up ) so I'm no expert....

    --

    lorem ipsum, dolor sit amet
  32. Idiot! by crhylove · · Score: 1

    I left out the word million several times in my initial statement. DAMN YOU NO EDITING!

    rhY

    --
    I hold very few opinions. I hold information based on observation and fact. If you wish to disagree, please use facts.
  33. Awesome. by randomaxe · · Score: 2, Funny

    I can't wait to play a game where I'm a shiny silver ball floating above a checkered marble floor.

  34. Creation requirements may be less by PIPBoy3000 · · Score: 1

    One of the problems with the current techniques is that programmers have to write shaders and artists have to make normal maps, high and low poly versions of models, and so on. It may be that raytracing reduces some of the need to do this work, and thus making games cheaper and faster to create.

    1. Re:Creation requirements may be less by grumbel · · Score: 1

      Normal maps are automatically generated and with tools like ZBrush you are modeling at multiple levels of resolutions automatically anyway, so the low-res model comes out just by itself. I doubt that ray-tracing would have any significant impact on the artist.

  35. Ray Tracing in one LINQ statement by guignome · · Score: 1

    I discovered raytracing by looking at that http://tirania.org/blog/archive/2007/Nov-16.html . It's a fun way to quickly see how raytracing works :-)

  36. This Quote Sums it Up by pragma_x · · Score: 1

    The upper screenshot looks quite boring, because it has no lights and no shadows in it. In the lower example each pixel is being lit by an average of 3-5 light sources simultaneously.

    Screenshot

    If we use ray tracing to render all the shadows accurately, then each pixel would ordinarily require one visibility ray and 4 shadow rays. If we were to use rasterization to achieve the same quality image, it would only save us the 1 visibility ray per pixel. Rasterization techniques simply are not robust enough to achieve the same kind of accuracy and fidelity as ray tracing for shadows, reflections and refractions. If you imagine a trend toward higher and higher quality, the savings of using rasterization for the visibility determination trends towards insignificance.

    It's worth noting that in order to do decent looking shadows using a rasterizer, you need to use structures that simulate a shadow by way of a shadow volume. At some point, having scene graphs with a multitude of light sources will simply overwhelm a rasterizer by virtue of requiring too much space/time, due to how this kind of technique works. So the current standard is only useful within a certain envelope of scene complexity and computer power, rather than offering itself as an endlessly scalable solution.

    Another thing to consider is that a ray tracing engine is practically a drop-in replacement for a standard triangle rasterizer; BSP maps, shaders and meshes work fine with ray tracing. If that's not enough, ray tracers come equipped with lots of extras: free shading, free mirrors, z-buffering isn't really needed, and you can use algorithms to define surfaces instead of relying high poly-count models. So as consumer-grade computers get more and more internally parallelized, this will become the clear way ahead for gaming graphics since it's more robust, and doesn't require a major shake-up of your art department's toolchain.
    1. Re:This Quote Sums it Up by steelfood · · Score: 1

      you can use algorithms to define surfaces instead of relying high poly-count models.

      That about sums up the benefits to ray tracing right there. It might not be useful everywhere, but being able to render infinite-edge curves would probably make curved objects look and behave far more realisticly (better real-time boundary detection).

      I just can't wait for the day when a Renderman-esque engine does the in-game graphics.

      --
      "If a nation expects to be ignorant and free in a state of civilization, it expects what never was and never will be."
    2. Re:This Quote Sums it Up by pragma_x · · Score: 1

      I just can't wait for the day when a Renderman-esque engine does the in-game graphics.

      While I'm not a modeler, I do have a healthy respect for what that tool does for you guys. But surely we can do better than that.

      How about fractal maps? Endlessly deformable terrain/rooms? Lighting-fast downloadable 3D content*?

      All that's missing is a physics engine that can work with arbitrary surfaces - but since they're procedural, I guess that's not to terribly hard a problem to solve. Still, that's a buttload of math when you take the raytracer into account.

      (*Procedural surfaces and textures could build the cornerstone of a sandbox-style MMO where content downloads quick since everything is compressed into a stream of rendering parameters. And that's before you apply traditional compression.)

      Anyway, enough rambling. There's a video embedded in TFA that shows a raytraced curved mirror (akin to one you might see at a drugstore) being used in a FPS style scenario. It made my day. The actor zooms in on the surface, watchs the target come down the hallway, and then "Boom! Headshot."

  37. Of course it's the future by Philotechnia · · Score: 1

    I just got off the phone with a Mr. Romano - apparently, Everybody Loves Raytracing!

  38. Re:General purpose CPUs: a REALLY bad way to do th by Anonymous Coward · · Score: 1, Interesting

    David Kirk's explanation is totally correct. The need for "accuracy" in gaming is not high enough to justify the downside of ray tracing. Multipass rendering and shaders are obviously sufficient for 99% of the games given the state of GPUs and the quality of today's modern game engines. I consulted with nVidia back in the 90s on multipass techniques based on my PhD work at Upenn (available at my current webpage: http://www.pages.drexel.edu/~pjd37/diefenbach96thesis.pdf ), and these so-called "hacks" can approximate physics-based calculations very closely for non-critical applications.

  39. Not ray tracing, radiosity by Animats · · Score: 5, Interesting

    It's amusing to read this. This guy apparently works for Intel's "find ways to use more CPU time" department. Back when I was working on physics engines, I encountered that group.

    Actually, the Holy Grail isn't real time ray tracing. It's real time radiosity. Ray-tracing works backwards from the viewpoint; radiosity works outward from the light sources. All the high-end 3D packages have radiosity renderers now. Here's a typical radiosity image. of a kitchen. Radiosity images are great for interiors, and architects now routinely use them for rendering buildings. Lighting effects work like they do in the real world. In a radiosity renderer, you don't have to add phony light sources to make up for the lack of diffuse lighting.

    There's a subtle effect that appears in radiosity images but not ray-traced images. Look at the kitchen image and look for an inside corner. Notice the dark band at the inside corner. Look at an inside corner in the real world and you'll see that, too. Neither ray-tracing nor traditional rendering produces that effect, and it's a cue the human vision system uses to resolve corners. The dark band appears as the light bounces back and forth between the two corners, with more light absorbed on each bounce. Radiosity rendering is iterative; you render the image with the starting light sources, then re-render with each illuminated surface as a light source. Each rendering cycle improves the image, until, somewhere around 5 to 50 cycles, the bounced light has mostly been absorbed.

    There are ways to precompute light maps from radiosity, then render in real time with an ordinary renderer, and those yield better-looking images of diffuse surfaces than ray-tracing would. Some games already do this. There's a demo of true real-time radiosity, but it doesn't have the "dark band in corners" effect, so it's not doing very many light bounces. Geometrics has a commercial real-time game rendering system.

    Ray-tracing can get you "ooh, shiny thing", but radiosity can get to "is that real?"

    1. Re:Not ray tracing, radiosity by Anonymous Coward · · Score: 0

      You are oversimplifying. It's not a choice between raytracing and radiosity. Both of those are algorithms (or families) of *approximations* to the global illumination problem. Neither are correct.

      What you want is global illumination. What you'll get first is likely to be pretty bog-standard AA'd raytracing with some fancy geometry culls, plus a cheap photon map or something to improve things.

    2. Re:Not ray tracing, radiosity by Spy+Hunter · · Score: 1

      You are confused; radiosity is not the holy grail of graphics. *Global illumination* is the holy grail of graphics, and radiosity is one algorithm for global illumination, but not really the best from a correctness standpoint (doesn't do caustics, for example). The most physically correct algorithm for global illumination is monte carlo bidirectional path tracing (with Metropolis light transport for speed), and it's a form of raytracing. Fully photorealistic rendering is basically a solved problem; take a look at the Indigo renderer if you want to see some truly awesome feats of rendering (for example, a prism separating a beam of light, simulating a rainbow with only a light source and drops of water, or rendering effects produced by light polarization). Photorealism is now constrained only by modeling tools and rendering time; the software is there.

      Unfortunately the kind of raytracing talked about in the article is not monte carlo path tracing; it's a much more simplistic form of raytracing that doesn't deal with global illumination at all, and so looks little different from rasterization with stencil shadows in the style of Doom 3. Doing raytracing this way allows you to get away with casting less than 10 rays per pixel, so you get decent performance. Full monte carlo path tracing requires hundreds if not thousands or more rays per pixel (depending on the scene) to get results. But it really does achieve the "holy grail" of global illumination; in 2100 when we all have Blue Gene in our laptops I expect all 3D rendering to be monte carlo path tracing.

      --
      main(c,r){for(r=32;r;) printf(++c>31?c=!r--,"\n":c<r?" ":~c&r?" `":" #");}
  40. the shortcut is to do it backwards by dominux · · Score: 1

    but not from the surface, that is in the middle. Light starts from a source and then bounces about the scene until it meets the camera. Most light rays don't intersect with the camera before they are fully absorbed. The trick is to start from the camera and go outwards hitting surfaces and bouncing about until you hit some light. Starting from both ends might lead to better results. I can't see how starting from a surface would help much, but then I am not a ray trace developer.

  41. Re:General purpose CPUs: a REALLY bad way to do th by Anonymous Coward · · Score: 1, Interesting

    Sorry, but that design is worthless. Any academic, or indeed student, with a few $1000 can buy a Xilinx system and design a 66MHz chip. What they tend to do next is assume that all they have to do is buy a more expensive Xilinx system and the chip will suddenly run at 2GHz. Nothing could be further from the truth. The design changes completely.

    The fact is that an EXISTING CPU running at 2GHz can outperform an EXISTING FPGA raytracer running at 66MHz.

    My money's on stuff that actually works.

  42. Nice introduction, but wrong conclusion by ardor · · Score: 3, Informative

    Hybrids do make a lot of sense. The author's argument is the need for a spatial partitioning structure if one mixes ray tracing with rasterization. This is a no-brainer; you'd have such a structure anyway.

    In fact, his points actually show why a hybrid is perfect: most surfaces are not shiny, refractive, a portal, etc. Most are opaque - and a rasterizer is much better for this (since no ray intersection tests are necessary). He shows pathological scenes where most surfaces are reflective; however, most shots do show a lot of opaque surfaces (since Quake 4 does not feature levels where one explores a glass labyrinth or something).

    Yes, if a reflective surface fills the entire screen, its all pure ray tracing - and guess what, that is exactly what happens in a hybrid. Hybrid does not exclude pure ray tracing for special cases.

    Ideally, we'd have a rasterizer with a cast_ray() function in the shaders. The spatial partitioning structure could well reside within the graphics hardware's memory (as an added bonus, it could be used for predicate rendering). This way haze, fog, translucency, refractions, reflections, shadows could be done via ray tracing, and the basic opaque surface + its lighting via rasterization.

    Now, I keep hearing the argument that ray tracing is better because it scales better with geometric complexity. This is true, but largely irrelevant for games. Games do NOT feature 350 million triangles per frame - it just isn't necessary. Unless its a huge scene, most of these triangles would be used for fine details, and we already have normal/parallax mapping for these. (Note though that relief mapping usually doesn't pay off; either the details are too tiny for relief mapping to make a difference, or they are large, and in this case, traditional geometry displacement mapping is usually better.) So, coarse features are preserved in the geometry, and fine ridges and bumps reside in the normal map. This way, triangle count rarely exceeds 2 million triangles per frame (special cases where this does not apply include complex grass rendering and very wide and fine terrains). The difference is not visible, and in addition the mipmap chain takes care of any flickering, which would appear if all these details were geometry (and AA is more expensive than mipmaps, especially with ray tracing).

    This leaves us with no pros for pure raytracing. Take the best of both worlds, and go hybrid, just like the major CGI studios did.

    --
    This sig does not contain any SCO code.
  43. Or maybe both? by mbessey · · Score: 1

    Radiosity rendering and ray tracing are very complementary, in that one does a really good job with diffuse/global lighting effects, and the other does a much better job with local lighting, refraction, and reflection. Neither one alone gives what I'd consider really realistic images, at least without "cheating" in one way or another. Some combination of techniques is probably the best approach for realistic rendering.

  44. Re:No, raytracing is BETTER adapted to custom chip by Sloppy · · Score: 0, Troll

    A custom chip that has hundreds or thousands of dedicated raytracing processors that run in parallel [solves it].

    Dedicated. *sigh* So I have this huge expensive chunk of silicon, and all it's good for, is playing games? That's swell when I happen to be playing a game. What about the other 95% of the day?

    A dedicated raytracer built with nVidia's or ATI's or Intel's resources instead of Saarland University's could give you that thousand core processor right now.

    Cool, but does it run Linux? ;-)

    (Note: I'm not asking for a driver; I'm asking for a port.)

    --
    As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
  45. advantages for *artists* by comingstorm · · Score: 2, Interesting

    The obvious problem with layering hacks on top of hacks to make your games look better is that it takes more time and money to pay programmers to develop them.

    However, one of the clear trends in gaming is spending more on game art and artists than on programming and programmers, and maybe a less obvious problem is that working with hacks is a lot harder for the artists, as well. As an example: setting up shadows in rasterization is not too difficult, codewise (it's fairly expensive, timewise, but clearly workable if you don't have too many lights).

    However, from an artist's point of view, rasterized shadows are wonky, counterintuitive, and fiddly to use. You have to specify which lights cast shadows of which objects on which other objects. The specific angles of lights, cameras, and the scene in question can cause ugly artifacts, which may or may not be possible to eradicate. This is particularly a problem in interactive play, where it may not be practical to preview all possible combinations of the above.

    So, an overlooked advantage of ray tracing may be to provide a better artistic *medium* for game developers -- if you can afford it....

  46. Not radiosity, global illumination by Anonymous Coward · · Score: 0

    radiosity can get to "is that real?"

    I suggest that any technique that actually computes global illumination can get that response. Radiosity is certainly one way of computing global illumination, but so is ray-tracing: starting from the surface, there's no reason why you can't bounce rays off multiple other surfaces to compute the effects of multi-bounce illumination. Ray-tracing isn't limited to visibility determination from the viewpoint.

    Yes, you need a lot of rays to compute global illumination: the chance that you hit a light source if you're just blindly probing from the surface is low after multiple bounces. Yes, this is computationally very expensive. But it parallelizes well, which is Intel's point. Also, there has been much research to cut down on the cost and to intelligently shoot the rays so you guarantee you end up at a light source after multiple bounces.

  47. OT: your sig by Anonymous Coward · · Score: 0

    I don't get it.

  48. Re:No, raytracing is BETTER adapted to custom chip by argent · · Score: 1

    So I have this huge expensive chunk of silicon, and all it's good for, is playing games? That's swell when I happen to be playing a game. What about the other 95% of the day?

    What's that got to do with raytracing?

    If your video card cost more than about $20, why isn't that dilemma already burning in your heart?

    Cool, but does it run Linux?

    Does any video card run Linux?

  49. GlaDOS says: by Lethyos · · Score: 1

    I've got your brain scanned in case something bad should happen to you. Here, I'll put you on: “if you get to use visual studio at work is because you are not good enough to be hired as a Unix coder.” See! That's you! That's how dumb you sound.

    If you argue with GlaDOS, you will not receive cake.

    --
    Why bother.
  50. If you have infinite power, *maybe*... by argent · · Score: 1

    Any academic, or indeed student, with a few $1000 can buy a Xilinx system and design a 66MHz chip. What they tend to do next is assume that all they have to do is buy a more expensive Xilinx system and the chip will suddenly run at 2GHz.

    1. When I referred to those company's resources, that includes their engineers.

    2. Even assuming there's something inherently preventing them from running a raytracer faster than 66 MHz, it's an embarrassingly parallel problem. Even if all you can do is stick (say) thirty-two 66 MHz RPUs on a chip with a hundred times the gates, it's still going to get almost a 30:1 speedup rendering the whole scene. And that 2005 chip was getting performance comparable to its contemporary CPUs already.

    3. If ATI/AMD or Intel started out right now building an RPU, and it took them 2 years to first silicon, if they ended up with a design that was no more than 30 times faster than the 2005 RPU (and I doubt they would be that bad), it might "only" be doing raytracing competitive than the 8-core CPUs they'll be selling... but it'd use a fraction of the power. There's no way you're going to have an 8-core CPU in a laptop in 2 years, but you could have a 32-way RPU in it.

  51. It's not all about the CPU... by Shaterri · · Score: 1

    ...I'm surprised no one has mentioned one of the most serious issues with ray tracing: cache coherency. As processors have gotten faster, the bottlenecks are shifting drastically; being able to feed data to your processor quickly enough is as important as being able to get it through the processor's pipelines.

    Traditional rasterization is about as cache-friendly as you can get; feed your GPU a list of triangles to rasterize, along with small chunks of additional data here and there, and watch it fly through them. Texturing can cause a little bit of thrash since arbitrary orientations mean that you're not going to be sampling your texture maps in consistent patterns (and things like mipmapping throw additional wrenches into the works), but the major GPU manufacturers have done a ton of work on those issues and they're pretty well worked out at this point.

    Now, contrast this with raytracing. Even for primary rays, it can be hard to exploit ray-to-ray coherency; the snazzy spatial partitioning algorithms that give the bragged-about O(log n) asymptotic time can send you romping about your scene memory in fairly arbitrary fashion, and while trusting that you're going to intersect the same objects as the last (primary) ray cast is a good start, tests still need to be done to make sure that nothing has intruded on the scene any closer to the camera than the last ray's nearest hit. And secondary rays (lighting, reflections, etc) -- the ones needed for all the effects that have people interested in ray tracing in the first place -- are much, much worse; the direction of reflections off of a curved surface might as well be random, from a caching perspective; it's all but impossible to do any predictive preloading there except in certain degenerate cases. We're still nowhere near the object counts needed for ray tracing's ostensibly-better asymptotic performance to wipe out the hugely better constant factor that good cache behavior gives rasterization algorithms, and I wouldn't be shocked if we never get there (but that's a rant in its own right).

    1. Re:It's not all about the CPU... by ardor · · Score: 1

      True. I forgot about this point in my reply below. This is another reason why a hybrid makes sense: use ray tracing only where cache misses are overshadowed by much higher costs when using rasterization (like shadows or refraction).

      --
      This sig does not contain any SCO code.
  52. Re:General purpose CPUs: a REALLY bad way to do th by argent · · Score: 1

    The need for "accuracy" in gaming is not high enough to justify the downside of ray tracing.

    But that's not the reason you need ray tracing. You need ray tracing because it scales up so much better than ad-hoc approximations as the scene complexity increases. It gives you "good enough" with less power.

    Look, Slusallek's RPU was getting far better raytracing results than a 2005 P4 CPU, on hardware that's about comparable to a mid-90s Pentium MMX. It's three years later. Intel's showing "good enough" performance now with maybe 8 times the CPU of that 3 year old Pentium-4 Slusallek was talking about.

    Building an RPU array with 2008 technology instead of 1996 technology? I would be amazed if you couldn't get at least as good looking a game as you're getting from a 9-series GPU for a lot less hardware... which means a lot less money, and far lower power requirements...

  53. 386 by turgid · · Score: 1

    It says that a quad core processor gets 16.9 frames at 256x256 resolution.

    Wolfenstein 3D on a 386SX/16 at 320x256x8 :-)

  54. So worth the karma burn by jorgevillalobos · · Score: 0, Troll

    Douche.

  55. on the relative slowness of ray-tracing by j1m+5n0w · · Score: 1

    Is it just me or do in-game raytracing folks seems to miss a rather dirty point?

    You're kind of missing the point; yes, the ray-tracing crowd already knows that ray-tracing is slow, though it's not as slow as public perception (influenced by non-realtime renders like Pov-RAY) would have you believe. What the ray-tracing crowd sees (and they have been seeing this from a long ways off) is where the computational complexity lines cross, where it suddenly becomes cheaper to use ray tracing. Sure, ray tracing on modern hardware is pretty slow; maybe my (several year old) dual-core AMD64 3800 could be made to render ray-traced graphics comparable to an N-64 rather than a Wii, but the great thing about ray tracers is that they don't slow down much when you throw more geometry at them. Rendering a scene with a million triangles only takes twice as long as rendering a scene with a thousand. Once hardware is fast enough to do low-complexity scenes at a good resolution and framerate, it takes only a very small hardware improvement to render extremely high-complexity scenes. The real limitations soon become "how many triangles can we squeeze into physical memory on one machine?" and "how fast is the memory bus?", not "gosh, I wish these ray-intersection tests were faster."

    Keep in mind that a 96x performance improvement sounds like a lot, but that's only about ten years if Moore's law holds, and the article points out that Intel already has demos running at 90fps at HD resolutions. (I haven't seen them myself, so I don't know if they're rendering complex scenes with shadow rays and textures or what, but a current quad core processor ought to be able to do complex scenes at quite a bit better than 256x256@15fps, with a well-written renderer. (Not mine; I would be thrilled if it was that fast.)

    There are, certainly, some performance issues that need to be worked around; rebuilding an acceleration structure when something moves is expensive (BIH trees are better at this than KD-trees, but they're still O(nlogn)), so more care must be taken to treat static and dynamic parts of the scene differently. Lots of lights can bog a scene down, and certain shapes of scenes are worse than others. Mixing large and small triangles is bad for BIH trees. These are all things that have to be understood in order to make a fast game, at least until the hardware gets fast enough that no one cares about framerates anymore.

    I expect maybe we'll see some sort of raytraced game on par with tuxracer this year, and a real high-budget game maybe in one or two years, and then ray tracing will be mainstream in about five, when the average person will have a fast-enough machine to handle it.

  56. realism by j1m+5n0w · · Score: 2, Interesting

    Higher polygon counts, sure nice to have, but again not really all that important...

    This is a rather good point; at some point, adding more polygons doesn't do anything to make an unrealistic scene look more realistic. This is true for raytracing and polygon rendering alike. Ray tracing has some advantages here, for what it's worth; it scales better with huge scenes, and it can represent non-triangular primitives natively (though all the fast ray-tracers I've seen only deal with triangles). I wouldn't call reflection a non-issue; currently, no one cares because current implementations aren't very good, and there aren't any better alternatives to compare with. Same with refraction. Ray-tracing can do soft shadows, but they're computationally more expensive (at least, all the approaches I know are).

    Ray tracing is just the next step towards realism. Once we start doing ray tracing, we can move on to global illumination. Photon mapping is a GI algorithm that works like ray tracing in reverse; it casts rays out from the light source, and then they can bounce of off or be absorbed by the objects they hit (depending on surface properties), and their final location is stored as a point in a data structure called a photon map. Then, when you ray trace, you use the local density of the photon map to approximate the amount of light. Photon mapping can be used to simulate ambient light, caustics (patches of light reflected off of or refracted by shiny things), and subsurface scattering in a way that is physically correct and unbiased. See "The Light of Mies van der Rohe" animation on this page for an example of ambient light, or here for some images of caustics.

    Ray tracers can do all the things that polygon renderers can do, plus a bit more. Once the hardware gets fast enough (and it looks like that will happen within a few years), there's no real reason not to use ray tracing. Photon mapping is more expensive (there's an nlogn sort involved in constructing the photon map), so it will probably be quite a while before we start to see real-time global illumination updates, but that's the next big step, and we can't go from here to there with the polygon rendering algorithms we're using now.

    1. Re:realism by grumbel · · Score: 1

      ### there's no real reason not to use ray tracing.

      For the time being there is a very good reason to not use ray tracing: Everybody has rasterizing GPUs, while nobody has special hardware for raytracing and won't have anytime soon. And the GPU development isn't exactly going to stop and wait for ray-tracing so it will have a really though time to catch up. And that is assuming that ray-tracing actually is better. All the talk about how it doesn't work so well for dynamic scenes might not have sounded so bad 10 years ago, but today where physics engines are everywhere that sounds pretty problematic.

      In the end I think the major advantages in the next years won't really be a matter of rasterizing or raytracing anyway, physics engines, fluid-dynamics, AI and all that stuff that doesn't care much about the rendering, but about constructing and moving the underlying 3D world has far more influence on the overall experience then a few more polygons.

      All that said, it would be nice to have a realistic game with millions of polygons where each and every tiny detail is modeled, like this Boeing 777 model with 350mil polygons, but then who would ever have the time and money to build that for a game?

    2. Re:realism by j1m+5n0w · · Score: 1

      Everybody has rasterizing GPUs, while nobody has special hardware for raytracing and won't have anytime soon.

      It isn't clear that we'll need specialized hardware. A general-purpose multicore CPU will do just fine, if it's fast enough. Maybe we'll have hardware raytracing accelerators at some point, but not right away. A software-only rendering engine would be pretty compelling to game designers; no weird hardware inconsistencies, and the rendering engine can be customized for the specific application. No more "sorry, that feature doesn't work on that one video card that a million people bought three years ago."

      All the talk about how it doesn't work so well for dynamic scenes might not have sounded so bad 10 years ago, but today where physics engines are everywhere that sounds pretty problematic.

      You may be right there that dynamic scenes are a stumbling block, but I expect the physics engines have to deal with a lot of the same problems. If both the physics engine and the rendering engine can use the same data structures, that saves a lot of memory and overhead. See my other post on how ray tracers deal with dynamic scenes. It's an active area of research right now, but as long as you aren't trying to simulate a million independently-moving snowflakes or something like that, using a top-level BIH tree and then treating all the animated objects as separate sub-trees is a reasonable way to go.

      ...it would be nice to have a realistic game with millions of polygons where each and every tiny detail is modeled, like this Boeing 777 model with 350mil polygons, but then who would ever have the time and money to build that for a game?
      Actually, it's making your models simple enough to render quickly that's the hard part; if you don't have to care how many triangles you throw at the renderer, it makes development that much easier. (Memory will still be a limiting factor, but if you can use regular RAM instead of video card memory, there's a bit more room to work.)
  57. acceleration structure build times, BIH trees by j1m+5n0w · · Score: 1

    A caveat of the oft-quoted O(log n) number: It's only true for static geometry. The data structure used is the k-tree, and was really intended for off-line rendering. It takes a long time to build it.

    You're right, that's a point that a lot of people don't realize; acceleration structure can take a long time to build. However, kd-trees aren't the fastest trees to build; BIH trees can be built much faster. They're both nlogn, but the BIH tree construction algorithm is an in-place sort and uses a predictable amount of memory (it's actually remarkably similar to quicksort). BIH is usually a bit slower to use when you're actually tracing the scene (maybe ~%70 performance of kd-tree depending on scene and implementation), but they can be constructed maybe a couple orders of magnitude faster. (A link to that paper and others can be found here.)

    The big difference between the two approaches is that KD-trees are a spacial subdivision, and any objects on both sides of the split plane are referenced from both sides of the tree; BIH is an object subdivision scheme: objects are never duplicated, but the space occupied by both sides of a branch may overlap.

    It's possible to get around some of the animation problems by having a top-level BIH tree, that contains a bunch of separate trees, one for each movable object and one for the static scene. (That won't work very well for scenes with a million snowflakes blowing in all directions, but it should be okay for most games.)

  58. "Ray tracing faster then rasterization" by Anonymous Coward · · Score: 0

    Amazing how Daniel Pohl can master the intricacies and subtleties of raytracing optimizations but can't understand the difference between "then" and "than".

  59. Re:No, raytracing is BETTER adapted to custom chip by Anonymous Coward · · Score: 0

    The problem is that fast general-purpose CPUs use a lot of silicon, while specialty processors use very little silicon and are much much faster than GP CPUs. In other words, your PS3's Cell is going to perform algorithms like Folding@home 30 times faster than an average CPU, while your graphics card can even double that.

    So the idea is that instead of building a chip with 100 general-purpose cores (of which you only have a use for about 20), you put only put on 20 of those, but you also have 20 cores that are good for things like compression algorithms, 20 that are good for encryption algorithms, 20 that are good for graphics algorithms, and maybe 20 that have reprogrammable microcode.

    It might seem like a waste of silicon to include specialty cores you can't use all the time, it's a waste of power to run 20M transistors to do something that 1M can do twice as fast.

    dom

  60. quality != quality by __aalwyc6372 · · Score: 1

    finally developers will be able to trace those shiny little bugs perfectly. i'm sure that will make the overall quality of the games a lot better.

    O_o

  61. Re:General purpose CPUs: a REALLY bad way to do th by renoX · · Score: 1

    I wonder how this post could be modded 'interesting'??

    When the raytracing guys talk about scaling, it was increasing the number of FPGA present on the chip (possible because the memory bandwith is low) not scaling it's frequency.

    That said I don't believe much in raytracing for games in the short/medium term:
    - software only ray tracers are still too slow
    - dedicated HW solutions have the huge problem that they cannot render existing games
    - apparently it's hard making GPU do ray tracing efficiently
    - plus it's likely that the resolution of games is going to increase to HD resolution in a few years which will delay again raytracing (O(n) in resolution compared to O(log n) for rasterisation).
    - game companies are very conservative.

  62. Filters? by Explo · · Score: 1

    This is a bit offtopic, but anyway:

    I used Amiga for a long time (approximately from 1987 to 1997) as my only platform and liked many things on it, but what do you mean with the bit about the 'some of the best filters ever put on a soundboard'? AFAIK, the Amiga audio hardware had only one filter, and that was the low-pass filter that had no user-controllable properties other than being switchable on and off. In this particular regard, the Paula chip was a step down from the famous SID, which had quite flexible filtering capabilities.

    In order to not to be completely offtopic, I agree that having a pile of cores is good for non-trivial tasks, although I wouldn't be throwing specialized hardware out yet; after all, the GPUs these days are fairly flexible and can be adapted for many tasks outside just rendering polygons for the latest 3d-shooter.

    --
    Everyone who makes generalizations should be shot.
  63. This is the real problem with raytracing. by argent · · Score: 1

    Resolution isn't a big deal: I already run my computer at 1280x1024, which is slightly better than HD... and over the past 10 years good affordable monitors have really only gone from 1024x768 to 1280x1024... higher resolution monitors than that cost more than most computers.

    No, the big problem with raytracing is your last point: game companies are very conservative.

    Even if nVidia could stick several parallel RPUs in the next generation of graphics chips pretty much for free (and they could, when an RPU would come out to about 1% of their silicon budget) it'd be five years before any game other than open source-ones like Doom and Second Life used them. :(

    Of course Intel could stick 32 RPUs in the next Core Hyper Quadro II without noticing the transistor budget, but they won't. Maybe AMD/ATI will put it in the next Biathlon XXX...

  64. dynamic scenes by j1m+5n0w · · Score: 1

    The problem is that computing these trees is expensive, and any change to the location of triangles inside the tree means recomputing the entire partition tree.

    This isn't entirely true; it is quite possible to build an acceleration structure that contains not triangles but other acceleration structures. For instance, you might have a top-level kd-tree that holds a hundred other kd-trees, where each of those other kd-trees is the pile of triangles representing some movable object in the scene. If one of those objects moves, you only have to recompute the top-level tree, and (if the object's geometry has deformed as well), the tree of that thing that moved. You definitely do not have to recompute everything just because one triangle moved.

    Also, we now have BIH trees (link to the paper is here); these can be re-sorted much more quickly than kd-trees (the current favorite for static scenes). They use a fast in-place sort very much like quicksort. Dynamic scenes can be a bottleneck in certain cases (a million swirling snowflakes, for instance), but in the general case it's not a show-stopper.

  65. hybrid approach by j1m+5n0w · · Score: 1

    In fact, his points actually show why a hybrid is perfect: most surfaces are not shiny, refractive, a portal, etc. Most are opaque - and a rasterizer is much better for this (since no ray intersection tests are necessary).

    Actually, primary rays are quite a bit cheaper for a raytracer to compute than secondary rays (reflections, shadows). There are ways to exploit the coherency and do far less work (packet tracing and MLRTA, for instance). In a hybrid scheme, the graphics hardware would only be unloading the easiest portion of the workload.

    The point the article was trying to make is that if your ray tracer is fast enough to ray-trace the entire screen, there's no compelling reason to even use rasterization; the ray tracer is going to be fast enough to do that by itself, too. Hybrid schemes might make sense if ray-tracing is too slow to render the whole screen at a decent framerate (basically, where we're at today), but in a few years that will very likely no longer be the case.

    Take the best of both worlds, and go hybrid, just like the major CGI studios did.

    The reason the movie studios don't use raytracing more often is that raytracing is not memory-parallel, and they need to be able to render scenes that can't fit in the memory of any one computer. Here is some info on how Pixar used ray-tracing in the movie Cars.

  66. rebuttal by j1m+5n0w · · Score: 1

    Here is an (in my opinion) intelligent and well-informed rebuttal to the article you linked to that I came across today.