Slashdot Mirror


ATI Releases Competition for NVIDIA's Cg

death00 writes "ATI has released a beta of RenderMonkey, their suite of open, extensible shader development tools. ATI showed these tools for the first time at Siggraph 2002. Should be interesting to see who wins the shader development race, NVIDIA's Cg, RenderMonkey or whatever 3Dlabs has on the go."

12 of 168 comments (clear)

  1. And the winner is... by javilon · · Score: 5, Insightful

    "Should be interesting to see who wins the shader development race, NVIDIA's Cg, RenderMonkey or whatever 3Dlabs has on the go."

    Or maybe nobody wins. Maybe three uncompatible ways to do things will hurt developers.
    What they should be doing is to reach an agreement and put it onto opengl.

    --


    When his defense asked, "Which computer has Jon Johansen trespassed upon?" the answer was: "His own."
    1. Re:And the winner is... by Cyberdyne · · Score: 3, Insightful
      Or maybe nobody wins. Maybe three uncompatible ways to do things will hurt developers.

      You mean like:

      Mac vs Windows vs Linux?

      Yep. The biggest hurdle for Linux and the Mac is Windows compatibility - hence SoftWindows/SoftPC, Wine, VMWare, Bochs, Win4Lin - not to mention cross-platform systems like Java, HTML etc, all designed to circumvent this problem.

      Remember what (almost) killed Unix in the first place? Fragmentation. Each Unix vendor adding their own little "features", making cross-platform support a little harder each time. If they'd been able to agree on a single "Unix" rather than each going their own way, we could all be using commodity Unix boxes interchangeably.

      Or maybe:

      Gnome vs KDE vs Motif?

      Yes, another case in point: this is a big PITA for developers - and, again, something the original Unix people avoided like the plague. You were supposed to have "a window manager" - it doesn't matter which, they all use the same protocol, and are all interchangeable. Now, we have a nightmare of rival libraries, doing the same thing in different ways.

      One of the greatest advantages Windows has is uniformity - for users and developers alike. With very few exceptions, a 7 year-old Windows 95 (Win32) application will run perfectly happily on Windows XP; even old DOS applications from 20 years ago will usually run, unless they access low-level things directly. Meanwhile, adding items to the Programs menu hasn't even remained consistent within Gnome, let alone between Gnome, KDE and others; as I type this, CodeWeavers are still trying to update Crossover to support Gnome 2's new approach.

      Or how about:

      rpm vs apt-get vs pkg?

      apt-get and rpm work very nicely as a team, so that's hardly a good example...

      Haven't you ever wondered why so much effort goes into standards - the IETF with RFCs, the Single Unix Spec, POSIX, W3C, Linux Standards Base...?

  2. co-operate by CptSkydrop · · Score: 1, Insightful

    Why dont they work together and stop thinking about the shareholders! It would be positive for everyone involved.

    1. Re:co-operate by MikeTheYak · · Score: 5, Insightful
      Perhaps because the shareholders own the corporations, and corporations are chartered to serve the interests of the shareholders? Imagine if you owned a store, only to find that the employees were giving away your stock to charity. Sure it would be a nice gesture, but it's not exactly the right thing to do.

      You could argue that it would be in the shareholders' best interest that ATi and nVidia cooperate on a standard, but it would be unethical for either corporation to deliberately flaunt the interests of the shareholders.

  3. Competition is always a good thing by RailGunner · · Score: 1, Insightful
    If ATI and NVIDIA can start leapfrogging each other then way AMD and Intel have, then the end result is simply going to be faster, more powerful, and less expensive video cards for us.

    If RenderMonkey is better the Cg, then great! Cg can then try to leapfrog RenderMonkey, and then the API for both just gets faster, more reliable, and easier for developers to use.

    [rant]

    I'm going to be building myself a new PC shortly, and I'm going to put an ATI Radeon 9700 in it.

    Personally, I've been pretty upset with NVIDIA ever since they bought out 3dfx and told Voodoo owners to go screw themselves, that they weren't releasing any new drivers or supporting any Voodoo products. I bought a Voodoo5, instead of a Geforce2 - due to the stability of the Voodoo2 and Voodoo3 I had owned, and due to reading the complaints about NVIDIA's drivers... and a week later 3dfx went under. D'OH!

    1. Re:Competition is always a good thing by PainKilleR-CE · · Score: 3, Insightful

      Personally, I've been pretty upset with NVIDIA ever since they bought out 3dfx and told Voodoo owners to go screw themselves, that they weren't releasing any new drivers or supporting any Voodoo products. I bought a Voodoo5, instead of a Geforce2 - due to the stability of the Voodoo2 and Voodoo3 I had owned, and due to reading the complaints about NVIDIA's drivers... and a week later 3dfx went under. D'OH!

      nVidia didn't really 'buy out' 3dfx, they just bought up certain portions of their technology when 3dfx went under. As for complaints about nVidia's drivers, I'd be interested to know what they were at that time, since I dumped 3dfx for nVidia when the Voodoo3 made it extremely clear that 3dfx was not going to be able to produce cards comparable to the Voodoo and Voodoo2 on nVidia's timeline. Through the TNT lines and GeForce lines the only problems I've had with drivers have been specific to particular games and particular driver versions, and fixed very quickly in most cases.

      --
      -PainKilleR-[CE]
    2. Re:Competition is always a good thing by peterpi · · Score: 2, Insightful
      True, but a common interface is also good.

      For example, The OpenGL interface hasn't changed for donkeys' years. The reason it hasn't changed is that it was designed correctly in the first place. But hardware has still gotten better, thanks to killer apps such as games forcing competition.

      Indeed, having to go through the time-expense of learning it might even dissuade developers from picking up a new interface.

      Still, these things tend to settle into a reasonably steady state without requiring our opinions, so don't worry; it'll be cool. :)

  4. Not competing by Namarrgon · · Score: 5, Insightful
    Except they're not really in competition to each other.

    - Cg is a high-level shading language (compatible with DirectX 9's HLSL) that will compile to both DirectX and OpenGL APIs, or to various sets of OpenGL extensions, even at runtime if desired.

    - Render Monkey is an IDE that supports various shading languages, including Microsoft's (and therefore Cg, at least when they add DX9 support). AFAIK, it's not that dissimilar to nVidia's own Effects Browser.

    - OpenGL 2.0 is a lot more than just a shading language, but in any case, it's still at the proposal stage. Cg may yet be adopted for the language, but it will likely end up being quite similar at least.

    So I see no reason why you couldn't write your shaders in Cg (sorry, DX9 HLSL) within the RenderMonkey environment, and then compile your results to OpenGL 2.0.

    nVidia have said they'll support whatever the ARB decides, but even if OpenGL 2.0 does use the 3DLabs language, there's no particular reason you couldn't use a Cg profile to output an OpenGL 2.0 HL shader, or an ARB_vertex_program shader, or something even lower-level.

    Hell, why not just write your shaders in RenderMan & then use RenderMonkey or Effects Browser or whatever to import the RIBs & compile that down. Ever wondered why nVidia bought Exluna? There's a lot of RenderMan expertise right there...

    --
    Why would anyone engrave "Elbereth"?
  5. Re:Any comparison done ? by Anonymous Coward · · Score: 1, Insightful

    Good old JC (John Carmack :) wrote/talked about this briefly a little while back (i can't remember where)

    Basically, like the difference between C and ASM, you will be sacrificing speed and smaller code size for easier readability, maintainability, and faster production time. Because hardware has become so advanced, the switch is nessesary because the programs are getting so complex. Of course, there will always be the guys who hand code everything in ASM, but for most people, especially game dev studios who have specific budgets and deadlines, you have to take it because of the time it can save.

    Check Carmack's .plan, or his address from QuakeCon 2002. I think this is where he talks about it.

  6. Re:OpenGL vs D3D by PainKilleR-CE · · Score: 2, Insightful

    I think that you and the parent are missing the real reason that OpenGL is king on the workstations and Direct3D never will be. OpenGL is extendable by everyone and Direct3D is completly controlled by MS.


    That's very true, but you also missed the reason that Direct3D got where it is today, because OpenGL was definitely the king in games up until at least DirectX5. The reason is simply that Direct3D is updated on a fairly regular basis to take advantage of the new features on video cards as quickly as possible (and those features are most often geared towards what the game developers want to see), whereas such support is provided in OpenGL only through those card-specific extensions most of the time (as it takes much longer for OpenGL itself to be updated with those features).

    OpenGL is a much more static API and that has it's own appeal in areas where your application may be in use for several years, rather than just the 60 hours that a player may spend on your game. As long as people believe that they need the latest flash-bang-gizmo graphics tricks in order to sell their games, they'll want the API they use to make their lives easier when they use those tricks. Even the idea that OpenGL is faster can be questioned when looking at cards that support the calls being used (though that certainly wasn't the case in earlier versions of Direct3D, which were always slower than properly-written and supported OpenGL).

    You can't go and make your own version of Direct3D with a hypercube (or whatever) extension that draws a super widget because Direct3D is closed.

    Then again, any graphics chip manufacturer is free to add new features to a card and give the developers the ability to use them alongside Direct3D before Direct3D supports them. This is basically what nVidia and ATI are doing with Cg and RenderMonkey (giving them a higher-level language that compiles down to hardware-level code for DirectX8 while also compiling to OpenGL and DirectX9 code for those calls that are (or will be) supported).

    --
    -PainKilleR-[CE]
  7. Re:Any comparison done ? by Anonymous Coward · · Score: 1, Insightful

    I do game programming, sometime.

    I do it in assembly language, almost always.


    As an aside, are you still using assembler for everything? If so - why? You should be concentrating on the game, being as productive as possible and building 100% of what you're doing in a higher level language (such as C++).

    When you're done, the last phase of your optimisation should be converting the most performance-critical sections of the program to assembler if it's still needed after optimising your higher-level language code. For a modern game this shouldn't be more than about 5%, if at all - particularly if it uses 3D acceleration.

    If your game development is a hobby, nevermind - you should be in it for the enjoyment, not the productivity.

  8. Fiduciary Duties of Corporate Employees by Steve+Hamlin · · Score: 2, Insightful

    Hemos, your thoughts about the liability of corporate employees is not entirely true.

    Under most U.S. law (mostly State law relating to fiduciary obligations of Directors, Officers & Executives (DOE)), the standard is called the Business Judgement Rule (BJR).

    Under the BJR, a DOE is protected from suits for breach of fiduciary duty if the DOE (1) is disinterested (i.e. financially independant of the outcome), (2) acts in good faith, and (3) exercises due care in reaching the decision.

    Every decision that a DOE makes does not have to directly accrue to the financial benefit of the corporation. Corporations can, and are expected to, contribute to the local community, support charities, exercise some respect for the environment, i.e perform "good acts".

    These "good acts" will not always (or even ever) benefit the corporation financially. Nonetheless, DOEs are never successfully sued because they should have given a dividend instead of donating a piece of land to the city for a park, decided to give employees a day off to help with Habitat for Humnaity, or install CO2 scubbers when the fines are cheaper.

    So, contrary to what I see posted on Slashdot frequently, every decision an employee of a company makes DOES NOT have to be the short-term, profit-maximizing decision. Believe it or not, the law allows some leeway in the decision making of running a company.

    For more information, see this link

    (and please don't respond with "but Enron...." or "look at WorldCom, Global Crossing, etc." I am speaking about the applicable law of fiduciary duties, not engaging in a public policy debate or Crossfire-esque corporate-bashing)