Slashdot Mirror


Refresh your Memory: Advanced Graphics Algorithms

subtle writes "DevMaster.net has posted an interesting article about advanced graphics algorithms. The article discusses six widely used algorithms in graphics rendering of indoor and outdoor environments, namely: quad-based static terrain, Roettger's approach to continuous levels-of-detail in terrain, real-time optimally adapting meshes, portals, BSPs and PVSs. In each case the algorithm is discussed and some aspects of implementation are considered, as well as analyize each algorithm for its application in modern graphics systems."

140 comments

  1. It has revolutionized landscaping by AtariAmarok · · Score: 4, Funny
    "The article discusses six widely used algorithms in graphics rendering of indoor and outdoor environments"

    I look forward to re-doing my back yard with a nice quadratic mesh algorithm with pseudo-fractal post-processing.

    --
    Don't blame Durga. I voted for Centauri.
    1. Re:It has revolutionized landscaping by Brie+and+gherkins · · Score: 1

      But can it do teapots?

      --
      If I promise to be a good boy can I have some better karma?
    2. Re:It has revolutionized landscaping by Mister+Transistor · · Score: 2, Funny

      That has to beat mowing it!

      --
      -- You are in a maze of little, twisty passages, all different... --
    3. Re:It has revolutionized landscaping by Merlin42 · · Score: 4, Funny

      Are you going to Reticulate your Splines?

    4. Re:It has revolutionized landscaping by Short+Circuit · · Score: 2, Funny

      Boy, I miss SimCity 2000.

      One version would have this luscious female voice say "Reticulating Splines" whenever the game generated a new topology.

      Anyone know if the Windows version works well under WINE?

    5. Re:It has revolutionized landscaping by Anonymous Coward · · Score: 0

      I'd bet the old DOS version would work well under DosEMU. It ran great under OS/2 way back in the day. I remember if you typed "porn" you'd hear a guy saying "Can't get enough!". Hmm, SC2000 for DOS under Linux/DosEMU on my 3Ghz box... Must try...

    6. Re:It has revolutionized landscaping by scooby111 · · Score: 5, Insightful

      It's easy to tell when slashdotters know nothing about a particular subject.
      We get to read lame joke after lame joke.

    7. Re:It has revolutionized landscaping by los+furtive · · Score: 1

      A reference to Serious Sam?

      --

      I'm a writer, a poet, a genius, I know it. I don't buy software, I grow it.

    8. Re:It has revolutionized landscaping by falzer · · Score: 2, Interesting

      I would have guessed he meant one of the platonic solids: teapotahedron

    9. Re:It has revolutionized landscaping by kunudo · · Score: 1

      You needn't. The supercomputer known as Nature has allready done it for you.

    10. Re:It has revolutionized landscaping by igny · · Score: 1

      You can use the reason modifier Funny -5.

      --
      In theory there is no difference between theory and practice. In practice there is. - Yogi Berra
    11. Re:It has revolutionized landscaping by Mister+Transistor · · Score: 1

      It's easy to tell a slashdot newbie. They make offtopic comments about people making lame jokes.

      You are an idiot. I am co-author of one of the most popular ray-tracing packages available today. I eat this stuff for breakfast, and FYI, I am VERY knowlegable about the subject. I chose to comment in a humorous vein, to make the topic, oh, maybe a little less _boring_ for everyone.

      Scooby: Get a sense of humour and/or a life.
      Mods: +5 Insightful?? The crack must be flowing heavy today!

      --
      -- You are in a maze of little, twisty passages, all different... --
  2. In Case of /. by Anonymous Coward · · Score: 4, Informative

    AWESOME Rock Music Here
    ___

    Advanced Graphics Algorithms

    By: Henri Hakl

    1. Introduction
    Graphics representation of reality - or at least virtual reality - in games, simulations, movies, commercial and military applications have become increasingly convincing and immersed a growing audience in disbelieve - and at times even utter belief. This process has, in part at least, been facilitated by exponentially growing processing speeds and in more recent years the advent of hardware acceleration of graphics rendering.

    However, even in spite of being able to process several giga-flops every second, a brute force approach to rendering is not able to produce nearly as realistic real-time environments and worlds as we find portrayed in games and interactive simulations. The reason is that numerous algorithms are used that approximate or compromise reality in order to achieve interactive rendering rates. These algorithms include methods to simplify scenes, to efficiently cull invisible parts or to simply ignore realistic computations in favour of faster approaches that, though inaccurate, portray reality.

    Following the introduction we present a section on several graphics rendering concepts that feature in this article. In the remainder of this article we will discuss six popular algorithms for indoor and outdoor rendering of environments, namely:

    quad-based static rendering of environments
    a continuous level-of-detail (CLOD) rendering of height fields as described by Roettger et al [1]
    real-time optimally adapting meshes (ROAM) for terrain rendering
    portal-based rendering of indoor environments
    binary space partitions (BSP) of indoor environments
    potential visibility sets (PVS)
    We will discuss each approach, offering a high-level description of each as well as implementation considerations where appropriate. Finally each algorithm will be discussed in terms of its application in modern graphics system before we conclude the article.

    2. Concepts in Graphics Rendering
    This section offers a broad overview into several key concepts in graphics rendering. These include the graphics pipeline, vertex representations, scene reduction techniques and graphics models - for a more extensive description we refer the interested reader to Alan Watt's 3D Computer Graphics [2].

    2.1 The Graphics Pipeline
    Graphics rendering is concerned with reducing a scene, a collection of three-dimensional data, to a smaller, visible subset and rendering this subset. To render a scene subset we note that a scene consists of polygons that are usually reduced to sets of triangles for hardware rendering purposes. The rendering process goes through a graphics pipeline during which the vertices of a triangle are transformed according to the current point-of-view and then projected from world space onto screen space according to the viewing frustum. The point-of-view determines the position and direction from which the world is rendered, while the viewing frustum determines the scope of the field-of-view (FOV).

    After transformation and projection the triangle is lighted (meaning lighting calculations are performed on it) and clipped (meaning only visible parts are drawn) and then finally drawn to the graphics buffer. A number of approaches can be adopted during the drawing of the triangle, such as wire-frame only, solid, textured and bump-mapped.

    Wire-framing only renders the lines connecting polygon vertices, solid renders color information only, texturing uses bitmap or procedural data that is projected onto the polygon, bump-mapping textures the polygon and utilizes some form of shadowing technique that creates a sense of depth to the image.

    2.2 Vertex Representation
    The triangle vertices used during the graphics pipeline can be represented in a number of ways, the simplest being a triangle-list. A triangle-list simply stores the vertices in sets of three, corresponding

  3. Huh? by JohnGrahamCumming · · Score: 2, Informative

    Perhaps I missed "Graphics Algorithms 101" in a previous /. article, but after reading (or trying to read) TFA my response is: wibble.

    John.

  4. What happened to the days of... by SavedLinuXgeeK · · Score: 5, Funny

    for (int x = 0; x 320;x++) for (int y = 0; x 249; y++) drawpixel(x,y,data[x,y]) What ever happened to the simpler times...

    --
    je suis parce que j'aime
    1. Re:What happened to the days of... by Brie+and+gherkins · · Score: 2, Funny

      Commodore Pet - poke 32768,65

      --
      If I promise to be a good boy can I have some better karma?
    2. Re:What happened to the days of... by Sv-Manowar · · Score: 1

      I guess advanced algebra was way too simple, they had to move onto a graphical interface instead :/
      note, {6] Mark Feldman. Portal Engines. The Win95 Game Programmer's Encyclopedia. 1997. http://www.geocities.com/siliconvalley/2151/portal s.html
      Writing a programming guide for win 95 in 1997, redundant ?

    3. Re:What happened to the days of... by Ghoser777 · · Score: 3, Funny

      What, when less than signs where implicity understood by the compiler?

      :ducks:

      Matt Fahrenbacher

      --
      James Tiberius Kirk: "Spock, the women on your planet are logical. No other planet in the galaxy can make that claim."
    4. Re:What happened to the days of... by Anonymous Coward · · Score: 0

      And whatever happened to the morons of the world who thought that mode X was going to be the wave of the future.

    5. Re:What happened to the days of... by TwistedSquare · · Score: 1

      320 x 249 sure is a funny kinda resolution ;-)

    6. Re:What happened to the days of... by plupster · · Score: 0

      *flashback to 1993* To set that highly desired 320x249 modeX resolution all you have to do is to kiss the timer on graphics card very gently, run around your keyboad anticlockwise screaming "GIME LABBA LABBA" really loud while covering your ears and nose. All in a candle lit room while not getting laid.

      I really miss those days...

    7. Re:What happened to the days of... by Anonymous Coward · · Score: 0

      You mean 321 x 250, of course.

    8. Re:What happened to the days of... by fforw · · Score: 4, Funny
      for (int x = 0; x 320;x++) for (int y = 0; x 249; y++) drawpixel(x,y,data[x,y]) What ever happened to the simpler times...
      trashing vertically through memory in an endless loop wasn't that good in simpler times, too. =)
      --
      while (!asleep()) sheep++
    9. Re:What happened to the days of... by Anonymous Coward · · Score: 0

      It's because posts are HTML-encoded. To make angle brackets show up, you need to use the escape sequences: ampersand-gt-semicolon or ampersand-lt-semicolon. (No hyphens)

    10. Re:What happened to the days of... by InfiniteWisdom · · Score: 1

      data[x,y]
      You might as well write this as data[y]. Unless you actually meant data[x][y]

    11. Re:What happened to the days of... by TheBoostedBrain · · Score: 2, Informative

      That means..
      To write < you have to type &lt;
      and to write &lt; you have to type &amp;lt;

      --
      -- When did Ignorance Become a Point of View?
    12. Re:What happened to the days of... by Anonymous Coward · · Score: 0

      PLZ d0n't B s0 Pr3SumPtuOuS, H3 Nev3R s4id iT waS C++ !@#$@!

      fUrTHr m0r3, iT w0Uld b3 [y*320+x], n0T [y]......
      iT s33mS Ur w1sd0m h4z b3c0mE fINitE!@#

      LOL
      !!!

    13. Re:What happened to the days of... by Anonymous Coward · · Score: 0

      Wow, you're dumb!

      He's obviously treating it in the same manor as a second order array, meaning that you need two numbers to address a location. It's clearly his *intent* to do so, which means that it would be a very bad thing to treat it otherwise.

      Granted, your solution may possibly work, but only if what you're rendering to both wraps and has that exact width. Otherwise you'll either end-up with missing, distorted, or otherwise garbled image.

      The CORRECTED code snippit would be:

      for(int x = 0; x LESSTHANSIGN 320; x++)
      {
      for (int y = 0; y LESSTHANSIGN 240; y++)
      {
      drawpixel(x,y,data[x,y]);
      }
      }

    14. Re:What happened to the days of... by Anonymous Coward · · Score: 0

      th4nkz f0r th3 n3wzfl4sh e1nst3iN, n0w l3aRn h0w 2 r3ply 2 th4 k0rr3kT p0st3r!@#@!$*@!#

  5. Refresh...? by Ghoser777 · · Score: 4, Insightful

    I hate when something is called a refresher course when it's something I never learned to begin with...

    Matt Fahrenbacher

    --
    James Tiberius Kirk: "Spock, the women on your planet are logical. No other planet in the galaxy can make that claim."
    1. Re:Refresh...? by Anonymous Coward · · Score: 1, Funny

      by calling it a refresher, it will be 'ok' if its a dupe. maybe they are just covering their tails in case they feel it might be a dupe.

  6. They forgot TNA by baudilus · · Score: 5, Funny

    They for the TNA Algorithm - Tactile Natural Assimilation, for realistic representation of the skin around a woman's Breasts and Backside. This is the money maker, used for everything from Tomb Raider (Lara Croft) to Mario's bulbous (read: breastlike) nose in the popular Super Mario Bros. games.

    An egregious ommision.

    1. Re:They forgot TNA by stratjakt · · Score: 1, Funny

      I wonder what moron modded this interesting?

      I never found lara croft even remotely attractive, even in the latest games with the highest tech engines.

      Now the girls of DOA, that's a different animal altogether.

      --
      I don't need no instructions to know how to rock!!!!
    2. Re:They forgot TNA by Abcd1234 · · Score: 0, Offtopic

      LOL! I can't believe that got an "Interesting"! Gotta love them mods...

    3. Re:They forgot TNA by Anonymous Coward · · Score: 0

      Although english is, too some degree, an inflected language (although not nearly as inflected as Latin and its direct descendents) rarely will a verb gain consonants in its interior. "Omitting" is a case where a word can gain consonants in the suffix, but the root, "omi" should be left in place during conjugation. "Omission," however, is a noun, so I'm not really sure where that ramble came from. Coffee! I need coffee!

    4. Re:They forgot TNA by Anonymous Coward · · Score: 0

      I always leave my omi in place during conjugation. Don't want to catch anything, you know.

    5. Re:They forgot TNA by ResidntGeek · · Score: 1

      English is an inflected language? We've got 1.5 cases (plus a fake genitive, always helpful), compared to 5.5 in Latin, 8 in Greek, and 14 in Finnish. Our verb system is good (many tenses), but... it's analytical. Not inflected. Adjectives never change no matter which word they modify, nor do adverbs. Where's the inflection?

      --
      ResidntGeek
    6. Re:They forgot TNA by nicomachus · · Score: 1

      Greek has 8 cases? Nope, Ancient Greek has 5 (same as in Latin except for the ablative, the functions of which are largely absorbed by the genitive). Greek verbs, on the other hand--now, there's some real inflections (three voices, four moods, seven tenses, three numbers). Perhaps you were thinking of Sanskrit?

    7. Re:They forgot TNA by ResidntGeek · · Score: 1

      Crap, maybe I was. I was just recalling that number from somewhere. I've read about their verb system, though. Brilliant stuff.

      --
      ResidntGeek
    8. Re:They forgot TNA by SCHecklerX · · Score: 1

      You need to have a good MRF too. (mamary resonant frequency).

  7. Home and Garden Network by ArmenTanzarian · · Score: 4, Funny

    They have a show for this now, "Trading Mesh Algorithms with Pseudo-fractal Post-processing" or TMAWPFPP for short.

    Will they use quadratic?
    Who knows!?!

    Pure excitement...

    1. Re:Home and Garden Network by AttillaTheNun · · Score: 1

      Extreme Makeover - Mesh Algorithms with Pseudo-fractal Post-processing Edition.

  8. What, no Octrees? by mausmalone · · Score: 4, Interesting

    This is the first graphics programming article I've seen in a long time with no visual aids. I think the writer simply wanted to write a huge "smart" article so that he'd seem impressive. Missed some good algorithms for terrain rendering (tilemap, octrees, frustrum culling). If you want a really good site about graphics algorithms, check out Paul Debevec's homepage (famous for his contributions to The Matrix)

    --
    -=-=-=-=-=
    I'd rather be flamed than ignored.
    1. Re:What, no Octrees? by Aardpig · · Score: 3, Insightful

      The type of problems solved by Octrees are also solved by BSP algorithms. So to put both in the article would have been a little redundant.

      --
      Tubal-Cain smokes the white owl.
    2. Re:What, no Octrees? by Anonymous Coward · · Score: 0

      frustum. Only one 'r'.

    3. Re:What, no Octrees? by farkinga · · Score: 2, Insightful

      The content of the article aside, its "smart" format is appealing on several levels.

      Among other things, it is a format that is immediately usable. That isn't to say that internet-magazine articles are generally difficult to read, but some are easier than others due to advertising, having the article split into several pages, etc.

      Also, this article is a more permanent statement: it can be referred to in the future, all at once, easily. There really is no reference value to most internet-magazine articles - they are so cumbersome and ephemeral that they quickly become part of the "forgotten internet."

      The archival policy of the hosting site aside, this article could, by virtue of the atomiticity of the information, have greater staying power than a traditional, graphically infused pop-article. It can be transferred to other locations trivially, and its potential use in more traditional contexts figures in favorably.

      Whether or not the content is of value is, again, a different question entirely.

      --
      ?/o
    4. Re:What, no Octrees? by pjt33 · · Score: 1

      He mentioned quadtrees for terrain rendering.

    5. Re:What, no Octrees? by Anonymous Coward · · Score: 0

      The first section of the article was about octrees. Duh.

  9. Is H. Fuchs' first name... by Anonymous Coward · · Score: 3, Funny

    Holy?

    1. Re:Is H. Fuchs' first name... by jdh-22 · · Score: 2, Funny

      Nope, pretty sure it is Hafta.

      --
      Every Super Villan uses Linux.
    2. Re:Is H. Fuchs' first name... by Anonymous Coward · · Score: 0

      It's Harry, dammit.

    3. Re:Is H. Fuchs' first name... by Anonymous Coward · · Score: 0
  10. Mars by Power+Everywhere · · Score: 1

    We could have a true-to-life Mars landscape to traverse with these more accurate algorithms. Or, say, ride along the top of a microprocessor that's been nrought to scale with human size.

  11. What about the 2D algorithms??? by mark-t · · Score: 1, Interesting
    What about the basic things like line drawing, or drawing bezier and other spline curves?

    Not to mention others like arbitrary region management, collision detection with large numbers of objects, and manipulating color data in different color spaces.

    1. Re:What about the 2D algorithms??? by Abcd1234 · · Score: 1

      Well, the first three you mentioned are interesting, if rather pedestrian these days (I mean, you might as well include linked lists in that set. I'm sure they're used in games). As for the remaining ones, collision detection isn't a "graphics" problem, although it's definitely a game-related issue (and an even more complex problem in three dimensions). As for alternate color spaces, what games have you been playing??

    2. Re:What about the 2D algorithms??? by mark-t · · Score: 1

      Actually, alternate color spaces would be used in graphics programs like photoshop, not games.

    3. Re:What about the 2D algorithms??? by Abcd1234 · · Score: 1

      Well, given that the first sentence in the article mentions "games, simulations, movies, commercial and military applications", my guess is that photoshop-types features aren't part of the general thrust of the article, which is more concerned with algorithms related to real-time 3D rendering.

  12. IAAGD by MaestroSartori · · Score: 4, Insightful

    (I am a Game Developer) and I'm trying to work out why this article was posted. Its too advanced for beginners, its not detailed enough for professionals. Its basically a list of the names & very basic approaches of a few graphics algorithms. I suppose people vaguely interested who know the basics but haven't tried some of these out are the target audience.

    Anyone there fit the bill? Did you like this article? Was it helpful and informative?

    1. Re:IAAGD by Anonymous Coward · · Score: 0

      I'm sort of in the middle. Having been an engine programmer but not a *graphics* engine programmer, and now with a renewed interest in 3D graphics pipelines for a personal project, this is just about my speed. I need a gentle introduction into what's possible, and this was about right for me.

    2. Re:IAAGD by XMyth · · Score: 5, Insightful


      I suppose people vaguely interested who know the basics but haven't tried some of these out are the target audience.


      For any given subject, that's about 95% of the Slashdot crowd.

      =)

    3. Re:IAAGD by DAldredge · · Score: 1

      Perhaps there are stages between beginner and pro?

    4. Re:IAAGD by BillLeeLee · · Score: 5, Interesting

      Overall I enjoyed the article. I'm a complete beginner when it comes to computer graphics, but I'm really interested in computational theory and algorithms and I think I'm pretty good with those subjects (classes I've enjoyed the most on my road to being a CS major are algorithms and mathematical courses for the most part).

      The article touches on many subjects I haven't heard about and I learned what a BSP (binary space partitioning) tree is, at least. Graphics are probably the next thing I'll try to get into, and I still have an OpenGL manual lying around that's only been opened once.

      Perhaps as a game programmer, you'd probably see that it's not as in-depth as you'd want, and it's probably not simple enough to be understood by everyone, but the article caters to, I guess, intermediate level people with a developing interest in computer graphics? Hits the sweet spot with me. ;)

      --
      www.google.com
    5. Re:IAAGD by Anonymous Coward · · Score: 0

      Since you're AGD (a game developer) perhaps you could point us to a simple to use but half-decent looking 3d engine (preferably open source) for us to play with? I want to be able to get a shape on screen quickly and not spend 500 hours learning the system before I can start with the basics.

    6. Re:IAAGD by Anonymous Coward · · Score: 0
      • AGD (a game developer)
      • IAAGD (I am a Game Developer)
      What the hell is the point of using acronyms if you have to spell it out anyways?!? IANAL is a great and common acronym that saves you a dozen keystrokes, but all you did was add a handful of keystrokes and prove that you spend way too much time on /.
    7. Re:IAAGD by Anonymous Coward · · Score: 0

      the beginner might choose tiles for his terrain while the pro tries 3 or 4 methods and picks the one that works best. however, with current graphics hardware and consumer expectations algorithms become less important while the toolchain to get the content to the rendering algorithm becomes more important. for example, quads are sufficient for terrain engines and easy to create.

    8. Re:IAAGD by LuxFX · · Score: 1

      I suppose people vaguely interested who know the basics but haven't tried some of these out are the target audience

      Sounds like my normal bedtime reading!

      --
      Punctanym: alternate spelling of words using punctuation or numerals in place of some or all of its letters; see 'leet'
    9. Re:IAAGD by Anonymous Coward · · Score: 0

      www.ogre3d.org

      A very well written and highly maintained engine in C++

    10. Re:IAAGD by TinheadNed · · Score: 1

      Okay - I have my Graphics exam at 9am tomorrow. It's 10pm now, and we were told that we must tell the lecturer stuff that he didn't teach us to get good marks (which is bollocks to Uni policy - we checked). This article is a godsend, as I can now talk about BSPs and check the links in these threads to sound more knowledgable in any essay questions.

      W00t! W00t!

    11. Re:IAAGD by LesPaul75 · · Score: 1

      I agree... this article is nonsense. There are tons of exciting new things happening in graphics, and this article covers none of them. The stuff covered here is as old as Quake, and much of it is probably obsolete on today's graphics hardware. And even if the techniques covered were relevant, there is nothing for the reader to work with -- no sample code, not even a single diagram or even a rough algorithm given. What's the point?

    12. Re:IAAGD by Xner · · Score: 1
      That'd be me.

      I messed around with BSPs and Portals a few years ago just for fun. I was thinking that having a look at outdoors techniques might be interesting, and then this article comes along. I admit it probably hasn't done a lot more than saving me the equivalent reading time in googling, but it has been more pleasant.

      --
      Pathman, Free (as in GPL) 3D Pac Man
  13. Downloaded from Nintendo by AtariAmarok · · Score: 2, Funny
    "That has to beat mowing it!"

    Yeah, but since it was a version I downloaded from Nintendo.com, I have to periodically spray for pokemon.

    --
    Don't blame Durga. I voted for Centauri.
    1. Re:Downloaded from Nintendo by Short+Circuit · · Score: 4, Funny

      What pesticide do you use? They keep popping up whenever my cousin comes over.

  14. Outdoor environment rendering.... by old_skul · · Score: 5, Interesting

    This is a very hot technical issue in gaming right now. The last 5 years have netted us decent techniques for doing network communications for low-latency gaming; with those in place now, we turn again to graphics.

    Tribes and Tribes 2 were some of the first games to take on outdoor environments and do them well. Now, we have Unreal Tournament 2004 and Far Cry leading the pack with gloriously realistic outdoor playspaces.

    It's only a matter of time before next generation gaming engines like these turn to non-linear gameplay such as what's in GTA 3 and we wind up with a world simulation that has a level of realism approaching reality.

    1. Re:Outdoor environment rendering.... by Mr+Smidge · · Score: 2, Funny


      Hmm, that Far Cry game is a little different from what I'd normally expect from today's games.

      Although it has some nice outdoor scenes, from the pictures..

    2. Re:Outdoor environment rendering.... by wampus · · Score: 1

      A few years back Namco put out Final Furlong, so it isn't totally unprecedented. Or something.

    3. Re:Outdoor environment rendering.... by Anonymous Coward · · Score: 0

      Far cry ought to have good outdoor rendering... (follow the link)

    4. Re:Outdoor environment rendering.... by Anonymous Coward · · Score: 0

      Unreal? FarCry? They're not even trying...

      Yeah, those environments look *good*, but they're *tiny*. It *feels* like you're playing some silly little level in a silly little game.

      If you want outdoor environments, I still haven't found anything that "feels" bigger than Operation Flashpoint...and that's from many years ago.

    5. Re:Outdoor environment rendering.... by RollingThunder · · Score: 1

      And for "Holy crap it's huge" there's World War II Online. Not the most detailed, but it's all of Europe at half-scale.

      They've also just brought in SpeedTree, so the terrible forests have been replaced with very much more realistic ones.

      For a size comparision, see: http://www5.playnet.com/downloads/worldsize.pdf

  15. What about voxels? by csirac · · Score: 4, Interesting

    Back in the day, I had a game on my Amiga called "Shadow of the Third moon", a space flight sim, that used voxels. It was quite a novelty at the time and I only had 16MB RAM.

    Now that even cheap 3D cards have 128MB RAM on them, average systems have 256MB RAM, where are voxels used now?

    google for voxels

    1. Re:What about voxels? by stratjakt · · Score: 1

      How do you figure average systems have 256MB RAM?

      Average would be 64 or even 32. Average would be the "minimum system requirements" listing on the box.

      No, just because a 256 meg 9800 XT came out does not mean I leapt into my car to replace my month-old 9800 pro with it's mere "128" megs ram.

      Cheap cards have 128 megs too, but it's useless to them - they aren't fast enough to make any real gaming use of it.

      I have a gfx 5200 with 128 megs ram, it cant play anything with any sort of detail and I'm left scratching my head as to why they'd bother putting that much RAM on, I'd glady sacrifice 64megs of VRAM for a GPU with a little balls. I have an old 64meg Radeon VIVO that runs circles around it in many games.

      --
      I don't need no instructions to know how to rock!!!!
    2. Re:What about voxels? by M0nkfish · · Score: 1

      I think Worms 3D uses voxels. Or so I have been led to believe.

    3. Re:What about voxels? by csirac · · Score: 1

      D'oh, I meant average new systems have 256MB. Further, that 256 number was supposed to refer to system RAM, not video RAM. I'd agree with your observations on cheap cards having too much memory. Probably cheaper to increase sales with a bigger RAM number than actual GPU performance.

    4. Re:What about voxels? by todman · · Score: 1

      www.sensable.com is using voxels for their professional modeling application, FreeForm. There are still issues with resolution and memory usage that limit this tech.

    5. Re:What about voxels? by HD+Webdev · · Score: 1

      I have a gfx 5200 with 128 megs ram, it cant play anything with any sort of detail and I'm left scratching my head as to why they'd bother putting that much RAM on, I'd glady sacrifice 64megs of VRAM for a GPU with a little balls. I have an old 64meg Radeon VIVO that runs circles around it in many games.

      It's all about fooling the average consumer by having '128' vs '64' on the box'.

      They added too much ram because people tend to think that size is what matters. Since there aren't benchmarks on the box, manufacturers know that people will choose by size.

      --
      This is not a dream, not a dream...we are transmitting from the year 1-9-9-9.
    6. Re:What about voxels? by SmackCrackandPot · · Score: 1

      Because NovaLogic have a patent on voxel technology as used by Comanche Maximum Overkill and Armored Fist. Patent no. 5,550,959 Since the 3D graphics pipeline is essentially in the public domain, it's much cheaper to hire an engineer to design a 3D polygon engine that to license the voxel engine.

    7. Re:What about voxels? by Anonymous Coward · · Score: 0

      m0r3 l1k3 4 r4ykast1ng h31ght-fi3ld eNg1ne, n0t r3al v0lum3 piXeLz! LOL

    8. Re:What about voxels? by minister+of+funk · · Score: 2, Informative

      Didn't the pc games "Outcast" and it's sequel use voxels? I believe they did. They also used some skeletal animation and some interesting bone physics so that when my character strafed next to an incline, on foot would be higher than the other, his leg would be bent, and both feet would be in good contact with the ground. I've not seen another game do this, except maybe MechWarrior, but I don't remember.

    9. Re:What about voxels? by Cognitive+Dissident · · Score: 1

      The last high-profile use of voxels would be Master of Orion III...

      Which shows you why no one takes them seriously.

  16. comp.graphics.algorithms FAQ by j1m+5n0w · · Score: 5, Informative

    This is one of the best collections of graphics algorithms on the net I'm aware of:

    comp.graphics.algorithms FAQ

    Another favorite of mine is Ray Tracing News, but there haven't been any new issues in a few years.

    What other people's favorite collections of algorithms?

    -jim

    1. Re:comp.graphics.algorithms FAQ by Smallpond · · Score: 2, Informative

      For the basics (Hardcopy only)

      "Principles of Interactive Computer Graphics", 541 pages, Newman & Sproull, 1979.

    2. Re:comp.graphics.algorithms FAQ by erich666 · · Score: 4, Informative
      My favorite collections of computer graphics algorithms are gathered on the ACM TOG reference pages, here and here. For real-time rendering topics in particular, I strangely enough like my own page (which needs a serious update, though - it's in the pipe).

      Thanks for the kind words about the Ray Tracing News. I actually have a new issue ready to go, it's just a matter of converting it to HTML. Tonight, I hope...

      - Eric

    3. Re:comp.graphics.algorithms FAQ by j1m+5n0w · · Score: 1
      I actually have a new issue ready to go, it's just a matter of converting it to HTML.

      Good, I'm looking forward to reading it.

      -jim

  17. Not advanced! by Junks+Jerzey · · Score: 4, Informative

    This stuff isn't advanced, it's basic. It's more a refresher course on fundamental methods of organizing scenes. There's nothing difficult or amazing about portals, for example. In fact, much of the tech outlined in the article is outdated. Portals and BSPs (for rendering, not collision detection) are of much less use than they used to be. This quote shows that the author is just reiterating Quake-era views and hasn't written a modern renderer: "BSP trees are supremely efficient in rendering indoor environments." This is completely wrong. On a modern graphics card, it's much faster to throw the scene at the GPU and it let it render it all than it is to iterate through a BSP. Much faster.

    1. Re:Not advanced! by DigitalBubblebath · · Score: 1

      I've not read the article but:

      Portals and BSPs (...) are of much less use than they used to be

      Hmm, Doom 3 makes extensive use of both - that's fairly current tech eh? :)

    2. Re:Not advanced! by pclminion · · Score: 1
      This is completely wrong. On a modern graphics card, it's much faster to throw the scene at the GPU and it let it render it all than it is to iterate through a BSP. Much faster.

      That's because the graphics card is doing some kind of spatial partitioning itself. BSP (or stuff like BSP) is still very useful, it's just going on in hardware now.

      I agree that there is nothing "advanced" to be seen here.

      Whenever this topic comes up, I make sure to point out the following: the amazing graphical techniques we are seeing in movies and high-end games these days are nothing new. We've known the mathematics behind it for decades. There is no "cutting edge" here. It's just taken 20 years for the hardware to get fast enough to actually do this stuff that was invented long ago.

      For example, realtime raytracing seems astonishing, but really, there's nothing astonishing about it except that we actually have chips fast enough to do it. All the object intersection calculations, illumination models, etc. were invented years and years ago.

      The real cool cutting edge research these days is into more physically accurate illumination models, photon tracing and mapping, realistic caustics, etc. But even those will be conquered eventually through sheer processing power.

    3. Re:Not advanced! by maxwell+demon · · Score: 1

      Ok, and what does the GPU do? Let me guess ... maybe using one of the well known algorithms? Ah, no, can't be, they are all outdated ... Ah I know: The GPU just throws it at the GPU ...

      --
      The Tao of math: The numbers you can count are not the real numbers.
    4. Re:Not advanced! by Anonymous Coward · · Score: 1, Informative

      That's because the graphics card is doing some kind of spatial partitioning itself. BSP (or stuff like BSP) is still very useful, it's just going on in hardware now.

      The technique is called Deferred rendering

    5. Re:Not advanced! by Anonymous Coward · · Score: 0

      No it's not faster!!!

      Say you have 1 billion triangles in a level. With well balanced BSP your first simple check will filter half othe triangles out. That half a billion triangles reduction just with few simple calculations, Next check will cut it again in half and so on. Eventually it will be time to through these triangles out to GPU, but it should be filtered first anyway.

      It really does not matter how fast GPUs are. If they cabable of rendering more triangles, then just create a more complex enviroment. There is no way any GPU can handle level as big as one in Half-life 2. Sheer amount of data is going to be huge.

    6. Re:Not advanced! by Junks+Jerzey · · Score: 3, Interesting

      Ok, and what does the GPU do? Let me guess ... maybe using one of the well known algorithms? Ah, no, can't be, they are all outdated ... Ah I know: The GPU just throws it at the GPU ...

      The GPU just transforms vertices and draws triangles, plus it runs per-vertex and per-pixel shaders. It does nothing involving scene representation or high-level culling. It just draws everything you throw at it.

      BSP trees--for rendering--were useful back when there was a massive expensive involved in rasterizing each triangle on the CPU. You never wanted to draw a triangle, then have another one completely obscure it. But with modern graphics cards this is irrelevant. You just pass a bunch of pre-packaged vertices to the graphics card and it does the rest. You never want to break things down into individual triangles.

      So, no, the GPU doesn't use one of these "well known algorithms."

    7. Re:Not advanced! by Junks+Jerzey · · Score: 2, Interesting

      Hmm, Doom 3 makes extensive use of both - that's fairly current tech eh? :)

      Doom 3 does not use BSP trees for rendering. Neither did Quake 3. It uses BSP trees for other things, like collision detection.

      "Portals" used to mean something other than it does now. You used to clip polygons against a portal, because this was faster in software. Now you just say "please draw the rooms adjacent to the current room." The "clipping" happens automatically on the GPU. "Room based rendering" would be a better term than "portal." There's no magic to this at all. It's just simple and common sense.

    8. Re:Not advanced! by dom1234 · · Score: 1
      On a modern graphics card, it's much faster to throw the scene at the GPU and it let it render it all than it is to iterate through a BSP. Much faster.
      Right, but hardware is not a magic obscure thing that does anything amazingly fast. Advanced graphics cards do use algorithms that are interesting to learn about.
    9. Re:Not advanced! by 91degrees · · Score: 1

      Yes, but surely you still want to get rid of some of the higher order structures. Maybe you don't want to care about individual triangles, but you don't want to draw parts of the world that are in a totally different room. Even with early Z rejection, depth complexity can be a killer.

      And when it comes to complex meshes, it certainly makes sense to decide whether you can actually see the object before calculating several hundred vertices.

    10. Re:Not advanced! by Codifex+Maximus · · Score: 1

      I'm going to come right out and say it... I'm not the best graphics programmer out there... not even mediocre.

      Now, with that out of the way... I'd like to ask a few questions:
      Whatever happened to the Kyro II? I heard it was real good with ZBuffer stuff... complex landscapes and cityscapes. I also heard that the technology lives on in some form or another - tile based rendering?
      You can draw complex landscapes with today's GPU's without passing in triangles/fans/strips/lists?
      What would be a top reference regarding hi-performance lighting/shadowing/rendering of complex scenes? (Recommended reading and/or research)

      --
      Codifex Maximus ~ In search of... a shorter sig.
    11. Re:Not advanced! by Anonymous Coward · · Score: 0

      When you get right down to it, the plain fact is that Negroes can't code for shit.
      In that respect Negroes are hardly different than monkey savages.

    12. Re:Not advanced! by Mskpath3 · · Score: 4, Insightful
      No, but the point he's trying to make is that scene organization works at a differerent 'magnification' (for lack of a better term) these days. Back in the days of Quake 1 and Carmack's zero-overdraw schemes, there was a premium on every triangle and every pixel that had to be processed.

      Today, the issue is significantly different. Consider an old 'gigapixel' card. 1 billion pixels per second at 60 frames per second == 16.6 million pixels per frame. Even at 1600x1280 there's only about 2 million pixels onscreen at once. What does this tell you? You can now afford to sink some time into overdraw because it just doesn't matter.

      Also, consider the fact that 1600x1280 == 2.04 million pixels onscreen. Even if you draw a single polygon per pixel @ 60 hz, you're still only looking at 120 million polys/second. That's going to be a pretty reasonable number for next-gen hardware (Xbox2). What does this say? Well, unless you really need 1 poly per pixel, you can afford to draw some extra polygons.

      Now, let's say you've got a scene with 10,000 discrete objects. This is a pretty reasonable number these days. Even on a 3ghz processor, doing distance-to-plane checks for plain jane frustum culling is pretty darn expensive when done 10,000x per frame. Multiply that number by some constant C to do N world space occlusion checks. All of a sudden you're sinking multiple milliseconds into just doing scene graph traversal. Don't forget, you only get 16ms per frame @ 60hz. PVS on triangle strips or individual triangles? Teehee - you'll spend forever trying to process all that crap. Throw a simply quadtree or octree onto a scene, and cull at the object level (where object == say, 1000 to 10,000 polys). Let the video card deal with the little bit of extra overdraw and wasted polys. Point is, -you- have saved, say, 4+ milliseconds of raw CPU time. 4ms is a lot. Send that extra time to Havok or Karma. Send it to a fancy effects system. Don't waste it doing needless old-school culling. Don't forget, if you're doing things right, the 'rendering' is really just DMA slinging verts and textures in the background to the GPU. Paralellism with the GPU. These mega hoopdeedoo X800+ cards can deal with a little excess load.

      The point is, these algorithms are most decidedly not advanced. They're from 2-3 years ago! Quite literally, that's ancient history in the games world. Ridiculous, but true. The real brilliance of these new generation GPU's is not wacky implementation of bizarre obscure culling algorithms. The brilliance is that they are so powerful, they allow you to spend your programming time implementing beautiful shaders and effects. In 1-2 years, graphics programming will have truly morphed from glorified bookkeeping (managing and organizing data has been the hallmark of the 'hardcore' graphics programmer for several years now) into actual effects and shader programming.

      I cannot wait until dicking with exporters and preprocessors, and goofy custom renderers are a thing of the past. With some clever planning, graphics peeps will be able to really sink more and more time into making things beautiful, instead of being forced to be excessively clever to make things happen. There will always be room for 'real' advanced stuff (like modern GPU + CPU shadow techniques, spherical-harmonic lighting, and other esoterics), but the power of these new cards lies in freeing up graphics programmers to actually write graphics code instead of being accountants. That's the real practical results of this next generation of hardware :)

    13. Re:Not advanced! by 91degrees · · Score: 1

      Whatever happened to the Kyro II?

      nVidia happened. Since all their competitors made thir own boards, they were pretty much the only player in the market, so they could bully the board manufacturers into refusing to buy Kyro chips.

      Well, that was part of the problem. The other factor was delays. Kyro I was delayed by several months, which pushed back development on KyroII. By the time Kyro II came out, DX8 had been released, and Kyro II was a DX7 part.

  18. no graphics in the article! by hqm · · Score: 3, Interesting

    There was not a single illustration in the article. That is kind of ridiculous.

  19. I don't mean to troll ... but: by Anonymous Coward · · Score: 2, Insightful

    This article is like the 10,000,000-foot view of these things.

    1. Re:I don't mean to troll ... but: by Anonymous Coward · · Score: 0

      this article made me cry

  20. blink by wheel · · Score: 1

    Man my 'advanced graphics algorithm' basically stops at 'thou shalt not blink' -- and I forget how I even did that.

    400 poke(32768 + pos +1, 219)
    410 poke(32768 + pos, 32)

    or something like that.

    (now I'm all grown up and all I do is database and web app stuff)

  21. Honor among nerds by Anonymous Coward · · Score: 1, Insightful
    I'm always so amused when the link contents are posted by an A.C. It's like "Huzzah! Yes, there is honor among nerds! I don't want mod points for this - I want to earn them on merits of my own original posts!"

    For the socially retarded among you, the amusing part of that is that anyone actually cares enough to bother!

  22. Voxels aren't used because cards don't support 'em by Paul+Crowley · · Score: 3, Informative

    I used to work for a voxel rendering company, Voxar. I developed the fastest software voxel rendering algorithm for opaque surface rendering of its time, around ten years ago. It wasn't used in games - and still isn't - because it'll always be a performance loser for gaming applications for as long as PCs include dedicated polygon hardware.

    Comanche Maximum Overkill does not use voxels. I don't know why they chose that word to refer to the heightfields they do use.

  23. real link for farcry by zapp · · Score: 1
    --
    no comment
  24. Not supported by hardware by Sycraft-fu · · Score: 2, Insightful

    All current graphics accelerators that I am aware of don't do voxels. They start with polygons, apply transforms to those, apply textures, lighting and such, and then rasterize that to pixels. Well since they don't support voxels, a voxel based game would probably just suck. Graphics cards way outstrip CPUs in terms of crunching power because they are specialised for what they do. However that means that if you don't do things the way they want, they aren't useful and you are back to pure CPU processing.

    No one is going to be able to market a blocky looking voxel game next to stuff like FarCry and Half Life 2. Even if the voxel engine is "technically" superior, it's not going to matter because lacking hardware acceleration, the end result will be far less impressive.

  25. i am teh funny! by IsaacW · · Score: 1

    this being /. your normal bedtime reading is probably pr0n... you certainly "know the basics but haven't tried some of these [sex] out."

    har har har!

  26. Amiga by Doomrat · · Score: 1

    Alright! AGA!

  27. reference materials by LordMyren · · Score: 1

    i've had an interest in generating worlds from random noise, particularly a network of probabilitsic methods and adaptive systems on top of a complex perlin noise engine. i still havent gotten to heavily into render code though, and i've definately made a backup of this page as reference materials for when i get around to turning my world into an actual optimized engine.

    this seems to be his purpose: reference materials. he brushes upon everything needed to be useful and leaves the details of implementation as the due exercise. `graphics processors are optimized for sets of 500 - 4000 verticies,' BAM, fact #1 in quad-terrain methods. Ok, so my grid will be 24 x 24 point meshes: 576 vertexes and 1152 tris. 256 x 256 mesh is ~1.5 - 6 megs depending on how much your storing, I'll be using a lot of meta data and was planning on having at least a couple hundred meshes, storing intermediary stages of mesh addition, that means my world mesh alone comes dangerously close to taxing a full 64 mb.

    He does a lot of the math for you, and in such a way that it can be applied readily to most problems. When you want to know more, there are references.

    i've been leaning heavily towards a synthetic quad tree (makes a lot of sense with the perlin noise) and portal engine. Quick read gets my mind churning on the couple trouble spots in generating such a system (dynamic terrain). good stuff.

  28. Refresh? by LoreKeeper · · Score: 5, Informative

    Heya :)

    I'm the author of the article. So I guess I can explain a few things.

    Originally the article was written 3 years ago as a technical report for a small course I needed to do. DevMaster found this work and asked me whether they could make it available.

    The course took place over 8 weeks, covering each algorithm in a week - and 2 weeks for the report at the end. The actual course work is still accessable at

    http://www.cs.sun.ac.za/~henri/advgfx.html

    And includes pictures and sources to keep everybody happy. ;)

    To those that are uncertain who the intended target audience is - well, originally my supervisor... ;) - hence the somewhat formal and academic style; however, in its current form as an article on DevMaster it is intended for intermediate readers. Those that look for some additional insight into (spatial) graphics algorithms. The article isn't a tutorial and (given its history) is not bothered with technical details, however, it does make reference to useful starting places for those that wish to explore the matter some more.

    Although I agree - pretty pics would've been nice. ;) Those that really need them should go to the website.

    The choice of algorithms reflects not the state-of-the-art, nor the best approaches to solving graphics issues. The algorithms were, however, easily accessable to me at the time - and hence featured in my one-algorithm-a-week plan.

    Somebody mentioned that BSPs are outdated, this isn't true - though they have been around for ages, they are still the work-horse for most indoor engines around. Sure, BSPs are rarely used for the actual rendering process (as mentioned in the article), but in terms of processability of spatial organization they are hard to beat.

    I stand to be corrected but I'm rather sure Doom3 makes use of some form of BSPs as well. That should be good enough for anybody.

  29. network protocol... by bani · · Score: 1

    OTOH tribes / tribes2 network protocol blows.

    Mispredicts, jerkiness up the wazoo, even when there's little going on.

    quake3's network protocol is much better.

  30. More like,"What, no N-Patches?" by luke923 · · Score: 1

    I think the writer simply wanted to write a huge "smart" article so that he'd seem impressive. How can someone write an article on on CLOD without ever mentioning our friend Bezier? If someone wanted to write a "smart" article about graphics programming, he would have been better off writing one on GPU programming.

    --
    "Good, Fast, Cheap: Pick any two" -- RFC 1925
  31. Re:Voxels aren't used because cards don't support by BiggerIsBetter · · Score: 1

    Given that the patent mentioned in a previous post is dated as filed in 1993, it sound fair to say there was prior art on that one too...

    --
    Forget thrust, drag, lift and weight. Airplanes fly because of money.
  32. Those days of yore by Latent+Heat · · Score: 1
    Those were the VGA days where your display was simply a raster buffer. Those days were great for 2-D games (i.e. forms of scientific display where functions f(x,y) are rendered as textures or intensity plots).

    The problem is that everyone is striving for such a perfect level of abstraction with graphics that I can't figure out what you are supposed to do in the darned system. Forget the hierarchy of raster, image, graphics context (as in the baroque edifice called Java 2-D). I guess we are to assume such high-res displays that we are supposed to abstract away pixels and do all of our 2-D f(x,y) displays using some kind of 3-D vertex-tiled-pipelined mishmosh.

    1. Re:Those days of yore by Anonymous Coward · · Score: 0

      Hi

      I r4mbl3 pSeUd0-iNTELectUalLY ab0ut n0thing, dr1BBl3 s0m3 speKulAti0n, + b4bble 0ut some buzzw0rds t0 sc4re thos3 who R ev3n mor3 clUElezS th4n m3, in-2 g1ving m3 sUM v0tEz!@#@!$#($!#@!

      uR takTiKz r adm1rabl3, l4t3nt h34t!@#

  33. Lame joke by AtariAmarok · · Score: 2, Insightful

    Lame joke after lame joke, modded higher than you think they should be. Welcome to Slashdot, newbie!

    --
    Don't blame Durga. I voted for Centauri.
  34. That title by Pseudonym · · Score: 1

    The title "advanced graphics algorithms" is highly misleading. These algorithms are only really any use for real-time 3D graphics, which is a fairly small subset of computer graphics in general.

    Admittedly, it happens to be an area that's worth a fair amount of money these days (i.e. games), but if you're considering it as a career, the deadlines are tight, the hours are lousy and the pay isn't great. Consider another area of advanced computer graphics instead.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  35. blah by kEnder242 · · Score: 1

    what? no pictures?

    --
    my associative arrays can kick your hash - TCL
  36. A question for any gurus out there by Crazy+Eight · · Score: 1

    Is there any possible role for NURBS in a game engine? Can contemporary GPUs offer any hardware assistance to utilizing them?

  37. ROAM 2.0 by Jacek+Poplawski · · Score: 1

    Please excuse ontopic post.

    Article describes basics of ROAM algorithm, I am familiar with it, and I finished coding it long ago. I am aware of fact that ROAM is very CPU intensive, and everyone say that "ROAM should not be used today".

    Has anyone tried ROAM 2.0??

    I was searching for any other documents related to new ROAM version, but failed, I am still not sure how "AGP Chunking" really works (picture of triangulated patch would help much) and how to fast operate on diamonds (instead triangles). Could you give any links? Thanks in advance.

  38. OK, I'll bite by Latent+Heat · · Score: 2, Interesting
    I never could figure out what the buzzword "troll" meant, but I guess that I'll "bite."

    I make part of my living from commercial sale of scientific visualization software. It performs in software what used to require a $20,000 special-purpose instrument using embedded DSP processors (ouch, more buzzwords). The software is locked into Windows because it uses 1) CreateDIBSection() to allow direct manipulation of pixels in the manner of the post to which I was responding, 2) ScrollWindowEx() so the display can be scrolled using video card hardware, requiring the software to only redraw a small portion with each update, and 3) IDirectDraw::WaitForVerticalBlank() to synchronize scrolls and redraws with the vertical retrace for tear-free video.

    Those three calls in Windows came about because Microsoft was trying to wean game developers away from DOS, where the direct control of copying pixel values into a video frame buffer was highly valued. Those three calls were to make 2-D games possible under Windows; those calls also happened to make my data visualization software possible.

    There is almost but not quite like it in Java 2D. The direct manipulation of pixels is performed using multiple layers of objects pretty much according to the buzzword pipeline layed out in my original post. The vertical retrace synchronization is also there in some or another BufferManager object, but how it works on different OS's is anyone's guess. The hardware assisted scroll is not there, but hey, everyone is supposed to have such fast computers and video cards.

    I was also commenting on 3-D techniques. You got me on that one because I don't have a clue as to 3-D techniques apart from the buzzwords, but it seems I am going to have to learn the 3-D techniques because no one makes 2-D games anymore. My data display goes back some 50 years when it was implemented using hardware filters and thermal paper, and that type of data display will probably be the standard in another 50 years, and I am going to have to figure out how to implement when no one supports 2-D graphics anymore (i.e. pixel-raster displays -- first "they" wouldn't let us touch the frame buffer because that was "too device dependent" and now "they" -- Microsoft with Longhorn, but others will follow -- won't let us touch individual pixels any more).

    As software comes up with more advanced abstractions to separate software from specific hardware, it becomes increasingly hard to do interesting things apart from those things anticipated by the abstractions. I was seconding the view of the post to which I was responding that capabilities to do certain things will become lost.

  39. I don't believe they can at this point by Sycraft-fu · · Score: 1

    There has been talk of implementing higher order surfaces in APIs like OpenGL and DirectX and then on teh coresponding hardware, but as far as I know, hasn't been done yet.

    Not sure how feasable it is, either. Vertex shaders work so well because, with polygons, it's all just matrix math. So you build a killer vector unit, bang, you can do it at high speed on your graphics chip. I'm pretty sure the same kind of math doesn't apply to NURBS, you need something more complex.

    Someday maybe. Or maybe the cards will take NURBS data, and translate it to polygons. However I don't think that is yet happening.