Slashdot Mirror


How Quake Wars Met the Ray Tracer

An anonymous reader writes "Intel released the article 'Quake Wars Gets Ray Traced' (PDF) which details the development efforts of the research team that applied a real-time ray tracer to Enemy Territory: Quake Wars. It describes the benefits and challenges of transparency textures with this rendering technology. Further insight is given into what special effects are most costly. Examples of glass and a 3D water implementation are shown. The outlook hints into the area of freely programmable many-core processors, like Intel's upcoming Larrabee, that might be able to handle such a workload." We mentioned the ray-traced Quake Wars last in June; the PDF here delves into the implementation details, rather than just showing a demo, and explains what parts of the game give the most difficulty in going from rasterization to ray-tracing.

158 comments

  1. Would have posted first, but... by Anonymous Coward · · Score: 4, Funny

    I was using a raytracer.

    1. Re:Would have posted first, but... by masshuu · · Score: 0

      well it just took me 20 minutes to do a little 800x600 picture. i don't have $45k to spend on a gaming comp atm, so ill just stick to my world of warcraft, that can run on 10 year old comps

      --
      O.o
    2. Re:Would have posted first, but... by rhyder128k · · Score: 1

      Only 20 mins? What accelerator card does your Amiga have?

      --
      Michael Reed, freelance tech writer.
    3. Re:Would have posted first, but... by larpon · · Score: 1

      Must be the 68060

    4. Re:Would have posted first, but... by aliquis · · Score: 1

      Hey!! Wtf was that!?!?! :D

      Don't shit where you live!

      If only Essences coder did games =P

      http://ada.untergrund.net/showdemo.php?demoid=189
      http://ada.untergrund.net/showdemo.php?demoid=437
      http://ada.untergrund.net/showdemo.php?demoid=386
      http://ada.untergrund.net/showdemo.php?demoid=428

      Not that Amiga was ever any good for 3D graphics but whatever :D

  2. animation, bottlenecks, etc... by j1m+5n0w · · Score: 0, Redundant

    Interesting article. A little light on details. (What renderer were they using? OpenRT? Something they wrote themselves? Is it based on Kd-trees? BVH? BIH?) Also, not much mention of animation. Re-sorting the geometry whenever objects move is a hard thing to do efficiently, though there has been a lot of recent research in this area.

    1. Re:animation, bottlenecks, etc... by MichaelSmith · · Score: 5, Informative
      I interpreted this bit...

      For this project, we started rewriting the renderer from ground zero. Because of this, the very first images from the renderer were not of typical ray- tracing caliber, but displayed only the basic parts of the geometry, without any shaders or textures

      ...to mean that they rolled their own.

    2. Re:animation, bottlenecks, etc... by j1m+5n0w · · Score: 0, Redundant

      Ah, I guess I skimmed the article a little too quickly.

    3. Re:animation, bottlenecks, etc... by XcepticZP · · Score: 2

      Or not at all.

    4. Re:animation, bottlenecks, etc... by Anonymous Coward · · Score: 0

      Let's see. On the very first page, there is a bold heading, "STARTING FROM SCRATCH". The first sentence under that heading is "For this project, we started rewriting the renderer from ground zero."

      If you skimmed it so quickly as to miss that, I dare say your skim-fu is very FU.

    5. Re:animation, bottlenecks, etc... by V!NCENT · · Score: 1

      Well, Crysis (Crytek) has it's own renderer, yet it calls Direct3D. Same goes for ET:QW RT; Intel made a ray tracing renderer from the ground on up that calls the OpenRT lib.

      --
      Here be signatures
  3. Hrmm by acehole · · Score: 5, Funny

    So when can I buy the CPU/Vid card that can do raytracing, heat my house, cook food off and pipe extra heat out for a steamhouse?

    --
    Be you Admins? nay, we are but lusers!
    1. Re:Hrmm by atomicthumbs · · Score: 2, Funny
      --
      http://pinopsida.com
    2. Re:Hrmm by Spy+Hunter · · Score: 2, Funny
      --
      main(c,r){for(r=32;r;) printf(++c>31?c=!r--,"\n":c<r?" ":~c&r?" `":" #");}
    3. Re:Hrmm by j1m+5n0w · · Score: 4, Informative

      Quoting wikipedia: "Intel planned to have engineering samples of Larrabee ready by the end of 2008, with a video card featuring Larrabee hitting shelves in late 2009 or early 2010."

      Of course, it's always possible that AMD or Nvidia could beat Intel to market with a ray-tracing friendly GPU, but it doesn't seem likely that they'll bet the farm on a technology that isn't well-established.

      If you want to play a software ray-traced game right now (or you just want to heat your house for the winter), you might want to look at Outbound or Let There be Light, which are both open-source games (though they run on Windows) built on top of Arauna. Gameplay is not really up to par with commercial games, but as a technology demo they're quite impressive. Framerates are tolerable on reasonably modern CPUs.

    4. Re:Hrmm by palegray.net · · Score: 1

      You forgot all about taking care of business in bed and making you a sandwich afterward.

    5. Re:Hrmm by aliquis · · Score: 1
    6. Re:Hrmm by Lumpy · · Score: 1

      Buy a Quad P4 motherboard from 4 years ago and use heatpipes to do all that you ask.

      Hell if you did it right you could get one of the old P4 Xeon dell servers that would take 8 processors and easily heat your home and water for you.

      --
      Do not look at laser with remaining good eye.
    7. Re:Hrmm by robthebloke · · Score: 1

      You Already can

  4. Can anyone tell de difference... by Anonymous Coward · · Score: 0

    ...between a raytracing demo and a slideshow?

    1. Re:Can anyone tell de difference... by Anonymous Coward · · Score: 0

      One runs at 0.3 FPS and looks really pretty, the other runs at around 30 FPS, at a terribly low resolution, and with very few objects onscreen at once?

    2. Re:Can anyone tell de difference... by amn108 · · Score: 1

      1280x720 is pretty usable and popular resolution these days, it is used in everything from HD movies to Playstation 3 games, and nobody seems to be complaining of it being "terribly low".

    3. Re:Can anyone tell de difference... by default+luser · · Score: 1

      Sure, but I believe the point is this: if you paid retail for the render farm this project used, you would be VERY disappointed with 1280x720 resolution at 20fps.

      When you can get 1920x1080 @ 60fps playing ETQW on a $100 video card, you start to see the raytracing results in a different light.

      --

      Man is the animal that laughs.
      And occasionally whores for Karma.

    4. Re:Can anyone tell de difference... by amn108 · · Score: 1

      The visual quality ray traced renderers deliver (by their very nature) in my opinion more than makes up for the lack of resolution. I would much rather enjoy more complex scenes with different materials reacting to light than watch cartoonish simulations of physics of light running at 1920x1080 or even 19200x10800. I believe the brain suspends disbelief easier based on the complexity of the scene and realistic light interactions and even "forgets" how many pixels are in the scene, which explains why people instantly respond to 640x480 photos of beautiful scenery as being real versus looking at 1920x1080 screenshots of Crysis (computer game). I rest my case.

      P.S. The render farms used by the movie industry still use ray tracers, albeit those which are tweaked to disregard certain effects of rendering that may be ignored by majority of audiences. Point is when you need quality, use raytracer. And they are getting faster and faster, so I do not see how and where exactly they may fail.

      Then again, most of the most impressive game engines today blend the border between raytracing and rasterizing, to achive both visual quality and speed. So in essense, this debate is a bit too black and white.

    5. Re:Can anyone tell de difference... by amn108 · · Score: 1

      Also I do not understand what are you trying to say - first you mention render farms, which are for prerendering highest quality CG we enjoy today AND which do use raytracers to render in any resolution you want, albeit slower than realtime, and in the next paragraph you are talking about ETQW and a $100 video card. I was talking about 1280x720 being todays resolution for gaming, and I bet realtime raytracers rendering 1280x720 would win the hearts of ANY gamer over todays or tomorrows GPU assisted games running at 1920x1080 or even double that. I elaborated on the reasons (suspension of disbelief thing) in the previous post.

    6. Re:Can anyone tell de difference... by default+luser · · Score: 1

      I was talking about 1280x720 being todays resolution for gaming, and I bet realtime raytracers rendering 1280x720 would win the hearts of ANY gamer over todays or tomorrows GPU assisted games running at 1920x1080 or even double that.

      And I was saying that you cannot get real-time 1280x720 raytracing today for a reasonable price. You can run the game rastered at 1280x720+ for under $1,000 from a major manufacturer (even with their video card mark-up), or you can spend $10,000 or more on the 4-socket, 16-core server system they used for this test.

      And there are other factors that nobody will discuss: their test uses almost entirely static geometry. From what I can see of the photos, there is nothing moving around the playfield except the player's helicopter - this means performance would fall like a rock if you used this tech to play a real game.

      I think I know which one I would choose. Yeah, the reflections in the demo look good, but they don't look THAT good.

      --

      Man is the animal that laughs.
      And occasionally whores for Karma.

  5. Thank you Intel by Anonymous Coward · · Score: 0

    Thank you Intel for not smooshing this informative summary into a bullet list PowerPoint.

  6. Never ending chase... by grumbel · · Score: 5, Insightful

    Yet another ray tracing article and yet again all the same problems as before. Doing yesterday games in ray tracing is all nifty, but also kind of pointless. For one we already played them, but more importantly, it doesn't actually use the strength of ray tracing. Rendering a tree build out of texture quads is a nice accomplishment, but wasn't the whole point of ray tracing that one can have a million polygons and no longer need such hacks? So show me a realistic tree instead of trying to replicate the limitations of rasterization.

    I am still waiting for a game/demo that actually is build from the ground up with ray tracing in mind and by that I mean one that actually looks good, just a few shiny spheres might have been impressive back on the Amiga some 20 years ago, not any more.

    1. Re:Never ending chase... by j1m+5n0w · · Score: 5, Informative

      I am still waiting for a game/demo that actually is build from the ground up with ray tracing in mind and by that I mean one that actually looks good,

      Have you tried Outbound? You can find it here. While it's probably not destined to be a huge hit, it looks nice and runs at a playable framerate on a reasonably fast computer. (If you don't want to try to "beat" the game, there's an option buried in one of the configuration files to disable physics and just fly around and admire the scenery.)

    2. Re:Never ending chase... by YesIAmAScript · · Score: 3, Informative

      The problems haven't changed since the 80s.

      I attended Siggraph in 1989 and watched the AT&T Pixel Planes presentation. Things still haven't changed in 20 years.

      I have no idea how you say that ray tracing somehow frees you from quads (or tris). You're still going to have to describe the geometry somehow. Depending how things are done you might get some freedom from surface normals and such, but you'll still have to figure out how to make that tree from sub-elements so that the ray-tracer can bounce rays off it. When a ray passes through the bounding box of the tree, you're going to have to be able to find out of the ray truly intersects the tree and if so, where on it did it hit, at what angle and what color the tree would appear to be from the angle the ray came from. That's going to require you describe the tree with geometry elements and the texture/color and spectral changes depending on angle.

      --
      http://lkml.org/lkml/2005/8/20/95
    3. Re:Never ending chase... by Sycraft-fu · · Score: 5, Insightful

      You aren't going to see that kind of thing in a game for many reasons that boil down to that ray tracing isn't ready to do realtime. To make a game that used ray tracing would pretty much doom it to failure.

      One problem you have is that the graphics hardware out there isn't built for ray tracing, it's built for rasterization. Now while I'm sure you can write your own ray tracer on the newer hardware that does GPGPU stuff, I'm also sure it wouldn't run as well. Reason is that current graphics cards are purpose built rasterizers. They are designed to do that as fast as possible. So you are left with writing your own ray tracing engine in software, either on the CPU or GPU. This is not going to be fast, especially since ray tracking is fairly computationally intensive.

      Well then you hit the next problem: Pixels. Ray tracers do NOT scale well with resolution. Each pixel has to have it's own ray cast. If you want to do anti-aliasing, then you have to do more rays for that. This is why ray tracing demos tend towards low resolutions. It is much faster the less pixels you have to do. Ok well that doesn't compare favorably against the rasterizers. They scale extremely well with resolution, and also in terms of anti-aliasing. Many of them can do 4xFSAA with next to no performance penalty, and can do it at full HD resolutions. Not the case with your ray tracer. If it can render 40 FPS at 1920x1200 with no AA, it'll be just 10 FPS with 4x AA since it now has to do 4 rays per pixel.

      So you aren't going to see it happen any time soon. The net result wouldn't look as good as the equivalent rasterized game. It won't be the sort of thing you see until either there starts to be purpose built ray tracing hardware (GPUs may start be made for both) or general purpose processors are so fast it makes no real difference.

      Intel is all up on this because they see GPUs as a threat to their computation market. However, as this demonstrates here, there really isn't an advantage at this time. You throw a positively massive system at it and you get poor performance. Even if you redid the game so it used extremely high geometry, nobody would give a shit. IT would run way too slow on any normal computer.

    4. Re:Never ending chase... by Rockoon · · Score: 0, Flamebait

      You obviously don't know what you are talking about.

      Firstly, in rasterization, 4xAA does not mean 4 samples per pixel. Not all pixels are subsampled or supersampled. Nobody does that shit anymore.
      Secondly, in raytracing, 4xAA does not mean 4 samples per pixel. Not all pixels are subsampled or supersampled. Nobody does that shit anymore.

      Thirdly, what the fuck do current video cards have to do with *anything* about this? This is called RESEARCH. Ever do any?

      Fourthly, rasterization began as a software rendering technique.

      Finally, you dont have a fucking clue about why raytracing actualy scales *well* and is obviously a superior rendering method for the future. It may not replace rasterization, but something sure as damn well will and if its not raytracing, whatever is next will scale at least as well as raytracing.

      Rasterization scales very poorly to scene complexity, which is a far more important metric than scaling poorly to resolution. Resolution has doubled 3 times in 25 years, while scene complexity has doubled more than 20 times under the same time period. The chance that resolution will double again in the next 5 years is just about zero, while the chance that scene complexity will double several times in the same period is just about 100%.

      If you are a decent well learned programmer, essentialy an expert in algorithmic complexity, then surely you understand the comparison O(n) vs O(log n) and why you cannot refute it with horseshit.
      If you arent a decent programmer, then realize that you are an ignorant blowhard spouting about something that you do not understand (go read some Donald Knuth, spend a few years living it, then open your mouth)

      --
      "His name was James Damore."
    5. Re:Never ending chase... by malakai · · Score: 1

      I think the gp was talking about using transparent quads with textures to fake complex graphics.

      IE, branches of a tree are really just a texuture painted on a quad with bump-mapping. It's 2 polys, not 1000 it could be.

      the article makes a reference to trying to speed up hit testing of transparent quads when shadow-casting.

      Games/technology will continue this slow R&D followed by a quick jump in visuals for all games for the next 10 years. At some point, our power will be suffiecent enough that the tree will not be a fixed set of polygons, but simply a natrual algorithm that gets fed some seed values and outputs a line of triangle strips. Maybe you can even tell it just which part of the tree you want it to 'grow' and then render those triangles.

      This will free us from games having a forced 'fixed' resolution based on whatever the graphic artist was told his poly limit was at the time.

    6. Re:Never ending chase... by Jackie_Chan_Fan · · Score: 1

      Actually your tree example has nothing at all to do with raytracing. Textured Quads are used for leaves because of polygon count. The polygon count required to create every individual leave is extremely huge and it takes not only more render power but a hell of a lot more setup/translation processing.

      The higher polygon count required would put just as much demand on a raytracer as it would on a reyes or scanline renderer. In fact it may put more stress because raytracing scenes tends to require larger amounts of data being available in memory for each raytrace as it passes through transparent surfaces and bounces off reflective surfaces...

    7. Re:Never ending chase... by grumbel · · Score: 2, Informative

      Textured Quads are used for leaves because of polygon count.

      The whole point of realtime ray tracing is that it scales with O(log(n)) instead of O(n) when it comes to polygons. Which means that you can and should model each leaf as fully polygon. That is actually done in quite a few other examples, such as the sunflower scene or that Boeing model, where every last screw is modeled and yes, ray tracing can handle those just fine.

      Now there is of course a cavet, this scalability only works for static scenes and things become quite a bit more problematic when stuff is animated, but never the less the whole point of 'going ray tracing' is because presumably polygon counts are slowly get high enough that ray tracing just outruns rasterization.

    8. Re:Never ending chase... by Anonymous Coward · · Score: 2

      Interpersonal skills, go read some, spend a few years living it then open your mouth.

      It may be worth wiping the rabid spittle off your chin first.

      ( I'm a random passerby, not the original poster. )

    9. Re:Never ending chase... by tepples · · Score: 1

      IE, branches of a tree are really just a texuture painted on a quad with bump-mapping. It's 2 polys, not 1000 it could be.

      That's the case in Fighting Force for PS1. It's also the case in Animal Crossing, which was designed for a 1996 GPU and a fixed-angle camera. (The GameCube game was a source port from N64, the DS has N64-class GPU, and the Wii game intentionally kept the same art style.) But in plenty of games using a "realistic" art style designed for the PS2 or more powerful hardware, branches are actual geometry.

    10. Re:Never ending chase... by karnal · · Score: 2, Insightful

      I know I use my share of the foul words in the english language, but think about this - everyone would take your comment more seriously if you didn't use them; at least not to the excess seen in your post.

      --
      Karnal
    11. Re:Never ending chase... by Anonymous Coward · · Score: 0

      I count 5-6 pixel doublings since CGA, or more with anti-aliasing. Are you betting that WQXGA and, say, another level of oversampling, won't become common in the next 5 years? The recession and the portable trend could prevent it, but "just about zero"?

    12. Re:Never ending chase... by robthebloke · · Score: 5, Informative

      If you are a decent well learned programmer, essentialy an expert in algorithmic complexity, then surely you understand the comparison O(n) vs O(log n) and why you cannot refute it with horseshit.

      How about real world experience then?

      We have approximately 120 rack units in our renderfarm, each with dual quad core xeons + Dual Quadros. Of the rendering jobs we submit, approximately 0.001% use raytracing exclusively, about 0.5% make use of raytracing extensions. The rest is rasterization because it's a hell of a lot more efficient. Period. (And I'm talking about the real world here - not Big O notation on paper)

      The arguments for scene complexity go out of the window very quickly in all fairness, for quite a few reasons.

      1. To double the complexity of a model, we typically expect to see the time spent authoring that asset to increase by a factor of 6. We currently employ in the region of 200 modellers. A doubling of scene complexity would take that number to 1200 (if you don't count the additional management overhead etc). There simply aren't enough skilled people to make that a reality, so there is an absolute cap on how complex a given scene can become.

      2. We always have, and always will continue to seperate the rendering into seperate passes for the compositor to correctly light at a later stage in the pipeline. A highly skilled compositor can produce higher quality images quicker than a better rendering algorithm can. Because we always split the scene into smaller constituent parts, the scene's never get complex enough to see any ray tracing benefits (and those parts can be rendered seperately on different nodes in our RF).

      3. We typically use 4k x 4k image sizes, rasterization is certainly fast enough for those image sizes. Our scene complexity is far higher than that of a any game now, or in the next 5 years.

      4. Scene complexity is inherently limited by 1 other major factor that you've completely ignored. Memory speed. As your data set increases, rendering performance degrades to the speed at which you can feed the processors - i.e. the speed of the memory. Again, this is another reason why we seperate the scene into render layers.

      CG has never, and will never, use accurate mathematical models to produce images. If a cheap trick is good enough, it's good enough. Raytracing never really made the in-roads into the FilmFX world that the early 80's/90's evangelists predicted - And i predict that it will never make the in-roads into Games that you seem to believe.

      Thirdly, what the fuck do current video cards have to do with *anything* about this? This is called RESEARCH. Ever do any?

      Wow! Ever done any research yourself? If you did, you'd know that the answer is an awful lot! The only computational resource available that can provide both the memory bandwidth, and the computational power required for raytracing is the GPU. Our rendering process has been using GPU's to accelerate raytracing (and rasterization) for a couple of years now, unfortunately all of the problems I raised above regarding ray-tracing still apply.

    13. Re:Never ending chase... by robthebloke · · Score: 2, Insightful

      There's one other caveat. That scalability fails to apply when you take into account that memory read's are not free.

    14. Re:Never ending chase... by aliquis · · Score: 1

      Looks kinda crappy vs todays games, or the games off 5 years ago, on par with those released 8 years ago maybe ;)

    15. Re:Never ending chase... by gwappo · · Score: 1
      I'm going to have to disagree a bit here.

      The issue with raytracing is memory access patterns; this is not so much an issue with GPUs vs CPUs, but rather that both CPUs and GPUs rely on linear prefetch patterns through memory, which raytracing breaks as you traverse the spatial subdivision structure.

      Secondly, ray tracers scale very well with resolution O(n) where n = number of pixels; we currently still have a relatively high constant cost, but assuming moore's law keeps up in performance and we find an answer to the memory problem, it is superior.

      What makes the move to raytracing somewhat an inevitability, however, is not raytracings ability to very straightforwardly do more sophisticated lighting (many of which can be mimicked in awkward ways), but its ability to scale to massive amounts of geometry; eg. when using octrees, we're looking at O(log(n)) for n primitives - this is better than GPU rasterizing hardware where it is O(n).

      The one critical failure of raytracing - and the reason it is hard to do games - is that to get to O(log(n)) you (currently) have to have static geometry - it cannot animate dynamically in realtime as you need to rebuild the spatial subdivision structure for the animated geometry on a frame by frame basis, and that gets expensive..

      Perhaps some kind of mix will ultimately be used, but the geometry benefits of raytracing do still make the technology inevitable.

      Having said that, Larrabee will be a stillborn for the first reason outlined.

    16. Re:Never ending chase... by Sloppy · · Score: 1

      Near as I can tell, your whole argument boils down to "raytracing is slow[er]." (I added the "er".) The years keep going by, though, and while the clocks are creeping up slower than they used to, we keep getting more 'n' more cores. Raytracing might always be slower but it's only a matter of time until it's fast enough.

      When you say 10 FPS, I think "That's amazing!" That means in 10 years we'll all be doing 60 FPS it on $500 machines.

      --
      As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
    17. Re:Never ending chase... by Anonymous Coward · · Score: 0

      One of the major ideas that makes realtime raytracing possible is using ray bundles, thus shooting only one or a few rays for many pixels.

      With custom hardware (there's a reason why Intel's new SIMD units have much wider registers than previous iterations) you can easily make these bigger and thus scale raytracing to HD resolutions.

    18. Re:Never ending chase... by slashdotjunker · · Score: 1

      Grr, this always happens. Why do people always compare static rendering with dynamic rendering? A billion dollar industry isn't wrong. Rasterization is better for games. Period.

      Dynamic, order-independent rendering is O(n) no matter what rendering system you use. The oft-quoted O(log n) is only valid for static, order-dependent renderers! To turn a dynamic scene into a static one you have to sort the data into a static acceleration structure. Doing that takes you O(n log n) so order-independent rendering will always be better for dynamic scenes.

    19. Re:Never ending chase... by grumbel · · Score: 1

      Large parts of any game level are completly static and so are many models, but you are absolutely right, dynamic scenes are a problem and todays games have plenty of them. Which is exactly why I said I would like to see stuff that focuses on the strength of raytracing instead of trying to replicate current games.

      I don't doubt that rasterization will dominate computer games for a long while to come, compatibility on multiple platforms alone pretty much guarantees that, all technical benefits aside. However I also think that it might be time to try other rendering algorithms again, after all, we have been stuck for a decade with 3d hardware and while it can do many pretty things there are also plenty of things it just can't do well. And with multicore CPUs getting common and stuff like PS3 cell it might be time for some creativity in that area. Who knows, maybe some space game with gigantic hyper detailed Star Destroyers or whatever would be good to showcase raytracing.

      Anyway, my whole complaint about this raytracing thing is simply that research is the stuff that should blow you away and make you go "wow" and not let you go "yeah, nice, I played that last year..."

    20. Re:Never ending chase... by 0xABADC0DA · · Score: 2, Interesting

      4. Scene complexity is inherently limited by 1 other major factor that you've completely ignored. Memory speed. As your data set increases, rendering performance degrades to the speed at which you can feed the processors - i.e. the speed of the memory. Again, this is another reason why we seperate the scene into render layers.

      What's neat about raytracing is that the memory access can be divided into millions of separate 'threads' that are not dependent on each other. So, with a processor (such as Tera MTA) where threads run in the order that memory is available you achieve maximum memory bandwidth.

      On 'modern' processors where memory is read in the order that threads run you get massive pipeline and cache stalls when using a software raystracer. So when you are comparing the 'vs' of rasterization and raytracing you need to consider that raytracing currently has thousands of hands tied behind its back.

      Raytracing never really made the in-roads into the FilmFX world that the early 80's/90's evangelists predicted - And i predict that it will never make the in-roads into Games that you seem to believe.

      I think it's exactly the opposite. 'FilmFX' world isn't using raytracing because it hasn't been used in games. Games drive this tech, and if we get fast hardware for raytracing then movies will use it exclusively.

      It's really been a hardware issue... designing an asynchronous CPU with millions of thread AND getting it to interface efficiently with a PC card bus is basically impossible. But, move the renderer into the CPU itself and it's far, far easier and faster on all fronts. For that reason I see raytracing soon getting it's first real chance to compete head-to-head.

    21. Re:Never ending chase... by daVinci1980 · · Score: 5, Informative

      Rockoon, you are mistaken in a lot of your points. Even if you seem a bit angry, please allow me to explain. (I work for nvidia, but I do not speak for them).

      Firstly, in rasterization, 4xAA does mean 4 samples per-pixel. The short version is that 4xAA basically means that we render into buffers that are twice as large in the X and Y direction (so 2*2 is 4), and then resolve the extra pixels with hardware when we go to present the backbuffer into the front buffer.

      I can't speak to 4xAA in raytracing, but to be apples-to-apples, it would have to literally be extra rays in the X and Y directions. Note that I'm not claiming there's a 4x performance penalty here, though, because modern ray tracers rely a lot on cache coherency to be performant. Algorithmically, I would agree that there really is a potential for 4x the cost, but algorithmically we don't care about the constants we multiply by, right?

      Third, it's important to consider what current cards do because they're the largest install base, and they are what developers will target. It's also important if you believe that hybrid raytracing is the future--almost all modern raytracers use rasterization for the eye rays to try to help with the pixel complexity problem.

      Fourth, you are correct. In fact, there are probably relatively few hardware inventions that didn't begin their life as a software implementation--CPUs excepted.

      Finally, you are incorrect. Raytracing scales O(pixels) and O(ln(complexity)). Rasterization is relatively constant in the number of pixels, and O(complexity). I agree, scene complexity has gone up considerably (and continues to go up considerably) every generation of new titles. Fortunately, in the same time period rasterization has massively decreased the cost of processing geometry while simultaneously increasing the ability to parallelize those types of workloads. Modern GPUs (like the relatively old 8800 GTX) can process in the neighborhood of 300M visible triangles per second. That means that if you're trying to redraw your scene at 60Hz, you can have around 5M triangles per scene per frame. The closest I've seen of most modern titles is in the 500K-1M range, so I think we still have some head room in this regard. Modern techniques, such as soft shadowing and depth-only passes definitely eat into this count, which is why we're seeing much higher counts than we used to.

      Regarding pixel complexity, the number of pixels that matters is more than just the resolution, it's also how many times you'd like to draw those pixels in a given second. Seven years ago, you were lucky to find a CRT that drew 1280x1024 (which is a weird, 5:4 resolution, but I digress) at more than 60 Hz. 85 was reasonably common, but finding a monitor that drew at 1600x1200x85 was pretty rare.

      Now, you can find monitors that render at 1920x1200x120 for relatively cheap. And 240 Hz is on the way. That's a lot of pixel data to be moving and redrawing. And speaking from experience, I can say that leveraging coherence within a single frame is hard, and leveraging coherence between frames is virtually unheard of.

      It's not that raytracing is an impossible dream, it's just that the GP was correct: it's no panacea.

      I'd like to reiterate: though I work for nvidia, I do not speak for them.

      --
      I currently have no clever signature witicism to add here.
    22. Re:Never ending chase... by Chris+Burke · · Score: 1

      If you are a decent well learned programmer, essentialy an expert in algorithmic complexity, then surely you understand the comparison O(n) vs O(log n) and why you cannot refute it with horseshit.

      Meh. The same thing could be said about Z-buffer, which is O(n), vs Painter's Algorithm, which is O(n log n). Until the hardware became fast enough to overcome the much larger multiplicative constants in Z-buffer, Painter's Algorithm won and that's all there is to it. Not only did it take quite a while until hardware was fast enough that Z-buffer was even feasible, it took a while before hardware was fast enough to have scenes with enough complexity that the scaling factor worked in Z-buffer's favor. It wasn't until z-buffer could render a scene of equal complexity as painter's equally fast that the switch was made.

      So the thing is, while anyone can look and say that, at least given the existing options, raytracing is the future and rasterization will be a thing of the past, that reality isn't coming soon. Our rasterization algorithms and software are very good and only getting better. Raytracing only has a chance when scene complexity increases to the point where it can outdo rasterization. However, scene complexity is not going to increase faster than the rate that rasterization itself allows.

      --

      The enemies of Democracy are
    23. Re:Never ending chase... by RiotingPacifist · · Score: 1

      isnt the point that x*log(n) (where x represents the extra cost of doing raytracing) is still going to be smaller than n (for large enough n), infact the benifit of switching to raytracing (if it can approach its theoretical limit) is that for highly complex scenes it scales incredibly well (almost flat infact)

      --
      IranAir Flight 655 never forget!
    24. Re:Never ending chase... by robthebloke · · Score: 1

      I think it's exactly the opposite. 'FilmFX' world isn't using raytracing because it hasn't been used in games. Games drive this tech, and if we get fast hardware for raytracing then movies will use it exclusively.

      You'd have a point if it wasn't for the fact that dedicated ray tracing hardware has been around for decades as standalone hardware, and dedicated PCI cards.

      The FilmFX industry already has dedicated hardware accelerated ray tracing, has had it for some time, and finds no use for it. I still find it laughable that everyone gets so excited about HW ray tracing, because quite frankly, it's a dead end.....

    25. Re:Never ending chase... by V!NCENT · · Score: 1

      Art and realism are two different things.

      --
      Here be signatures
    26. Re:Never ending chase... by SanityInAnarchy · · Score: 1

      One problem you have is that the graphics hardware out there isn't built for ray tracing, it's built for rasterization.

      This paper is by Intel, who wants to release video hardware specifically designed for raytracing. It's also embarrassingly parallel -- this example originally ran on a cluster of 20 machines.

      Ray tracers do NOT scale well with resolution. Each pixel has to have it's own ray cast.

      That's linear. As in, throw in twice as many cores, and you can handle twice as many pixels. How does rasterization scale with pixels?

      Ok well that doesn't compare favorably against the rasterizers. They scale extremely well with resolution, and also in terms of anti-aliasing. Many of them can do 4xFSAA with next to no performance penalty...

      Alright -- but you haven't actually shown what the requirement is. Is it logarithmic? Linear? Constant?

      The net result wouldn't look as good as the equivalent rasterized game.

      No, it will look better, when it gets there.

      As an example: A mirror in a rasterized game will either require a second rendering pass (that is, render an image from the mirror's perspective, then use it as a texture and render that), or it will require you to duplicate the geometry of everything on one side of the mirror to the other.

      Now, what if you have two mirrors facing each other? What if you're playing something like Portal?

      With a raytraced mirror, you simply send out another ray from the mirror.

      Or, suppose you want to show a reflective sphere. That's a tricky shader, and how many polygons does it take? Too many, and you slow things down. Too few, and it becomes obvious that it's not a sphere, but an n-hedron. With a raytracer, you just throw in a perfect sphere, and with high school math, you can make it reflective. Just like the mirror, it can just send out another ray, at a slightly different angle.

      You throw a positively massive system at it and you get poor performance.

      From TFA:

      With Intelâ(TM)s latest quad-socket systemsâ"equipped with
      a 2.66 GHz Dunnington processor in each socketâ"we
      can achieve approximately 20 to 35 fps at a resolution
      of 1280x720. Nonetheless, this represents a significant
      improvement over the experiments in 2004 that required
      20 machines to render a simpler game more slowly and
      at a lower resolution.

      In other words, what took a positively massive system in 2004, takes a single machine in 2009, if I've read that right. I wonder what it will look like in 2014? Or when Intel comes out with its special-purpose raytracing hardware, that's basically a bunch of CPUs?

      --
      Don't thank God, thank a doctor!
    27. Re:Never ending chase... by SanityInAnarchy · · Score: 1

      Why do people always compare static rendering with dynamic rendering?

      Because the time to render that static image does count.

      A billion dollar industry isn't wrong.

      Billion dollar industries have been wrong before. And merely because a particular technique is right now, doesn't mean it will be right forever.

      Case in point: It used to be, everyone in the industry assumed shadows were too hard to do dynamically. So, as a performance hack, they were projected statically, and incorporated into the textures. If you had a light shining on a fan, you'd have a texture on the wall behind it of a spinning-fan shadow.

      Then, computers got powerful enough, and Carmack found a neat little hack, and suddenly, Doom3 had real lighting and shadows, from multiple sources.

      --
      Don't thank God, thank a doctor!
    28. Re:Never ending chase... by aliquis · · Score: 1

      I don't think the sun flower scene looks "real" either,all the sharpness and perfectness make it look MORE synthetic.

    29. Re:Never ending chase... by robthebloke · · Score: 1

      True, but the thing everyone forgets is that artist time increases exponentially with modeling complexity. Artists can't physically create enough data for it to be of real benefit. Given that renderman subdivides all polys to pixel sized chunks, and an entire filmFX team still can't produce enough data to make raytracing more cost effective than reyes, I fail to see how a games team is going to do it... Architectural rendering is about the only scenario where you may get to that level of complexity.

    30. Re:Never ending chase... by V!NCENT · · Score: 1

      Ray tracing is currently slower, but once CPU's, GPU's or RPU's (Raytracing Processing Unit's - I just made that up) are fast enough to reach critical mass, then ray tracing a scene with triangles becomes faster using ray tracing than rasterisation.

      Currently you need 20 quad cores or someting to ray trace a game. Given the fact that More's Law still applies you'll need 10 CPU's in a year, 5 CPU's in two years and (2,5=)3 CPU's in three years. However, with the increase in the amount of cores every year, you'll be having it in about three years with a single CPU;

      20cpu*4core=80 CPU cores in year=current
      80core/2=40 CPU cores in year=1
      8cpu*6core=42 CPU cores in year=1
      40core/2=20 CPU cores in year=2
      3cpu*8core=24 CPU cores in year=2
      20/2=10 CPU cores in year=3
      1cpu*10core=10 GPU cores in year=3

      So in 3 years you could play software ray tracing at standard definition resolution If operating systems don't slow down any further and if cores(t)=4+2*t, where t=years applies.

      --
      Here be signatures
    31. Re:Never ending chase... by V!NCENT · · Score: 1

      ThereÂs one caveat to your caveat and thatÂs that memory reads arenÂt free when using rasterisation either.

      Yes, ofcource, rasterisation is currently done on dedicated graphic cards and ray tracing is currently done on general purpose hardware...

      --
      Here be signatures
    32. Re:Never ending chase... by V!NCENT · · Score: 1

      Almost completely static FPS FTW :D

      --
      Here be signatures
    33. Re:Never ending chase... by V!NCENT · · Score: 1

      What's the problem? IIRC physics in Doom 3 are limited to, what was it?, 30-60FPS? Just freeze and unfreeze the animation every time you draw a frame... big fscking deal...

      --
      Here be signatures
    34. Re:Never ending chase... by EvolutionsPeak · · Score: 1

      Just because a monitor displays at 120Hz or 240Hz does not mean you need to render at that speed. Currently the only time graphics cards render at the same speed as the monitor refresh is if vertical sync is enabled and they can render above that amount, otherwise they'll render at half. E.g. if the graphics card can only do 45fps and the monitor refreshes at 60Hz and vertical sync is enabled, then the monitor will get updates every 2 cycles, rendering will effectively be done at 30fps.

      Maybe I'm wrong, but I don't think so.

    35. Re:Never ending chase... by Anonymous Coward · · Score: 0

      That's funny, Carmack & everyone else who actually has a proven record both in rasterized & raytracing say exactly the opposite of everything in your post.

      Citations, please.

    36. Re:Never ending chase... by Creepy · · Score: 1

      True, from what I remember, the film industry is mostly using REYES now, which I believe essentially breaks a scene down into micropolygons (didn't reread the wiki page, going by memory), but some studios still use a hybrid approach such as rasterization for modeling and scene building, then render the final scene using advanced techniques such as ray tracing with global illumination.

      Both Ray Tracing and REYES need access to the entire scene, meaning the scene needs to be contained in memory (which can be virtual). Since GPUs don't have enough memory to access the entire scene and no concept of virtual memory, it probably isn't practical to use them for ray tracing. The dedicated hardware you list is essentially a bunch of parallel processors. At some point memory bandwidth will be as important or more important than raw processing power.

    37. Re:Never ending chase... by Anonymous Coward · · Score: 0

      Any PS3.0 capable card can run the raytracing loop as a shader. Rasterization has to resort to hacks to mimic what comes at no cost with raytracing, e.g. when you start adding more and more dynamic lights you have no choice but go with deferred shading which has its own sets of drawbacks. It wasn't until recently that you could have deferred shading and AA due to lack of custom resolves in the proprietary and obsolete Direct3D API.

    38. Re:Never ending chase... by daVinci1980 · · Score: 1

      You are somewhat correct--there's no requirement that you have to have an image ready to display every time the monitor refreshes. If you don't, the old image will be displayed (or when vsync is off, the image will be updated as often as the data is available, possibly even multiple times per redraw).

      However, what's the point of having a monitor that can display at 240 Hz if you're not using that rate to convey more information?

      If 15/30/60 Hz is fine for you, then stick with the monitor you have now. If you find that you want a higher framerate (for example in FPS games), but you don't want to have visual tearing (which is caused when we refresh the front buffer in the middle of a screen redraw), then you want a monitor with a higher refresh/redraw rate, and a graphics card that can drive it.

      PS: Still not speaking for my employer.

      --
      I currently have no clever signature witicism to add here.
    39. Re:Never ending chase... by V!NCENT · · Score: 1

      The scene might not look real, but that's exactly what raytracing is showing; a better, more realistical image.

      --
      Here be signatures
    40. Re:Never ending chase... by 0xABADC0DA · · Score: 1

      dedicated ray tracing hardware has been around for decades as standalone hardware

      Your example has 14 dual-core processors at less than 200 Mhz, which if it is based on its predecessors is a traditional RISC chip, meaning lots of pipeline stalls. You also had to use their rendering software. It has all the memory access problems I mentioned. This is NOT AT ALL SIMILAR to what I was saying. You completely misunderstood my post if you think this hardware has any bearing.

      Image a system with 10,000 100 Mhz cores on a single CPU. Now compare rasterization vs raytracing on that machine. The MTA docs seem to be hard to find nowadays... look at Sun's Niagara for a watered down version of this.

    41. Re:Never ending chase... by BOFHelsinki · · Score: 1

      TFA (the Intel PDF) points out that ray bundling is problematic whenever a part of the bundle scatters differently from the rest, to the extent that it may be cheaper in the end to avoid bundling, at least with some workloads/situations. It's a good read, feels quite honest and free of usual marketing brouhaha.

      No comment on SSE4 except that I would expect that Intel wanted to accelerate a wide variety of SIMD-suitable workloads; the reason you allude to wasn't immediately obvious. Care to expand on that? :-)

    42. Re:Never ending chase... by Creepy · · Score: 1

      true, optimally it requires static geometry for the scene mesh, and that actually is why they're using bump mapping for the water rather than a surface mesh. One flaw to this is that the edges of the water will not rise or fall, so you need to fake it with texturing or particle systems.

      Ironically, bump mapping is largely being replaced in rasterizers by pseudo raytracing techniques that use the normal map and a height to project the actual geometry from the subsurface (however, most are still mapped to a surface, so they are most effective with bumps deeper inside the plane). The only technique I've seen that actually alters the geometry is curved surface relief texture mapping, but that has other issues (aliases more easily than certain planar techniques, for instance, and only implements 4 quadratics [and there are either 16 or 17, I forget], so has a potential for error if the wrong quadratic is needed).

      The article states lighting with soft shadows is still an issue, but if they just want approximate lighting they could use photon mapping, which is scalable and gains accuracy by just adding more photons.

      I still have yet to see an analysis of memory bandwidth requirements for Larrabee, which I would expect to be very high. My guess is each CPU will prefetch a section of scene to calculate to reduce memory accesses, but the larger the scene gets, the more memory access will get taxed.

      For another rasterization blast from the past, memory size and access was an issue with certain environment mapping techniques like environment bump mapping and hardware ROAM terrain rendering (which is returning as of late now that memory is greater and hardware can do the mesh optimization).

    43. Re:Never ending chase... by Jackie_Chan_Fan · · Score: 1

      I've been working in 3d modelling and animation professionaly for a long time, and started back in 3ds in the dos days and povray...

      Honestly i've never heard this. I've never experienced this either. From a performance point of view, raytracing as always been heavier with larger poly counts.

      But it is interesting, perhaps i'm wrong and i've never noticed and its worth checking into. After all i'm more of a modeller and animator than a render coder ;) but i've been around a while in the field.

    44. Re:Never ending chase... by Jackie_Chan_Fan · · Score: 1

      Btw, i just checked out the sunflower and boeing models. I'm not sure they show off exactly what you're referring to becauese there is no text explaining what is going on in the scene so here is my assumption...

      In the sunflower case, each peddle is rendered, and each leave is as well (this is nothing new or specific to raytracing) In fact, each of those peddles and leaves are "Instances" of 1 peddle, and 1 leave. Its simply cloned in memory from the source objects and it saves down on polygon count/memory especially if its rendered in "buckets".

      The plane example:

      I'm not sure if that geometry is nurbs or polygon. If its nurbs, then the tesselation is quite dynamic and every "rivet" is probably only a few polygons based on its size in relation to pixel size and screen space. So its not quite as high polygon in relation to how detailed the data looks. The same goes for all of the detailed parts. They're probably efficiently tessellated based on screen space.

      are both of these shots from a realtime raytrace or are they just static renders?

      The whole leave thing isnt new. Its been done for a while (for anyone curious) but in games, i think it still all boils down to polycount because deformations and animation are still heavily invovled. We can instance, or clone objects in memory such as leaves or the spokes of a bicycle wheel, but like you said, when it comes down to having independent movement, simulation, skeletal deformation etc... polygon count is still a serious problem and i woudld rather do what speed tree does, than say render ever leaf of a tree. Instead of fully modelled leaves, you have quads for each leave and texture them... or quads for groups of leaves because it will allow you to do branch and leaf movement in realtime a lot easier... and still look pretty dam good.

      I'm not saying it has to be the old school giant quad for a tree leaf cluster... but instead 3 leafs per quad, or evne 1 leaf texture per quad is more effecient than millions of polygons just for tree leaves. I'd rather put the detail in the characters and things you deal with on screen more.

      Another thing to consider is screen size. I'm on a 30inch lcd... and rendering very demanding games at 2560x1600 can be a challenge on todays hardware. The bigger LCD monitors get, the higher the native resolution gets.

      I'm not so sure raytracing is the way to go yet... It should be an option though. I dont think the average gamer could tell the difference in most cases. Even in animation, we use hybrid renderers that do both raytracing and scanline because they both have their place. So i'm curious to see realtime raytracing advance, but i'm not so quick to proclaim it the new standard because performance is better when you dont raytrace.

       

    45. Re:Never ending chase... by Lord+Crc · · Score: 1

      Of the rendering jobs we submit, approximately 0.001% use raytracing exclusively, about 0.5% make use of raytracing extensions.

      Are you using radiosity for GI, or are you not using any GI for the remaining 99.499%?

    46. Re:Never ending chase... by 91degrees · · Score: 1

      Rasterization is relatively constant in the number of pixels, and O(complexity).

      Surely not. Okay - you'll need to spend the same amount of time with geometry whatever the resolution, but you still have a certain number of texture lookups per pixel, and a certain number of Z tests, and blend operations.

    47. Re:Never ending chase... by EvolutionsPeak · · Score: 1

      I don't think the reason for moving to those higher refresh rates is the desire for higher frame rates in 3D rendering, at least at this point.

      Games played at high resolutions with a lot of detail can't be rendered even close to 120fps, and I think pretty much everyone would pretty a better looking game at 60fps than a worse looking one at 120fps. Although that may change as hardware gets better.

      I think the primary benefit of moving to higher refresh rates is avoiding conversions between different media types at different frame rates with non-integer multiples, e.g. 24fps media to 30fps (60Hz vertical) requires repeating frames or other tricks. I'm not very technically savvy in this area, but this is what I have gleaned from reading wikipedia.

      http://en.wikipedia.org/wiki/Telecine#Frame_rate_differences

    48. Re:Never ending chase... by daVinci1980 · · Score: 1

      It's tricky, and I was perhaps being disingenuous by not mentioning it. Sue me. :)

      Pixels that are uncovered (ie, no geometry touches that pixel), are basically free. So if you're running a vertex shader that uses constants to always ensure that it covers 1 pixel on the screen, the pixel shader will only be invoked for that one pixel. Regardless of your resolution... You could be running at 1x1 or 1600x1200 with 8xAA, and the pixel shader will only run for that one pixel.

      However, some pixels can be covered several times. This is commonly referred to as 'depth complexity.' In most games, this value is between 1 and 2, averaging around 1.5. It's a little trickier than that, because sort order matters, but the complexity for a particular 'Draw' call on the modern GPU looks something like this:

      O(DrawCall) := MAX(O(Vertices * VertexShaderCost), O(DepthComplexity * PixelCount * PixelShaderCost))

      In a raytracer, the cost of drawing a patch of sky is roughly the same as the cost of drawing a section of ocean or a boat. On a GPU, the cost of drawing a patch of sky is usually ~0 (or very close to), while the cost of drawing a section of ocean or a boat could be quite high.

      /shrug. It's all complicated. :)

      --
      I currently have no clever signature witicism to add here.
    49. Re:Never ending chase... by daVinci1980 · · Score: 1

      I love that every time I post anything remotely work related on /., I get one of these posts. I wonder if it's the same guy every time?

      What other kind of hardware would you propose we build? What companies are you aware of that build non-proprietary hardware?

      --
      I currently have no clever signature witicism to add here.
    50. Re:Never ending chase... by jedwidz · · Score: 1

      Raytracing scales O(pixels) and O(ln(complexity)). Rasterization is relatively constant in the number of pixels, and O(complexity).

      That being the case, and contrary to what many are claiming, ray tracing looks to be the loser in terms of computational complexity...

      If we assume scene complexity increases at most in proportion to pixel count (seems reasonable, as we don't want to waste effort describing sub-pixel details), we get:

      Ray tracing: O(n log n)
      Rasterization: O(n)

    51. Re:Never ending chase... by Anonymous Coward · · Score: 0

      If you are a decent well learned programmer, essentialy an expert in algorithmic complexity, then surely you understand the comparison O(n) vs O(log n) and why you cannot refute it with horseshit.

      If you are one, then you could probably explain why RDBMS's occasionally use O(n) full table scan while a O(log n) index lookup would do, why a simple O(n log n) suffix doubling algorithm sorts data faster than Ukkonen's O(n) algorithm, why no-one bothers to select median in linear time and what's with that O(n^3) matrix multiplication I keep seeing everywhere..

    52. Re:Never ending chase... by grumbel · · Score: 1

      Yes, but that is in large part because it was build to have millions of polygons, not to be artistically pleasing. What makes the scene interesting isn't really that it looks good or not, but that it shows graphics that todays 3D hardware simply couldn't render. Its kind of the same with voxels, it doesn't necessary look better, but its different, it allows you to do stuff that you couldn't do with other technology and thats why I think it would be interesting to see a full game build on it and be it just a little showcase demo on Playstation Network.

    53. Re:Never ending chase... by YesIAmAScript · · Score: 1

      People said the same things as you are saying 20 years ago. Iterative fractal systems (as you describe) were also big at SigGraph 1989.

      But that extra power was instead used to raise the output resolution, texture resolution and the poly count, instead of using the trickery you speak of. I don't foresee a boom in the next 10 years any more than the last 20.

      Also, there's no difference between ray tracing and scan-line rasterization that would dictate or even facilitate a change from textures (and transparency map) on a poly to more polys. You can use either technique with either system and both will suffer the same tradeoffs (including efficiency) in either case.

      --
      http://lkml.org/lkml/2005/8/20/95
    54. Re:Never ending chase... by Rockoon · · Score: 1

      Raytracing touches far less memory than a rasterizer, so WTF are you talking about?

      Oh I get it, you want to give rasterizers the benefit of multiple independent memory controllers, but not raytracers.

      Oh, and then you stick the GPU on a pedestal.. saying how its the only thing with enough processors and memory bandwidth..

      umm.. helllo?? Do you know what Intel has been working towards? Have you missed the past 5 years of research papers comming out of Intel about this very subject? Its called Larrabee and they are well on their way to making it a reality. They are doing to research so that they know what the requirements will be.

      nVidia has put out more than one press release saying that you do not need Intel to do realtime raytracing, that their GPU's will be able to do it.

      If GPU makers are working towards RTRT, and Intel is also working towards RTRT, what does that make you? Just ignorant?

      You cannot avoid big-O with horseshit. Your artists take too long to create models? Heres an idea.. design better tools. Thats whats been happening for years and years. Better tools for more complex scenery.

      The big-O is comming to shatter your delusions, and NOTHING can stop it.

      I realize that my social skills arent exactly stellar here, but I'm sick and tired of people from OTHER FIELDS who think that they have a clue about big-o when really they are completely and obviously ignorant in the eyes of every single expert programmer. Its like non-physicists telling physicists all about their perpetual motion machines, while expecting to be treated with a gentle hand. Big-o is like the laws of thermodynamics. Undeniable.

      Rasterization is a corner case, just like bubble sort outperforms mergesort in cases of small N. Intel has also done research in regards to apprxominately what N needs to be where raytracing will begin to blow the doors right off of rasterization. You can go to their research site and actualy read this stuff. Maybe you should.

      --
      "His name was James Damore."
    55. Re:Never ending chase... by robthebloke · · Score: 1

      We don't need GI quite as much as you'd imagine (in terms of the renderer generating it - faking it's another matter entirely). Since we have live action plates to comp with, the compositor will normally generate a sphere map from plates containing fairly prominent white spheres shot on location (to get the ambient light) and shiny spheres (to get the reflection), which may be used as an env map in the ambient/specular passes. Since it all goes through a final comp, there's less need for it to be mathematically accurate - the compositor will simply fake the lighting with nuke or shake in post. Even if we enabled GI on everything, the compositor's still going to be spending time fixing it. It's very rare that live action plates (with no CG) don't get modified in post to make the images look more natural - and that's really the problem: We don't want realistic images - we want images that look real. .. Those two goals are somewhat different, and most of the time GI takes a lot of CPU power, and doesn't give us the effect we wan't.....

    56. Re:Never ending chase... by Anonymous Coward · · Score: 0

      nVidia is the only company I know that doesn't produce true Linux drivers.

      Intel and AMD/ATI both do.

      So, fuck nVidia and their proprietary drivers. People who care about Freedom won't be buying anything from nVidia.

    57. Re:Never ending chase... by Lord+Crc · · Score: 1

      Interesting, thank's for the reply.

      I'm working on a physically-based renderer, and I absolutely understand what you mean about realistic vs real. We find we have to insert additional light sources etc to make a good image, just as you would in a professional photo shoot.

    58. Re:Never ending chase... by slashdotjunker · · Score: 1

      Vincent, I will explain why it is a big deal.

      Rasterization is order-independent because it doesn't matter what order you draw the objects. It doesn't matter because the z-buffer will ensure that only the visible surfaces are displayed. So to draw N objects you just draw them starting at object #1 and ending with object #N. You have to do N things, so the computational complexity is O(N).

      Raytracing is the same. For every ray you have to check to see if it hit object #1 all the way through object #N. This is also N things so the complexity is O(kN) where k is the number of rays.

      However, we can speed up the ray hit test by using a data acceleration structure such as an octree. The octree let's us ignore objects far away from the ray and only test the ones nearby. If you work through the math you will see that you only have to check log N objects instead of all N objects. This makes raytracing O(k log N).

      However, we need an octree. And we have to rebuild that octree every frame because our game objects are moving around in unpredictable ways. We can't just freeze the animation. The position of objects relative to each other depend on what the player is doing, what the game AI is doing and what the physics engine is doing. Building the octree requires that we check all N objects for every level of the tree. If you do the math you will see that it takes O(N log N) steps to build the octree.

      So, to render a game with a static raytracer we have to build an octree every frame and raytrace it. This is O(N log N) + O(k log N). The problem isn't the raytracer, it's sorting our objects every frame. This will always be slower than just drawing the objects directly regardless of whether you use rasterization or raytracing.

      tl;dr. Raytracing is fast, but building the required octree is too slow and that's why rasterization is better.

  7. before after pictures by robvangelder · · Score: 3, Interesting

    When looking at the before/after pictures, was anyone else surprised when they read which was the raytraced version?

    To me, the ship in the water looks better with the bump map.

    1. Re:before after pictures by CMKCot · · Score: 4, Informative

      both screens were raytraced, they just showed off two ways of simulating the water.

      --
      demanding some serious suspension of disbelief on your behalf.
    2. Re:before after pictures by Shadow+of+Eternity · · Score: 2, Insightful

      it's got more obvious special effects but the other one looks for more realistic.

      --
      A bullet may have your name on it but splash damage is addressed "To whom it may concern."
    3. Re:before after pictures by nbert · · Score: 3, Insightful

      Maybe the reason for this is that the 2D surface with the bump map resembles the look of water we expect in a game. I also thought it looked better, but it's not really possible to judge this based on a screenshot, because when it comes to water it's all about the movement.

    4. Re:before after pictures by rrossman2 · · Score: 0

      I absolutely agree. This was my first thought as well. Unless there was a surface fog over the water that was managing to reflect the light onto the boat like that and give the water that hazy look, the light should have been more of a drastic difference on the side of the boat vs the top, and the reflections off of the water.

    5. Re:before after pictures by rrossman2 · · Score: 0

      "Maybe the reason for this is that the 2D surface with the bump map resembles the look of water we expect in a game"
      Naw, the top is how the water in the lake my friends and I take my boat out on looks. Trust me, we should know. We met it face first quite a few times trying to learn to wakeboard a few years ago

  8. Did Intel graphics improve when I wasn't looking? by pecosdave · · Score: 0

    Seriously, as of a year ago I would rather have used an old AGP TNT2 than than the latest built in Intel graphics. I improved the performance of a relatives machine by 35% after putting in a PCI GeForce 5600 instead of using the built in Intel.

    Did something happen over the past year or two that caused Intel to be able to publish papers like this? I mean their graphics are fine for a Windows desktop running Office and a browser, but it stops there unless something recently changed.

    --
    The preceding post was not a Slashvertisement.
  9. Re:Did Intel graphics improve when I wasn't lookin by am+2k · · Score: 1

    There's a huge difference between the things they have in their lab and the things they're selling.

  10. Re:A Day in the Life of Debbie G1bs0n by Flentil · · Score: 2, Informative

    Best off-topic post I've seen today.

  11. Re:Did Intel graphics improve when I wasn't lookin by EvolutionsPeak · · Score: 2, Informative

    All of this stuff is done in software on the CPU, so the graphics hardware really doesn't affect it.

  12. raytracing is VERY established by CarpetShark · · Score: 5, Informative

    AMD or Nvidia could beat Intel to market with a ray-tracing friendly GPU, but it doesn't seem likely that they'll bet the farm on a technology that isn't well-established.

    What? Not well-established? Raytracing is probably one of the most established graphics technologies. Specifically, it's been coming to games for years; only a matter of time. In fact, I don't really know why they're making such a big deal out of it here, since I'm pretty sure I read that the original quake (or was it doom?) traced a ray or two for some mapping reason, back when the source code was released.

    Raytracing has mostly been replaced with other, faster technologies these days, which produce similar results, so it's not the panacea it seemed back when you had 5-bit hand-drawn stuff OR raytracing.

    None of which is to belittle the work done on this game, because it does look nice, and improves on the graphics of the games before. But so do most games. Wake me up when town characters have emotions based on that guy you killed last week who rebuilt the clock tower because you suggested it back when you weren't so torn up about your wife dying.

    1. Re:raytracing is VERY established by 91degrees · · Score: 2, Interesting

      since I'm pretty sure I read that the original quake (or was it doom?) traced a ray or two for some mapping reason, back when the source code was released.

      Not sure about those two, but I'm pretty certain Wolfenstein 3D did. That was for visibility and texture coordinate calculation, rather than light and shadow. Since the map was 2D only a handful of rays were needed.

    2. Re:raytracing is VERY established by CarpetShark · · Score: 1

      Sounds like the same system, yes. I'm pretty sure it was back with Doom 1, now that I think about it more.

    3. Re:raytracing is VERY established by Narishma · · Score: 3, Informative

      That's ray casting, not ray tracing. Two different things.

      --
      Mada mada dane.
    4. Re:raytracing is VERY established by TheBracket · · Score: 4, Interesting

      Wolf3D used raycasting, rather than tracing to give a pseudo-3D rendering of what was basically a 2D grid map.

      It's pretty clever how it worked, I remember having a LOT of fun cooking up my own similar renderer back in the day (Turbo Pascal with inline asm was fun!). If I remember rightly:
      First, the ceiling and floor were drawn in, covering everything (intersecting in the middle, vertically). Then, they took your location on the map, and cast a ray for each row of pixels (320 of them, I believe). This ray went forward until it intersected a wall - and the distance to the wall was measured. It then did a quick calculation (lookup table) to determine the height of the wall at that distance, subtracted half that height from the center of the screen, and plotted a vertical line in the color of the wall. I seem to remember the wall color was retrieved from a small texture and scaled.
      That gives surprisingly good results, albeit with no lighting or shading.

      --
      Lead developer, http://wisptools.net
    5. Re:raytracing is VERY established by 91degrees · · Score: 1

      Yes, quite right. My terminology was incorrect. Raycasting is considerably less than ray tracing.

    6. Re:raytracing is VERY established by Quantumstate · · Score: 1

      I also had fun writing a ray caster. I am slightly puzzled at why you say that they would use a lookup table for the height of the wall. It is a single division which is needed to get the height and this only needs to be done once per row of pixels per frame so at 30 fps and 320 wide that is only 9600 divisions per second surely not worth a lookup table.

    7. Re:raytracing is VERY established by SanityInAnarchy · · Score: 1

      Raytracing has mostly been replaced with other, faster technologies these days, which produce similar results, so it's not the panacea it seemed back when you had 5-bit hand-drawn stuff OR raytracing.

      Those technologies are only faster for the moment. Theoretically, at some point in the future, raytracing will be faster again, and already produces better effects.

      It's actually hard to tell which will win, just thinking about it. If I'm reading TFA right, they went from a 20-machine cluster to a single machine in some 4-5 years. And raytracing has better theoretical scalability -- it's embarrassingly parallizable, and has quite a few cases (extremely complex geometry, real curves instead of just triangles, any kind of shaders, hall-of-mirrors effects like Portal) where it outperforms rasterization even on a single machine. Intel's Larrabee is all about exploiting the "embarrassingly parallel" part and simply throwing more CPUs at the problem -- but this is a case where, if you bought two Larrabee cards, you would very likely get double the framerate, just like that.

      On the other hand, someone once pointed out that rasterization is still the preferred method in a lot of places in Hollywood, where they do point thousand-machine clusters at the problem of rendering a movie. If true, that would tend to suggest that either these guys are smarter than Hollywood (possible), or that it's going to be a long time before raytracing will beat rasterization on similar hardware.

      --
      Don't thank God, thank a doctor!
    8. Re:raytracing is VERY established by V!NCENT · · Score: 1

      Wolfenstein was ray casting and doom was affine texture mapping

      --
      Here be signatures
    9. Re:raytracing is VERY established by dudpixel · · Score: 0, Informative

      The DOOM engine also used an extension of the same technology (raycasting) as wolf3d, as did Rise of the Triad (and several other games of the same era, Heretic comes to mind also).

      The DOOM engine was expanded to use ceiling textures and sloping walls/ceilings etc and was much improved over wolf3d but still not using the same techniques as we use these days. I believe that among the first games to do it the current way were Duke3D(?) and Quake - and you'll remember they used to advertise the "rooms above rooms feature".

      --
      This seemed like a reasonable sig at the time.
    10. Re:raytracing is VERY established by Anonymous Coward · · Score: 0

      Yes, and two people you're replying to have already mentioned that. Do try to keep up.

    11. Re:raytracing is VERY established by ultranova · · Score: 1

      It then did a quick calculation (lookup table) to determine the height of the wall at that distance, subtracted half that height from the center of the screen, and plotted a vertical line in the color of the wall.

      Wouldn't it make more sense to simply store the top and bottom coordinates directly to the lookup table ?

      In any case, you'd also need a Z-buffer to draw sprites correctly, especially if one is half behind a corner and half visible.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

  13. Re:A Day in the Life of Debbie G1bs0n by Anonymous Coward · · Score: 1
    Hey, don't complain.

    That's a classic Cult of the Dead Cow story, right from the start of the internet.

  14. Re:A Day in the Life of Debbie G1bs0n by Isauq · · Score: 2, Funny

    Indeed. I sort of actually started paying attention when I caught, "The ninja was flanked by a pair of Nazi frogmen...."

    --
    RTFM
  15. Re:Did Intel graphics improve when I wasn't lookin by Kashgarinn · · Score: 1

    they're looking into raytracing ''because'' they're graphic cards are so bad. They can't be bothered to juice up their video graphics department and productivity, so they're trying to make the world change, instead of Intel changing their ways.

    - They would be a lot better off if they would just stop making graphics processors altogether and let ATI, Nvidia do the integrated graphics, or better yet, motherboard makers should bloody well realize that intel integrated is crap and stop buying integrated graphics from intel.

  16. Re:Did Intel graphics improve when I wasn't lookin by Linuss · · Score: 1

    Hmmm, I WAS going to say that you should get yourself a better pc, but I think I've changed my mind and would recommend common sense, instead. No Shit intels lab work is going to be better than what the end user ends up seeing, usually because the end user is too dumb to set up a pc correctly, but maybe even a little bit because THEY USE STUFF YOU CANT BUY? sheesh, people these days.

  17. Re:A Day in the Life of Debbie G1bs0n by Anonymous Coward · · Score: 0

    I loved the unexpected and unlikely plot twists! Thank you for giving giggles and erection at the same time!

  18. Re:Did Intel graphics improve when I wasn't lookin by 91degrees · · Score: 1

    Intel are perfectly capable of producing high performance graphics hardware. The reason they don't is that the cost of entry to that market is too high. ATI and nVidia have it sewn up between them. Intel make a lot more money selling lots of cheap chips to people who don't need much performance.

  19. Erm... error? by achenaar · · Score: 1
    "however, if one part of the bundle hits another surface then the other one, it produces some reorganization"

    Is it just me or does this widely disseminated professional document contain a then/than error?

    Let's hope that wasn't one of the coding challenges they faced.

    if (x > y/2) than

    {

    'uh oh

    }

    (This post written assuming "the other one" = "the other part of the ray bundle")

  20. Re:I feel sorry for the... by wild_quinine · · Score: 2, Informative
    How did this get modded insightful - by ANYONE?

    guys they did this work, I played this game enough to be able to tell it wasn't fun to play, it tried to be a Battlefield 2 clone with a broken physics engine, and "real-time" shadows that wasted FPS and didn't need to be real-time at all, static objects could have just been baked into the megatextures like bf2, was sad to see ETQW when it finally showed up a year late and suck ass gameplay. Splash Damage and id should be ashamed of this product and tech.

    QW:ET is one of the best made, best balanced team FPS games I have EVER played. If it draws from anything, it draws from the previous Enemy Territory game. I'm sure we've all played a lot of the original ET, being that it was free. QW is like a much refined version of this, with a modern graphics overhaul, and more interesting setting.

    a warmed over version of Doom3 / Quake 4 tech that was poorly coded by Splash.

    I mean, come on? Flamebait if not outright troll. But insightful? Where's the evidence that this was poorly coded - this game is a masterwork, IMO.

  21. Re:Bandwidth & processing, quantum effects? by IsThisWorking · · Score: 2, Insightful

    Reality, by definition, is "dirty". We have dust, we have imperfections in every surface, no matter how carefully machined. Houses are never truly square, roads are never perfectly level, and points in a corner are always rounded. Always.

    Computers, by definition, are "clean". Squares are always truly square, roads are as perfectly level as they were designed to be, and corners are always razor sharp, no matter how much you "zoom in".

    The problem with modern graphics systems is they are computed to extreme levels of precision. If they incorporated a sort of fundamental randomness, if they were intrinsically uncertain, they just might be able to really approximate reality, which is messy, ugly, and imperfect.

    You seem to be confusing texture irregularity with material consistency. A house wall is not perfectly "razor sharp", but no matter how many times you look at it, they do not suffer from "randomness" or are in any way "uncertain". At least not if you are not looking at a sub-atomic level. Also, the bandwidth would not be that high, if you take into account that human eyes have very little resolution, and thus an extreme amount of detail at a distance would be pretty much irrelevant.

  22. ray casting != ray tracing by Joce640k · · Score: 4, Informative

    Wolfenstein did "ray casting" - not the same thing.

    --
    No sig today...
    1. Re:ray casting != ray tracing by wastedlife · · Score: 1

      "Ray tracing" and "ray casting" were used interchangeably when ray casting was popular. Now, that ray tracing has become feasible for advanced real-time rendering, a distinction was made between the two phrases.

      --
      Said, "It's just like dice but it's got more sides And it tells me who lives and who dies"
    2. Re:ray casting != ray tracing by Anonymous Coward · · Score: 0

      He said "raycasting" - and raycasting is a dirty version of raytracing. Though I think he meant columns, not rows.

      Ray Casting

      "Ray casting is not a synonym for ray tracing, but can be thought of as an abridged, and significantly faster, version of the ray tracing algorithm."

      Why did that get a 5 rating?

  23. Re:Bandwidth & processing, quantum effects? by complete+loony · · Score: 1

    If you just add randomness to every frame, it would look like a mess. The tricky part is to draw each frame with the same randomness so it doesn't jump around. Which of course means you aren't drawing it very randomly at all...

    --
    09F91102 no, 455FE104 nope, F190A1E8 uh-uh, 7A5F8A09 that's not it, C87294CE no. Ah! 452F6E403CDF10714E41DFAA257D313F.
  24. Bad sample by argent · · Score: 3, Informative

    As someone else noted, both pictures were raytraced.

    To really show the difference between 2d and 3d water, you need to show the water interacting with a solid object close enough so that you can see that in one example the waves really go up and down and in another they're just a picture of waves on a mirror.

    There's been a LOT of work making 2d water look dramatic, and I've seen people say they prefer 2d water in broad shots like this in other games (not even raytraced ones), but when you're in the game looking over the edge of a dock or looking at a nearby boat with the light behind you, it's pretty clear that spending more time on the physics of the water pays off.

    Heck, even with 2d water, paying attention to the wave effects in shallow versus deep water pays off when you interact with it. And that's rarely done because it's not as dramatic.

  25. Re:I feel sorry for the... by Jesus_666 · · Score: 1

    Carmack is still turning in his grave, oh wait he still around? Oh yeah he is, ahh Mr. Carmack.. sir please stop working on console games and blow the world away again, we need you, and being a console whore is one more step toward mediocrity.

    Don't worry, just wait for his next game. John Carmack is about to make you his bitch.

    --
    USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
  26. Still taking the wrong approach... by argent · · Score: 3, Interesting

    They're still taking the wrong approach to raytracing. If Philip Slusallek was able to get 30 FPS in a raytraced game in 2005, using a single Pentium 4 behind a raytracing accelerator that was roughly equivalent to a Rage Pro in terms of gates and clock speed, it seems silly to me to ignore the possibilities of adding an "RPU" to the mix instead of just adding more general purpose CPU power. Yes, I know that's Intel's thing, but even for Intel... a raytracing core would be a tiny speck in an I7.

    1. Re:Still taking the wrong approach... by MobyDisk · · Score: 1

      Intel isn't trying to do ray tracing. Really, their point is to find a way to make GPUs unnecessary since it is a threat to the CPU market. So adding an RPU to the mix would make sense if the goals was fast ray tracing, but it would defeat what they are trying to show.

      I wonder if they used any SIMD extensions when they coded this.

    2. Re:Still taking the wrong approach... by mounthood · · Score: 1

      ... it seems silly to me to ignore the possibilities of adding an "RPU" to the mix instead of just adding more general purpose CPU power.

      An FPGA with a HyperTransport connection to the CPU(s) would be ideal for testing and allowing end users to try something new. Except that AMD uses HyperTransport, not Intel, so we'll have to wait for that solution to get hyped.

      --
      tomorrow who's gonna fuss
  27. Intel promotional text by bitrex · · Score: 5, Funny

    Our raytracing engine is the finest available! For all your sphere-on-chessboard game needs! If your game is going to involve spheres, chessboards, reflective spheres, or possibly spheres floating on water - raytracing is the way to go!

    1. Re:Intel promotional text by ThatGuyJon · · Score: 1

      One of the "graphical improvements" they added to the game was the addition of reflective spheres. And yes, they do reflect water.
      http://www.idfun.de/qwrt/video.html

      --
      I must be new here...
  28. Re:Bandwidth & processing, quantum effects? by Anonymous Coward · · Score: 0

    so we're agreed then. We need rigidly standardised rules of randomness which precisely define who is what when and how.

    if only there was a way to create numbers... a seed, if you will.

  29. Was it more fun? by samkass · · Score: 3, Insightful

    So was the ray-traced version of the game more fun? Or am I missing the point of games?

    --
    E pluribus unum
    1. Re:Was it more fun? by Cheapy · · Score: 2, Insightful

      In this case, yea. You were missing the point. It wasn't meant to make the game more fun. It was meant to show that ray tracing was possible on a fairly modern game. It's like modding a toaster to run BSD, or adding a laser turret to your mailbox: a substantial reason for doing it is to see if it's possible.

      --
      Would you kindly mod me +1 insightful?
    2. Re:Was it more fun? by Draek · · Score: 1

      I see you haven't had problems with your mailman yet.

      --
      No problem is insoluble in all conceivable circumstances.
  30. Re:A Day in the Life of Debbie G1bs0n by Anonymous Coward · · Score: 0

    Well. That was unexpected.

  31. Re:Bandwidth & processing, quantum effects? by robthebloke · · Score: 1

    Personally, I'm thinking about FPGAs which produce circuits at relatively low bandwidth but that are highly tuned to the task at hand.

    Hardware-Accelerated Shaders Using FPGAs

  32. Re:I feel sorry for the... by jandrese · · Score: 1

    Wasn't that John Romero?

    --

    I read the internet for the articles.
  33. Mod parent up insightful... by argent · · Score: 3, Insightful

    Intel isn't trying to do ray tracing. Really, their point is to find a way to make GPUs unnecessary since it is a threat to the CPU market.

    They can call it "ray tracing extensions" to the I7 or I8 CPU. It's not like the x86/x86_64 instruction sets are some kind of blushing virgin whose precious architectural purity would be violated by adding instructions like "RT_LOAD_MESH" and "RT_LOAD_SHADER"...

    What bothers me is how nVidia is missing the boat.

  34. Classic games? by Thalagyrt · · Score: 1

    Why is an article about a game that was released in mid 2007 tagged classicgames? Quake is a classic game, Enemy Territory: Quake Wars certainly isn't.

    --
    Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo!
  35. Re:I feel sorry for the... by default+luser · · Score: 1

    QW:ET is one of the best made, best balanced team FPS games I have EVER played. If it draws from anything, it draws from the previous Enemy Territory game. I'm sure we've all played a lot of the original ET, being that it was free. QW is like a much refined version of this, with a modern graphics overhaul, and more interesting setting.

    I also thought the game was a poor BF2 clone with serious balance issues, and poor hit detection. It also has a HUGE learning curve in comparison to most games in it's class.

    This is why the game is collecting dust on my shelf (why the game is collecting dust on MANY shelves). It's not FLAMEBAIT if it's the TRUTH.

    --

    Man is the animal that laughs.
    And occasionally whores for Karma.

  36. Re:I feel sorry for the... by Anonymous Coward · · Score: 0

    Whoosh!

    (sorry, but you walked right into that one!)

  37. Re:I feel sorry for the... by Narishma · · Score: 1

    It's not the truth it's your opinion, which is as valid as the one you were responding to.

    --
    Mada mada dane.
  38. memory and parallelism by j1m+5n0w · · Score: 1

    Movie studios usually go with rasterization rather than ray-tracing because ray-tracers access scene memory in an unpredictable way, and so ray-tracing is excruciatingly slow if you can't fit the entire scene into the memory of one of the machines that's rendering it. Rasterizers can split the scene up, render the pieces separately, and combine the results in a single image.

    For games, which typically run on a single machine, this is a non-issue.

    1. Re:memory and parallelism by SanityInAnarchy · · Score: 1

      Ah, thanks for that...

      For games, which typically run on a single machine, this is a non-issue.

      It still is, though, because now there's memory bandwidth to consider. The amount of cache/RAM, and how fast it is -- or worse, requiring more RAM in your system, or on a raytrace-friendly video card...

      Contrast with rasterizers, which can at least transfer the scene in discrete, contiguous chunks, whereas a raytracer will hit it more unpredictably, as you said.

      --
      Don't thank God, thank a doctor!
    2. Re:memory and parallelism by j1m+5n0w · · Score: 1

      That's true. It's already the case in some well-written ray tracers that the memory bus is the bottleneck, not the floating point math. There are some interesting tricks to get the most out of that limited bandwidth. With packet tracing, for instance, you trace a bundle of rays (often 4 or 16) at the same time, so you don't have to access the same geometry over and over again, once for each ray.

  39. But why? by kreyg · · Score: 1

    Rasterizing triangles and the "first intersection" on a ray tracer actually give exactly the same result for a triangle mesh.

    Ray tracing has a more obvious mapping onto the rendering equation, but rendering geometry or even first order reflections offers very little advantage (and several disadvantages) over rasterization techniques. Shadows are more implicit in ray tracing, but they don't look "better" until you have area light sources and start shooting a LOT of rays.

    And that's really the problem. Most of the cool things you might want to do with ray tracing (soft shadows, photon mapping or other global illumination) involve shooting multiple-orders-of-magnitude more rays than simply drawing a game level.

    If I had a fast hardware ray tracer, I'm sure I could find some very cool stuff to do with it, but wasting a ton of cycles doing what rasterization is perfectly adequate at is a bit pointless. It seems like a solution in search of a problem. If we could rasterize a scene normally, but do multiple raycasts in the pixel shader to determine light occlusion (shadows), we might be on the right track.

    --
    sig fault
  40. Don't care.... by SebaSOFT · · Score: 0

    About the ray tracing, but sure the game is a lot of fun . . .

  41. Re:Did Intel graphics improve when I wasn't lookin by BOFHelsinki · · Score: 1

    The sad part is that they have had a PowerVR license for years but they have insisted on their abominable "Extreme Graphics" and GMA concoctions for PCs. PowerVR's approach (deferred tile-based rendering) is the most bandwidth economical out there (and fillrate and pixel shading economical but comparatively less so with the advanced Z-buffering optimizations of ATI and Nvidia during the past few years) so it would have been a perfect fit for integrated graphics. Their Series 5 design was DX9 compliant, no less. Sad that the story stopped at Series 3 Kyro cards, not counting their triumph in the embedded/mobile scene. Who knows what me might have now in PC northbridges. All in all, looks like a case of NIH syndrome, the PowerVR tech was certainly good enough.

  42. sooo by poached · · Score: 1

    Is 2009 finally the year of the real-time raytracing on the desktop?

    1. Re:sooo by tuxicle · · Score: 1

      No, but according to TFA, it would be the year of real-time raytracing across 20 desktops.

  43. Woot - I didn't bother to read the article by STratoHAKster · · Score: 1

    I don't see fully ray-traced game engines being that big a deal in the future. It's a bit like in those early 3D movies having shit poked in your eye for WOW factor, going overboard with reflective surfaces in a fully raytraced 3D FPS would look like a mess. Look around you(tm), how many surfaces are fully reflective, how many of those reflect something recognizable? Answer: Very little... A simple static sphere map is perfectly sufficient to create the "illusion" of a reflective surface in most games. A separate thread could render a sphere map for any reflective surface in a scene on an as-needed basis for a scene. Or in real-time, creating a much more convincing raytracing effect without much overhead - as GTA IV does, for cars f'instance. As a bonus, you can do a more diffuse reflective mapping for surfaces like plastic. I think technology like Larabee will be much better used in game engines for accurate lighting models. Again, I simply point to GTA IV.

  44. Re:Did Intel graphics improve when I wasn't lookin by 91degrees · · Score: 1

    PowerVR is a fantastic technology (I used to work in STMicro's Graphics department with PowerVR so maybe I'm biased). The thing is, the STG 4500 (i.e. Kyro 2) was a pretty sizable chip. This means fewer chips to a wafer and so you can't make them quite as cheaply.

    Kyro 2 was put against the low end GeForce chips. It was a decent chip capable of playing most modern games. So Why did STMicro closed their graphics division? Because they can't compete with the might of nVidia. Guillemot and Imagination Technologies were the only companies making boards. Guillemot because they were big enough to not to worry about upsetting nVidia, and Imagination Technologies because they're part the people who developed PowerVR.

    Presumably Intel don't want any of this hassle. They make their chips as small and cheap as possible and sell them to companies that don't need a chip to do anything except draw some pixels.

    The Kyro 3, had it ever gone into production, would have knocked the socks off the rivals.

  45. Re:ifagorz by Kattspya · · Score: 1

    Undoing moderation