Slashdot Mirror


A Glimpse Into 3D future: DirectX Next Preview

Dave Baumann writes "Beyond3D has put up an article based on Microsoft's games developers presentations given at Meltdown, looking at the future directions of MS's next generation DirectX - currently titled "DirectX Next" (DX10). With Pixel Shaders 2.0 and 3.0 already a part of DirectX9 this article gives a feel of what to expect from PS/VS4.0 and other DirectX features hardware developers will be expected to deliver with the likes of R500 and NV50."

48 of 222 comments (clear)

  1. It would be nice by Pingular · · Score: 3, Interesting

    If they could somehow program Dx10 so it was backwards compatiable with cards now (such as radeon 9800 etc), if I'd bought such a card I'd be quite annoyed if there wasn't decent support for it in the future.

    --

    When anger rises, think of the consequences.
    Confucius (551 BC - 479 BC)
    1. Re:It would be nice by halo1982 · · Score: 4, Informative
      If they could somehow program Dx10 so it was backwards compatiable with cards now (such as radeon 9800 etc), if I'd bought such a card I'd be quite annoyed if there wasn't decent support for it in the future.

      DX10 will work fine with your new card. DX has always done this. DX9 works fine with DX8 cards like the Radeon 9000/9100 and GeForce4 series.
      However the cards do not have support for the new features of DX10 (like PS/VS3/4 etc). The cards can work with the new software, and do, but the hardware just isn't there.

    2. Re:It would be nice by jsse · · Score: 2, Insightful

      if I'd bought such a card I'd be quite annoyed if there wasn't decent support for it in the future.

      You mean you don't upgrade your video card once a year?! :)

    3. Re:It would be nice by bigman2003 · · Score: 3, Funny

      You've got to be kidding- whether or not you play games on a console determines if you have values? Is software all about personal values, and morals now?

      This is starting to sound like vegetarians are taking over or something. Where what you eat/software you run, determines your worth as a human being.

      It really doesn't matter that much in the big scheme of things.

      --
      No reason to lie.
  2. So it's not going to be called DirectX X??? by Anonymous Coward · · Score: 5, Insightful

    XBOX Next?
    DirectX Next?

    I guess we all know what the Next version of Windows is going to be called! :)

    1. Re: So it's not going to be called DirectX X??? by ezh · · Score: 5, Funny

      We had one NeXT already. It turned back into Apple ;) On the other hand, obsession with X's will finally bring you to triple X. What an operating system that would be! :-)

    2. Re: So it's not going to be called DirectX X??? by t0ny · · Score: 2, Funny
      On the other hand, obsession with X's will finally bring you to triple X. What an operating system that would be! :-)

      They could get Vin Deisel to write it!

      --

      Manipulate the moderator system! Mod someone as "overrated" today.

  3. Does this mean OpenGL is finished ? by Anonymous Coward · · Score: 2, Interesting

    At this point DirectX is years ahead of OpenGL

    1. Re:Does this mean OpenGL is finished ? by lemody · · Score: 5, Informative

      OpenGL and DirectX are different kind of systems, DirectX offering interfaces to input devices, sound controlling etc. OpenGL is just for graphics!
      Don't get this personal, I always post like this when someone compares these two :)

      --


      class he-man extends man!
    2. Re:Does this mean OpenGL is finished ? by Anonymous Coward · · Score: 4, Informative

      SDL does this for Linux (and several other OS's including Windows.) It uses OpenGL for the 3D portion. Unfortunately, DirectX is years ahead of SDL.

    3. Re:Does this mean OpenGL is finished ? by Molt · · Score: 3, Informative

      I'd say that if you're on about the graphics subsystem of DirectX then OpenGL is pretty much at the same level if.. and only if.. you are willing to use the standardised extensions. If you're not using these expect slowness, if you're using the non-standardised vendor-specific extensions then expect more speed but more difficulty in making it work across the board.

      --
      404 Not Found: No such file or resource as '.sig'
    4. Re:Does this mean OpenGL is finished ? by Anonymous Coward · · Score: 3, Insightful

      Well I hope you aren't referring to gaming companies, cause last I checked there weren't a lot of programmers using OpenGL for their graphics in games.

      The fact that Quake3 is still used for measuring OpenGL performance of gaming cards says an awful awful lot about the number of game engines using OpenGL (engines based on Q3 not outstanding)

    5. Re:Does this mean OpenGL is finished ? by Deraj+DeZine · · Score: 2, Insightful

      I don't think that OpenGL will be "finished" as long as DirectX only works under Windows. There are other operating systems out there and while most support OpenGL in their windowing system, DirectX is only for Windows.

      If you meant OpenGL is dead in the Windows games market, I'd argue that it mostly has been for a while. Yeah John Carmack uses OpenGL, but most games are implemented in DirectX. It's not like it really even matters, though, actually rendering code is usually a pretty small portion of a game and can be ported between APIs without too much trouble (just ask people from Loki Games or icculus.org).

      --
      True story.
    6. Re:Does this mean OpenGL is finished ? by Screaming+Lunatic · · Score: 4, Informative
      At this point DirectX is years ahead of OpenGL

      No it's not. With the approval of the ARB_vertex_buffer_object extension and GLSlang, both APIs expose about the same level of functionality. Render to texture is a mess in OpenGL right now. But there are Super Buffers/pixel_buffer_object extensions in the works. And the Super Buffers extension looks like it will cover most of the functionality that is slated for DirectX Next.

      Revelant links:

      http://oss.sgi.com/projects/ogl-sample/registry/

      http://oss.sgi.com/projects/ogl-sample/registry/ ARB/vertex_buffer_object.txt

      http://oss.sgi.com/projects/ogl-sample/registry/ ARB/shading_language_100.txt

      http://www.opengl.org/about/arb/notes/meeting_no te_2003-06-10.html

      http://developer.nvidia.com/docs/IO/8230/GDC2003 _OGL_ARBSuperbuffers.pdf

      Note that OpenGL is usually updated once a year at Siggraph. The next version of DirectX is slated for after the release of Longhorn. That'll be 2005 or so.

      Please do not perpetuate the myth that OpenGL is "falling behind" Direct3D. That is plain wrong. And a diservice to both the open source community and the graphics development community.

    7. Re:Does this mean OpenGL is finished ? by jpc · · Score: 2, Insightful

      The people who say has DirectX destroyed OpenGL generally dont know what they are talking about. Basically both give you an interface to the graphics hardware and some legacy stuff (eg Direct X has a fairly complete software implementation of most stuff although many programs test the hardwre capabilities directly so this becomes irrelevant). There are a couple of problems with the GL interface (render to texture mainly). But there is also the "traditional" OpenGl interface, which is what most people learned, and the fixed function extensions. The traditional interface is basically the hardware stuff that SGI implemented (the stack based renderer). It is basically obsolete except as a teaching tool and for legacy code, because the hardware really doesnt look like that any more. The extensions are basically the same in many cases although some expose bits of hardware that are basically existing low level bits.

      And OpenGl is falling behind in one sense: the Direct X process is the process by which there is a (moderate) amount of standardisation of what the raw hardware capabilities of different manufacturers cards are. OpenGl has no influence on this.

      Neither are necessary or ideal, but things will only stabilise when the hardware designs do.

  4. Overkill? by zachusaf · · Score: 2, Interesting

    With few, if any, games fully supporting DX9, is DX10 a bit of overkill? I'm all for the advancment of technology, but it looks like the cart is coming before the horse, and dragging the horse with it.

    1. Re:Overkill? by JDevers · · Score: 2, Insightful

      Not really, they are saying this won't be out until at least Longhorn. By the time that comes out, you can bet a LOT of games will fully exploit DirectX 9...

  5. In other news... by Jarrik · · Score: 5, Funny

    Doom 3 was delayed.. again.

    1. Re:In other news... by DigiShaman · · Score: 2, Interesting

      I don't think Duke Nukem Forever is going to ever be released. In fact, I would go so far to say that it's nothing more then an internal R&D project to test the latest game engines for future games that WILL be released to the market. And yes, I'm bitter with sarcasm today

      --
      Life is not for the lazy.
  6. Slayers by zeroclip · · Score: 5, Funny

    So DX11 will be "DirectX Try"?

  7. Who cares? by Glock27 · · Score: 5, Insightful
    Beyond3D has put up an article based on Microsoft's games developers presentations given at Meltdown

    I could care less about this functionality being exposed through a proprietary API.

    My question is: when will it be available in OpenGL 2.x? :-)

    Cross platform is the best way to go with game development...and OpenGL is the only game in town for cross-platform 3D graphics. It is also the official 3D API for Macintosh.

    --
    Galileo: "The Earth revolves around the Sun!"
    Score: -1 100% Flamebait
    1. Re:Who cares? by n0k14 · · Score: 3, Insightful

      cross platform is the best way to go with game development? hah! maybe on consoles, but with the staggering price of game development now-days its almost too risky to do cross-platform development. companies porting games to apple only have moderate sucess, so how are they going to feel developing for an os unproven in game development with users who are used to getting everything for free? (dont worry, i love linux, but i just dont think we should lie to ourselves)

    2. Re:Who cares? by Glock27 · · Score: 5, Interesting
      cross platform is the best way to go with game development? hah! maybe on consoles, but with the staggering price of game development now-days its almost too risky to do cross-platform development.

      IMO, yes cross-platform is the way to go. If you use the right engine (Torque for instance), you get it for free, less the occasional support call. ;-)

      Look at some of the top games that have been cross-platform:

      • All id games
      • Baldur's Gate Series
      • Warcraft Series
      • Diablo Series
      • Sims Series
      • You Don't Know Jack Series
      • Age of Empires
      • Starcraft
      • Everquest
      • 3-D Ultra Pinball: Thrillride
      • Microsoft Close Combat 2.0: A Bridge Too Far
      • Monopoly
      • Terminus
      • and many more...

      See any successful games there? ;-) And even Microsoft is smart enough to do it, while trying to lock everyone else into Windows/DirectX. Pretty funny, actually...

      so how are they going to feel developing for an os unproven in game development with users who are used to getting everything for free? (dont worry, i love linux, but i just dont think we should lie to ourselves)

      If they get the port essentially for free, and provide it as an "unsupported" extra, they will get a ton of good press on Usenet, the web and so on, from alpha geeks. Look at the reception Baldur's Gate games get here on Slashdot. That's worth it right there! :-)

      --
      Galileo: "The Earth revolves around the Sun!"
      Score: -1 100% Flamebait
    3. Re:Who cares? by Glock27 · · Score: 2, Informative
      You are arguing against your own point. Since DirectX games have been ported successfully to both MacOS and Linux, there's really no reason to use OpenGL.

      Er, just what do you think was used for the MacOS and Linux ports?

      There are three different scenarios:

      1. Use OpenGL for graphics in either your own game engine or a third party engine...then porting is almost trivial. (id Software uses this approach.)
      2. Use a third-party engine that supports both DirectX and OpenGL, then as long as you use vendor supplied functionality switching is no problem. What is a problem is that if you extend the game engine with additional graphics effects, thus differentiating your game from the pack, you have to do it for both Direct3D and OpenGL.
      3. Write your own game engine that wraps both Direct3D and OpenGL, and handle all the requisite hassles yourself.

      Which makes the most sense to you?

      --
      Galileo: "The Earth revolves around the Sun!"
      Score: -1 100% Flamebait
  8. DX9, 10 or whatever already is "compatible"! by cybrthng · · Score: 5, Informative

    DX9 is backwards compatible with even my lowly NV25 and MX cards.

    The issue is my card doesn't have the vertex shaders and other registers that DX9 takes advantage of so i won't be fully accelerating new DX9 features. I can run DX9 games just fine even though my card was designed with 8 in mind.

    Its not that it isn't backwards compatible, it is that your hardware doesn't suport technology of the future since it didn't exist

    Only way around this would be if your GPU core was software driven and they could update it. Otherwise to get new DX10 support, you need a DX10 card that was built with the new functionality in mind.

    Backwards compatibility has nothing to do with it. Its just like in the days of MMX vs NON MMX. IF you had MMX it ran faster, if you didn't it never wouldn't work for you.. just would be slower.

    1. Re:DX9, 10 or whatever already is "compatible"! by BasharTeg · · Score: 3, Informative

      Except, as I understand it, with DirectX, there are multiple implementations of each function. So if you're running a P54C, it loads the pointer to the classic method of that function's implementation. If you're running a Pentium MMX, it loads the pointer to the MMX implementation of that function. Etc. The same goes for choosing between x87, SSE, 3D-Now!, or SSE2.

      So it isn't likely DirectX is going to use an MMX implementation of a function when your processor flags don't agree. Other than that, most people aren't doing inline MMX assembly in their games now that DirectX has taken to supporting streaming instructions itself.

    2. Re:DX9, 10 or whatever already is "compatible"! by Fnkmaster · · Score: 3, Insightful

      That's how it's supposed to be. The problem is that in practice, I've seen cases where the "emulation" of a vertex shader in CPU didn't work properly (a DX8 vertex shader that ran fine on GPU, but had weird problems on CPU). The solution was a line-for-line port to C++ of the vertex shader, and having a separate execution path for non-VS supporting cards. In short, a big pain in the ass to program for.

    3. Re:DX9, 10 or whatever already is "compatible"! by Tim+C · · Score: 2, Informative

      DX9 is backwards compatible with even my lowly NV25 and MX cards... Its just like in the days of MMX vs NON MMX. IF you had MMX it ran faster, if you didn't it never wouldn't work for you.. just would be slower.

      Now, in general you are correct - however, the Deus Ex 2 demo refused to run on my girlfriend's PC because it lacked support for pixel shaders (v1.1, iirc). That machine has the latest DX installed, but only has a GeForce 4 MX. My machine, with a Ti 200, runs the demo fine.

      Perhaps it doesn't have to be that way, and I realise that it's only a demo, but that's the way it is at the moment.

      Also, specifically addressing your MMX comment - I seem to remember Unreal refusing to run on my PC at the time, which had a Cyrix PR166 (with no MMX support), precisely because of the lack of MMX support.

  9. Re:Horse, THEN Cart by Anonymous Coward · · Score: 3, Insightful

    Microsoft aren't dictating to NVidia and ATI what features to put in their next chips, either. NVidia, ATI, other card makers, and graphics programmers, are telling Microsoft what features they need in an API, and Microsoft are releasing APIs that have those features.

    Compare this to OpenGL, which is lagging so far behind that only rare titles take it seriously (Doom3 is the one that springs to mind).

    Note for example that both NVidia and ATI provide better support for DirectX in their drivers than they do for OpenGL. That doesn't sound like companies being imposed upon, that sounds like companies appreciating an API that supports the features they've spent a lot of money developing.

    And they don't care about portability, because Linux and MacOS are basically irrelevant as gaming platforms. That's not going to change until OpenGL catches up with DirectX, guys.

  10. Re:Horse, THEN Cart by TwistedSquare · · Score: 2, Insightful
    Here's my take:

    The game developers are the ones who really want new performance features (sure it will make the hardware manufacturers money but the developers are the ones who are really driving it).

    The game developers don't ever work directly with the graphics card, only the API. So to them extensions to performance are basically extensions to the API (and just demand that users get a card that supports the API).

    The API for DirectX is of course designed by Microsoft who want people to use it because it locks them into Microsoft more than OpenGL. So Microsoft want to advance the API to please the developers. Therefore Microsoft extend the API for new future features.

    Graphics card performance is not based on processing power, its based on how fast they can go while implementing the API (either DirectX or OpenGL). To get sales they need their DirectX performance to be good so they follow the API (with one eye, the other on OpenGL) and try and make the best card for implementing it.

    So there's no real point having a feature on your graphics card that isn't used by the API. While OpenGL does have extensiosn to allow you to get at manufacturer-specific stuff to an extent, as I recall DirectX doesn't so much (it just provides a generalised architecture for manufacturers to implement, as core OpenGL does).

    Which is why DirectX comes before the manufacturers to an extent. There's a bit of poetic licence there but that's my general view.

  11. Re:So what is a shader? by tomstdenis · · Score: 4, Informative

    I'm no 3d coder guy but as I understand it shaders are short programs you can enter into the GPU to control how a face is rendered [at a given vertex]. Before that you used to say "render me with [phong|gouraud|flat] shading" and the whole thing looked uniform.

    Shaders programs let you do cool things like features [e.g. skin, roughness to things, etc...]

    What I don't get is why didn't they just make the GPU a generic RISC with say 32/32 registers [ALU/FPU] and a set of instructions that fast graphics would require [say saturated X bpp operations, fast division, etc...]

    That way you have a processor you can just upload code to. Also make it a standard so instead of having "every joe and their brothers graphic processor specs...." you have something truly conforming...

    Tom

    --
    Someday, I'll have a real sig.
  12. Version mania by hey · · Score: 2, Insightful

    I have done some work with DirectX and the biggest problem I see is that new versions come out too quickly. Do you want your project to be totally tied to DirectX version N with you know N+1 will be out next year making your huge project obsolete or requiring a rewrite. For that reason SDL or OpenGL (an API that hardly changes) appeal to me. Who wants to build on shifting sands.

    1. Re:Version mania by Mr_Silver · · Score: 4, Insightful
      I have done some work with DirectX and the biggest problem I see is that new versions come out too quickly. Do you want your project to be totally tied to DirectX version N with you know N+1 will be out next year making your huge project obsolete or requiring a rewrite.

      Disclaimer: I have never looked at or written a piece of code in my life that used DirectX.

      However, your comment makes no sense. All games written for one version of DirectX should work in the later versions. Otherwise you'd have games failing left right and centre and people on here bitching about how they can't update DirectX without killing their favourite game.

      Hell, I have a couple of DirectX 5 and 7 requiring games and they work just fine under v8 and my recently installed 9.

      The only downside to the frequent updates is when you want to take advantage of all the new wizzy things the graphics cards are doing. But I don't think thats a fault of Microsoft, more an indication of the rapid pace of development (since MS merely support the things the graphics card makes tell them their next cards can do)

      --
      Avantslash - View Slashdot cleanly on your mobile phone.
    2. Re:Version mania by sithlord2 · · Score: 2, Interesting



      DirectX is COM-based, so it remains backwards-compatible. COM specifies that new versions of a COM component should support the older interfaces. Besides, the only time I remember that there was a drastic change in DirectX's architecture, was when they switched from DX7 to DX8 when DirectDraw en Direct3D where merged into DirectGraphics. Besides, even then you could still use the older interfaces if you wanted to.

      --
      ...You are over-qualified and under-paid. If we give you a raise, we will break the cosmic balance of the universe.
    3. Re:Version mania by .pentai. · · Score: 2, Informative

      I'm sorry but your misinformed, in some ways.
      OpenGL generally has features available BEFORE DirectX does, accessible via extensions.

      However, once it's available through a vendor extension (NVidia or ATI proprietary) then it usually takes a while and some reworking to make your code work when an official extension is supported (ARB, or somethings EXT).

      However your other comments are pretty much right on. You don't change your DX8 game to DX9 just because DX9 just came out, however you probably WILL change it to DX9 because your manager who knows nothing about technology says OOOH BUZZWORDS! and wants them on your game's box too...

    4. Re:Version mania by DeadMeat+(TM) · · Score: 2, Interesting
      However, your comment makes no sense. All games written for one version of DirectX should work in the later versions. Otherwise you'd have games failing left right and centre and people on here bitching about how they can't update DirectX without killing their favourite game.
      (Disclaimer: I have written code for DirectX, but not since DirectX 7.)

      Actually, you do get problems like this to a degree. When you want to get a DirectX interface, you have to go through COM+. COM+ requires that library developers (read: the DirectX dev team) tag each version of their interfaces with a unique ID, and each time a new version of their library changes an interface, it's required to return the older interface if a program asks for it. The upshot of this is, if a game asks for a DirectX n object, then DirectX n+1 has to be able to accomodate it.

      So, in theory, DirectX is backwards-compatible. In practice, DirectX versions sometimes maintain the same interface but make slight changes to functionality that break older games (especially ones that have code to work around DirectX bugs that Microsoft later fixes). I know there have been a good number of games that crash or otherwise act weird when you upgrade DirectX past a certain version, but the only one I can think of off the top of my head is WarBirds (which they later fixed through a patch).

      Admittedly, this doesn't happen much anymore (WarBirds was a few years ago), but it does happen.

    5. Re:Version mania by Keeper · · Score: 2, Interesting

      You use DirectX through COM.

      COM+ was a horrible idea based around building/managing an application by dragging & grouping COM+ components some funky control panel/application dohicky. COM+ was built on top of COM. Most people like to forget that it ever existed.

      The rest of what you say is essentially correct, though not technically. All COM interfaces are required to have a unique identifier associated with them (called a GUID), not just interfaces you want to have different versions of. Normally in COM, when you want to get/create an object you call CoCreateInstance (or a variation of it) and pass in GUID of the object you wish to retrieve. You don't do this with DirectX -- the SDK has a method for each version of DirectX you can call to retrieve the correct Interface.

      So in DirectX 9, you'll want a pointer to an IDirect3D9 interface, which you'll get by calling Direct3DCreate9(D3D_SDK_VERSION). D3D_SDK_VERSION is a constant defined in one of the DirectX SDK headers representing the version of the SDK used to build the binary in question; it is NOT the version of the interface you want (this ensures that you have the right headers associated with the libraries you're linking with). All of the IDirect3D9 method return "9" interfaces (ex: IDirect3DDevice9).

      Technically, COM doesn't require that you use different names for different interfaces (as long as they have unique guids), but in practice it makes things MUCH less confusing to do so. In the case of DirectX, it also means you don't have to do anythink funky with namespaces (because the sdk would include items from previous versions, which would have the name name but be different objects...).

  13. That annoying spellchecker by gspr · · Score: 2, Interesting

    Notice how some words, such as "OSs", are underlined by the spellchecker in the pictures. Are they too lazy to remove those?

  14. Re:So what is a shader? by Pius+II. · · Score: 2, Informative

    Er, they did. There's even a C-like programming language, in case you don't want to write raw assembler for these processors. The whole process of uploading stuff on the graphics card is halfway standarized, at least in OpenGL; I don't use DX, but according to documentation you can use the same shaders with similar commands.

    Documentation of the OpenGL side is in the OpenGL Extension Registry, look for "shader" and "program".

  15. Knowledge, THEN Post by BasharTeg · · Score: 4, Insightful

    I try not to make it a habit to flame people, but do you know what you're talking about? Adding new functionality to DirectX *before* the new hardware comes out, means that when you buy your new GeForce FX 9999, you don't have to wait for Microsoft to release a new version of DirectX 6 months later to use the full potential of the card. This has absolutely nothing to do with embrace and extend. This is their proprietary graphics/multimedia API in the first place. How can they "embrace and extend" their own library?

    Your second bit of anti-Microsoft conjecture is no better than your first. When it comes to Microsoft working with Intel to add extensions to the x86 processor set, so what if they did? Do you think they wouldn't benefit all x86 operating systems? At the level of the instruction set, how would you design into an x86 CPU, instructions which only benefit one x86 OS? Yes, Microsoft has worked with Intel on the instruction set, but mostly vice verca. It is Intel who releases the manuals on "how to write an OS for our CPUs." But no matter how they're working together, that is a good thing, not "the evil empire at work."

    Please, learn a little and think a little before you post your knee-jerk anti-MS reaction. There are plenty of legitimate reasons and opportunities to bash Microsoft. The problem I see is a lot of people look like that guy from Can't Hardly Wait who keeps trying to find the right second to start the slow clap.

  16. They're failing to address a major bottleneck IMO by Samir+Gupta · · Score: 2, Funny
    Since the earliest days of 3D graphics architetures on the PC, a major bottleneck has been the speed of the bus between main system memory and the graphics hardware, be it AGP, PCI, or some proprietary solution. This is usually the limiting factor when it comes to transferring models and textures of a size that we would like to use when rendering super realistic 3-D characters for games.

    At Nintendo, we have been surprised that no major graphics vendor has really addressed to an adequate degree this problem, so we're currently spearheading the development of a new architectural paradigm called MARIO, standing for (Making Assets for Rendering I/O Optimized).

    In a nutshell, we move bandwidth and space-consuming model and texture data from RAM and disc media, where it is time-consuming to load, to super-fast ROM, contained within the GPU itself. Having this data in silicon will dramatically speed up the rendering process and hence the user experience overall.

    You may ask, how do we modify these models and textures? Of course, that is not possible, but we've done great research, and have found that for most of our games, the same models and textures are always being used anyhow, so it makes sense to put those in ROM.

    Specifically, we're embedding data for Mario, Luigi, Donkey Kong, the Princess, and Link into ROM. For 99% of our anticipated future games, this will cause a dramatic speedup in performance, and will provide a great incentive for game developers to license the use of our assets in their games, instead of using their own proprietary non-Nintendo characters in order to make their 3-D rendering pipeline as efficent as possible.

    We at Nintendo look forward to the quantum leap in graphics performance this new architectural vision will surely bring on and are quite excited as you can see!

    --
    -- Samir Gupta, Ph. D. Head, New Technology Research Group, Nintendo Co. Ltd., Kyoto, Japan.
  17. Re:Horse, THEN Cart by Stiletto · · Score: 4, Insightful


    Compare this to OpenGL, which is lagging so far behind that only rare titles take it seriously (Doom3 is the one that springs to mind).

    I can only see one property of OpenGL that is "lagging behind" DirectX: Whiz-bang features.

    Is OpenGL "lagging behind" DirectX in portability? hardware support? scalability?

    I would argue that OpenGL as a general-purpose 3D API is more useful than DirectX soley because it is more widespread. The API is implemented (or implementable) on a more diverse selection of hardware and software platforms than DirectX can ever dream of.

    As a Intel-Windows-Cutting-Edge-Game-only API, DirectX is the way to go, but for everything else, we have OpenGL.

  18. Re:Horse, THEN Cart by Glock27 · · Score: 3, Informative
    Compare this to OpenGL, which is lagging so far behind that only rare titles take it seriously (Doom3 is the one that springs to mind).

    Wow, you are very uninformed for someone who was rated +5 Insightful.

    OpenGL exposes new 3D functionality much faster than DirectX, through the OpenGL extension mechanism. It may not be as convenient as having a "standardized" API (and OpenGL 2.0 will address as much of that issue as it can), but it is still better to be able to use new functionality immediately, rather than waiting for the next DirectX release (or worse yet beta) from Microsoft. NVIDIA's drivers even support all of this under Linux.

    As to your "rare titles" comment, see my other post for top games using OpenGL. Also reflect on the fact that every id game plus all the games based on id engines (Heretic 1/2, RTCW/ET and many more) all use OpenGL exclusively.

    And guess what, when id releases Doom3, I'm pretty sure it'll raise the bar again. Perhaps by then quite a few people will have shader-capable video cards. ;-)

    For more correct information about OpenGL, feel free to check out the official OpenGL website.

    --
    Galileo: "The Earth revolves around the Sun!"
    Score: -1 100% Flamebait
  19. DirectX Next? by Reteo+Varala · · Score: 2, Funny

    What, you mean it's not going to be called DirectXX?

    It would certainly get someone's attention...

  20. Re:Wouldn't game companies.... by T-Ranger · · Score: 2, Interesting
    In theroy, yes. On a purely technological decision making, its not all that hard to develope cross platform apps, even apps that use bleeding edge features like games.

    But there is more then just a technological cost to bring games to market. There is the marketing, QA, tech support, packaging, distribution, etc, etc, etc, of bringing games to additional markets. And even if it was just money, (most?) game companies are fairly small outfits; the 'distraction' of other markets might be too much for overworked staff, everyone from the CEO down to coders.

    While I dont think the 'Loki experiement' was fair: its clearly easier to port to other OS if you do it from day 1, not from the release date. Basicly only ID Software developes games that have a design goal of being cross platform. But the ID Software people all have more money then they can spend, there decisions are not purely business ones, and others who should/could be using ID as a prescidence know that. It would take time, money, and (perhaps most importantly) effort, to develop games for what is still unproven markets.

    Since it hasent been pointed out yet, its not a OpenGL v DirectX question. DirectX is not just a 3d graphics library; it does many, many other things. While there are many OSS projects to bring the same type of libs to linux (and other !MS OSs), some sponsored by now dead Loki, DirectX is the most compleate set of libs... And while I havent coded it either OpenGL (and friends) or DirectX, Im suspect, since DirectX comes from a single source, as a whole it is more cohesive and unified then OpenGL + friends... Which isnt to say that any given DirectX component is better then alternatives, but as a package DirectX is almost definitly better then the (not existant) OSS package.

  21. Re:So what is a shader? by SmackCrackandPot · · Score: 4, Informative

    What I don't get is why didn't they just make the GPU a generic RISC with say 32/32 registers [ALU/FPU] and a set of instructions that fast graphics would require [say saturated X bpp operations, fast division, etc...]

    This was tried in the past, with TI's TIGA (Texas Instruments Graphics Architecture) which supported the TMS34010 and TMS34020/34082 graphics coprocessors. This was a really neat architecture which accelerated 2D and basic 3D operations. Unfortunately, the CPU chip manufacturers (Intel, etc...) would identify the bottlenecks and optimise their CPU's so that the next generation chips would be faster than a current generation CPU/GPU. "Local Bus" basically whacked out TIGA from the market. A real shame, since you could write your own extensions which had complete access to GPU memory (maybe this was a bad thing). They even got as far as having a trapezium rendering algorithm (halfway to rendering triangles).

    Going back to the present day, look for the extensions like ARB_vertex_program and ARB_fragment_program. According to Microsoft's plans, these will at least have identical instruction sets. I wonder how long it will be before we can completely define an entire graphics pipeline using a single program.
    (This would probabl require virtual "clip_vertex", "render_triangle" function calls).

  22. Re:They're failing to address a major bottleneck I by Lord_Dweomer · · Score: 2, Informative
    And just so everybody is clear. Samir Gupta is an infamous Slashdot troll who in fact, does NOT work for Nintendo. Do not be confused by his seemingly intelligent posts.

    --
    Buy Steampunk Clothing Online!
  23. Cliff's notes for people who don't want to read it by Gldm · · Score: 3, Informative

    The article's really long, and somewhat technical. Here's the layman highlights for anyone who just wants to know "Ok what should I care about?"

    1. The big change is all memory goes virtual. What this means is that you don't need to load an entire texture to render a subset of it's pixels. This is a VERY good thing considering on most textures you're only using a low level mipmap anyway. Thus, texture memory on the card becomes more like a gigantic L2 or L3 cache that can be efficiently used. Also you can have massive texture spaces without having things go all slow over AGP. 3Dlabs' Wildcat already does this. This was originally mentioned by Carmack in the 3/27/2000 .plan update which you can find here: http://www.bluesnews.com/cgi-bin/finger.pl?id=1&ti me=20000308010919

    In addition, geometry is stored virtual as well, as are shaders, which can be loaded into the processor in pages, instead of being limited to a small block of instructions that have to fit entirely into the GPU registers. The registers now work more like an L1 cache, and shader programs can be effectively unlimited size. This means lots of neat special effects will be possible.

    2. High ordered surfaces (curves) are getting mandated. No more n-patches vs truform, it's going to use standard curve systems like Beizer splines.

    3. Fur rendering and shadow volumes are going into hardware as part of a new "tesselation processor"

    4. You can have multiple instances of meshes. This means you can take one model, run a few vertex programs on it, and store each result seperately. Saves alot of time later.

    5. Integer instruction set. This is so you don't have to deal with floating point data when you don't need to. There are some times you want simpler data for use in a shader program and having to pretend everything's a floating point texture isn't convenient.

    6. Frame buffer current pixel value reads. This has been a developer request for a long time. It's not mandatory in the spec, but it can be used for all sorts of stuff. Basicly the GPU can read the current value in the framebuffer into the pixel pipeline without needing to maintain a second copy. This will both save alot of memory and allow you to do things such as light accumulation more efficiently.

    --

    Introducing the new Occam Fusion! Now with sqrt(-1) fewer blades!