ATI & Nvidia Duke It Out In New Gaming War
geek_on_a_stick writes "I found this PC World article about ATI and Nvidia battling it out over paper specs on their graphics cards. Apparently ATI's next board will support pixel shader 1.4, while Nvidia's GeForce3 will only go up to ps 1.3. The bigger issue is that developers will have to choose which board they want to develop games for, or, write the code twice--one set for each board. Does this mean that future games will be hardware specific?"
This would be done more through code than by an artist. You only need to either write a shader do do it properly, or just assign a ka/kd/ks to each material, and that isn't exactly difficult. After all, in the real world, most surfaces have a pretty much constant reflectance function for the whole dang thing. Just look around...Yes, things have different *colors* across its surface, but the actaul reflectance is usually the same.
Artists won't draw bump-maps.
Why not? They draw textures now, I'm sure they would have no problem drawing a bump map if need be. Besides, if there is support for procedural textures, you can just use those to generate a bump map.
Where are we going and why am I in this handbasket?
Hell, Half Life and Doom are barely distinguishable from each other if your beer-goggles are thick enough. And it doesn't matter if the frame-rate slows down thru lack of processing power - your reactions are already terrible from the booze.
Yet again, beer is the cause of, and solution to one of life's problems (thanks to Homer for the [slightly paraphrased] quote).
>Write for the lowest denominator
hmm, but it seems like game developers don't do that. There is a segment of gamers that are attracted to the newest hardware _because_ it has the latest features, and they then want to buy a game that uses that feature they just paid a $$$ premium for. Totally wrong priorities, but it seems to happen.
Sure, write your game for the best compatibility across different hardware, but then you run the risk that PC Gamer magazine won't drool all over themselves in their review because the reviewer ran your demo on his rig with a GeForce XXI, but your game didn't have the latest 'cyclops, semi-transparent, half-inverse bump/pixel grinding' feature.
A 14-year old reading pcgamer has no idea what this feature really does for him, but he knows that dad is getting him a GeForce XXI for xmas, so this game isn't going to be on his santa list.
There is much cruelty in the universe, John.
Yeah, we seem to have the tour map.
Nope, Quake 2 did not support Glide, rather it supported the 3dfx mini-gl library (OpenGL subset)
Quite the contrary, Quake 2 (much like quake 1) in conjuction with the 3dfx mini-gl did much to boost OpenGL support in games.
Neurotic
All hardware is never going to work with all software. It's simply too much to ask. But graphic card incompatibility is not new to the gaming world. I remember a few years ago when I had a Riva TNT board, and just about EVERYONE else had some 3dfx board. Some games only first came out with support for the 3dfx stuff, and then later released patches for riva stuff, or riva released a new driver that would work with the game. I'm fairly sure that was all basically software differences, not hardware like this is. But there can't be anything wrong with a little friendly competition. As long as the good new games are released and are able to support ALL of the major boards out there I'm happy. They don't all have to be supported as soon as they hit stores, but delayed support is better than no support.
"0101100101? It's just jibberish. *looks in mirror, gasps* 1010011010@!? AHHHHHH!!"
Its much like the choice to support AMD's 3DNOW or Intel's SIMD instructions.
..which are converging. The Palomino Athlon core now supports Intel's SSE opcodes as well as 3DNow, and it is promised that the Hammer will also support SSE2. One can only hope that Nvidia and ATI's pixel shaders can also be comfortably converged into a common interface (sounds like they pretty much will be in DirectX 8.1, hopefully it won't be long until there's a common ARB extension for them in OpenGL too).
Some bleeding edge features are initially only supportible by writing specific code, but that is the exception.
And in the case of 3D hardware, the bleeding edge features are sure to be used for extra "flash", not vital functionality. A game might have phong-shaded bump-mapped objects on a Radeon2, but it will still run with slightly less exciting graphics on your elderly TNT2.
Now the hardware industry has moved away from that, instead giving us free drivers for windows. Which not only are crappy in their first release, but are also useless on other platforms which the vendor decides not to support.
Bring hardware standards back, and MS will lose much of the power it's able to leverage through the high degreee of hardware support their system provides. I for one would sacrifice a little technological progress for the ability to have things work together as expected out of the box.
Ñ'
Yes.
There seems to be a large amount of confusion as to what this means, and some people seem to be jumping off the deep end (as usual), so here's an attempt to clear up some of the issues.
(PS = Pixel Shader in the following points)
Hope this makes things clearer.
Pixel/Vertex shaders are an attempt to provide developers with low-level access while still maintaining the abstraction needed to support multiple sets of hardware.
To be honest, compared to the issues of shader program proliferation due to the number/type of lights you have in a scene etc., this isn't that big a deal. You might as well complain that writing a PS that uses PS1.3 means that you're 'choosing' GeForce 3 over all the existing cards that don't support PS1.3. Or that when bump mapping was added to DX and you used it, you were choosing the cards that did bump mapping over those that didn't.
DirectX is supposed to let you know the capability set of the gfx card, and allow you to use those capabilities in a standard way. The pixel shader mechanism is just another example of this at work.
As ever with games development, you aim as high as you can, and scale back (within reason) when the user's hardware can't cope with whatever you're doing.
Trust me, this is not news for games developers :-)
Tim
Because DirectX just standardized on the first implementation that came along, with NO generalization at all, it's pretty much locked all the vendors into a sub-standard implementation.
OpenGL's approach of making vendor specific extensions vendor specific makes a lot more sense than just blindly stndardizing Nvidia's latest card.
But since Direct3d is so important to the game market, OpenGL's superior approach doesn't actually help it; everyone is forced to copy nvidia, including their extensions, to maintain compatibility on the directX side.
If vendor A is the only one that supports feature B, you're going to have to implement two version of your code, one using it and one without it. Even if your API provides software emulation; Unreal used its own software renderer instead of just using DirectX, even though DirectX had software fallback. The same is true of pixel shaders and vertex programs.
Legal crap: I work at ATI, but these are my own views, and don't reveal anything that we haven't stated publicly in a press release.
New graphics hardware from ATI and NVidia are both being developed to support MS's DirectX spec. Game developers just need to pick the level of DirectX that they want to focus on with their engine (and both companies cards support pixel shaders up to v1.3.. only ATI also has 1.4 at the moment).
So you code it once, and it works on both hardware. If you really like the ATI cards and have some time to spare, you might hack in shader 1.4 support.
As far as open source support is concerned, I believe both companies are making OpenGL extensions for these technologies available. Here you have a split in the standard, and it becomes harder to support multiple hardware with one piece of code. But the support is there, and it should be possible to have it run under any free (GNU-style and otherwise) system. As much as I don't like MS, DirectX is under more constant revision than OpenGL (from what I've seen), and does a better job of providing the features that a cutting-edge game developer would want to take advantage of.
Phil
Now only if they could get Win32 cleaned up and a decent kernel, then I'd THINK about purchasing that OS
The kernel is actually very good. It's the userland libraries that suck.
Wasn't the big selling point of OpenGL that it was an open standard that was cross-platform? So much for that idea.
Every time I get a game, there's a short list of graphics devices supported on the box. I always hear about the development of this or that game, in terms of specific card features.
Heck, I even remember Carmack talking on Slashdot about things like "Nvidia's OpenGL extensions" and other features of specific cards that he was having to take advantage of.
Yeah, the new wiz-bang game will probably be able to limp-along on whatever you've got, but likely will only be optimized for a few special cards.
The video-card industry has gotten really awful. I hope that someone pulls it back in line and we get back on a standards track where card manufacturers contribute to the standards efforts and then work hard to make the standard interface efficient.
Hmm, not really, PS 1.4 is fairly different to PS 1.3. The architecture has changed. Many of the instructions are the same but they're applied in a different way.
Intel and AMD, etc...
Who gives a fuck?
Seriously, this is all quite a bit of petty whining about things that don't really matter. The difference will barely be noticeable except in hardware review screenshots, where it will become apparent that one square centimeter of the screen looks significantly better with one card than the other, if only for a split second, away from your focus.
--
E2 IN2 IE?
Next they will be racing to see whose card will require the biggest HSF combo...
~AC#42
I think he works into the wee hours of the morning though
Can we say 3dFX?? How long was the Voodoo series considered the "premimium gaming card" simply because most games had a couple of cheesy little effects (which were normally 2D) designed for the 3dFX engine? And you think that kind of practice will change? Of course not.
I'm out of my mind right now, but feel free to leave a message.....
Its much like the choice to support AMD's 3DNOW or Intel's SIMD instructions. If you use DirectX 8 or OpenGL, the issue is usually dealt with by the graphics library and the card drivers. Some bleeding edge features are initially only supportible by writing specific code, but that is the exception.
END COMMUNICATION
Because DirectX 8.1 (that supports ps 1.4) was developed with ATI. As for why someone might just buy an ATI board is (as far as it concerns me) because they have working DRI drivers, even though they aren't feature complete. My next card probably won't be an NVIDIA one.
That's pretty much why DX 8 exists. Sure, you wont have all the features of 1.4, but your 1.3 will be zipping along instead at full speed regardless. It wont simply be tossed aside to software-emulation mode.
Actually I learned them both at practically the same time. I knew C/C++ and wanted to learn how to program games, so I bought a book on DirectX and one on OpenGL. Granted one might have been better written than the other, but I honestly do have less hastles working with DirectX. But again, that's just IMO.
"I strongly urge both the faint of heart and the faint of butt to leave the room at this time."
- Strong Bad
That was insightful? Crikey.
OpenGL is written for a UNIX environment, DX is for a Windows environment
No. OpenGL is an API, with bindings on UNIX platforms, on the Mac, Win32, Linux, PSX2, XBox and so on. Pretty much all 3D hardware of note has an OpenGL driver.
OpenGL does NOT change very much, which has both good and bad sides, for example, this threads discusses pixel shading, which is a feature OpenGL does not natively supports.
OpenGL does change a lot. Hardware vendors are free to add functionality via extensions, something they cannot do with D3D without going through microsoft.
Also, it does support what DX8 calls pixelshading. It exposes it through a quite different interface to DX8 (see here and here), this much more closely represents what the hardware is actually doing.
But I don't think you need a codefork. Most of the games these days have controls for level of detail, etc. that you you can tweak for your desired performance/image quality trade-off. In this case, nudging down the pixel shader quality a notch could be a slider thing. The only question is whether game companies will bother to support 1.4 at all if only a very small subset of game buyers have a graphics card that can make effective use of it. Most likely what will happen is that a few games, especially ones with a little funding help from ATI, will support the new features. It's happened a number of times before.
Ooh, a sarcasm detector. Oh, that's a real useful invention.
Hehehe, don't be silly.
First of all, there are no pixel shaders in OpenGL. nVidia's extensions divide pixel shaders into Texture shaders, and Register Combiners. Which, basically mean, "Closer to the metal."
What does that mean? Well, Pixel Shader language is just a language. How the metal reacts is the same, if the semantics are the same.
However, *more importantly* ATI is going to *copy* nVidia's existing OpenGL extensions. That's the only way to compete - you must support existing features.
Don't believe me? They've already been doing this for years. Do a glGetString( GL_EXTENSIONS ); on any video card. Matrox, ATI, whatever. You're going to see a lot of NV_ (nVidia) specific extensions.
--
#include <malloc.h>
free(your.mind);
It's why Alpha and PowerPC died, yeah it was fast, yeah it was 64 bit. But it's useless to 99.9% of business software. Duh!
Who in their right mind would buy an ATI board anyways? appart from keeping the Mac platform alive for several years, have they done anything worthwhile? I thought they just played catchup to nVidia and 3dfx
Apparently you've never seen a ATI Radeon in action... A 64 Meg DDR version will easily outperform the fastest 3dfx cards and gives the GeForce2 GTS a run for it's money.
Dinivin
I was talking about straight from a major store chain, where Joe Sixpack generally gets his card. At pricewatch I could get an ATI Radeon 64MB DDR for under $150. But then I'd probably spend hundreds of dollars on cooling equipment so I could seriously overclock it without frying the damn thing. Anyway since I just realized my lawsuit money all goes into a trust which will take a while to break, I'll probably end up getting a GeForce 10 by the time I get my money :)
"
The Pixel Shader technology discussed here is in fact a part of DirectX8 (Direct3D) The issue isn't which API (in the general sense) but rather which version of a subset of an API.
Not being a 3D programmer, I don't know whether the claim of vast differences in code are true. Can anyone shed light on this?
Neurotic
Max Payne, for instance, was developed mostly with GeForce cards. This means that by choosing their standard developer hardware setup the developers are actually becoming hardware-dependant and are, if not frankly, saying that these cards are the ones that you should use to play their game.
This is really no news.
"Optimized for Pentium III" is what read on every possible piece of marketing material with the late Battlezone II.
I would make a conclusion that hardware dependancy of games goes far beyond than just the graphic cards. Use this processor to get better results, use this sound card to hear the sounds more precisely, etc.. It seems that game industry has big bucks, and every hardware vendor wants to make sure that when the next big hit comes, everyone needs to buy their product in order to get that +15% FPS out of it.
300Mz? Is that 300 mertz? What are mertz? I'm confused!
You should be able to get q3 going on that setup. Its not pretty, but it should work. I have a k6 300 with a nvidia riva128 64MB RAM. if you need help drop me a line at tucker_1968@NOSPAM.yahoo.com
Too bad that the ATI Radeon 64MB DDR has ALOT lower benchmark scores than my $50 Geforce2 MX 32MB in 90% of the applications.
Check ebay. You can get brand new Geforce3's for about $300-$325.
"Nvidia is here to stay. ATI well.... as long as people keep buying their overpriced crap - they will be around as well." Don't you have that the other way around?
If all these new wiz-bang features are implemented as extensions to the original API, then all the developer has to do (if he/she/they/it chooses to support the new features) is detect if the feature is available and add the code for it. If not, then just use the standard API.
Eventually, all the other manufacturers will catch up with the new features, and the extension will become integrated into the standard.
An analogy could be (think ye olde days) detection of a sound card, and only enabling sound if one is available.
If even that it too much work for the developer, then just dont support the new extension - the graphics will just look as pretty to the untrained (read consumers) eye.
But what's with all of these doom & gloom posts about fragmenting games for specific hardware? There's already a ton of features that may or may not be available in Direct3D or OpenGL depending upon your underlying hardware and driver. In Direct3D these are known as 'capabilities', in OpenGL they are 'extentions', in either API you can easily check for their existence.
Game developers are already doing this for features such as dot3 bumpmaping. Some boards support this feature in hardware, some don't, so your code is free to check to see if its available and use it if it is or ignore it (or fallback to some other method) if its not.
These shaders aren't really any different from that.. you write code to look at the shader version supported and either use 'new improved' shaders or 'older style shaders' depending upon the platform.
Yes, its more work for the programmer/artists to support a fallback mode, but that's the price of targetting cutting edge gaming hardware while still supporting users of older systems. It always has been and always will be.
As to the dramatic question of ATI vs NVidia, I'd say that NVidia has the early advantage due to the XBox. Considering how similar the XBOX graphics system is to the PC GeForce 3, its pretty much guaranteed that all of the major gaming engines being used to create most 'big' games these days will target GeForce3/XBOX features specifically, and features of 'other boards' (such as ATI) only as a bonus if there's enough time, or ATI lays down enough cash on a crossmarketing deal.
Of course, if Microsoft manages to flub the XBOX release to a staggering degree, all bets as to the future are off.
Eh, I don't know. I would compare this to the late 80's when computers were being developed by Amiga, IBM (and clones), Mac, Apple, etc...you had certain games/software that were available on a given platform and not the other, people just couldn't support multiple hardware configurations. As long as there are multiple companies producing competing products, is there really a reason they can't be compatible at the software level? Personally, I'd rather be able to look at a video card's features (memory, fps) than what games I'm going to be able to play with it.
--trb
...is that developers shouldn't HAVE to develop for specific hardware. I don't work in the game industry specifically, but I don't see how this is necessarily good for software in general, or graphics software in particular. This doesn't give developers "more choice in the hardware they develop for" It gives them less choice, because they have to decide how to allocate limited resources on a per-platform basis. When you have a common API, you're not forced to choose in the first place. That's why hardware specific features and capabilities ought to be abstracted-out into a common API. What these guys should do is come up with a dozen or so different kinds of high-level magic (e.g. water waves, flame, smoke,bullet-holes, whatever) that they can work with their pixel and vertex shaders, lobby Microsoft to get that magic incorporated into the DirectX spec, and then supply drivers that meet those specs by sending a few pre-packaged routines to the pixel/vertex shaders, rather than have game developers worry about this stuff directly. Or am I missing something?
I've got an ATI All-In-Wonder 128. I've tried a friends PC that has a GeForce card and I liked my ATI card over it. I don't know what the FPS rate is, but it flows smooth enough that I don't give a rats @$$ what the FPS is. I guess that is doing something worthwhile (plus the fact the card is cheaper than buying an addition video I/O card for converting home movies into AVI or MPEG)
Oh, but you forgot the fourth option:
Say screw'em both and develop for neither, just using lowest common denominator stuff, and spend the saved time on improving the other parts of the game.
If your game cant stand on its own using that... well, maybe, just maybe, it sucks?
Stanford have been doing some research on compiling RenderMan (pretty much the holy grail) shaders down to OpenGL. They can do it, in a lot of passes and with a couple of extensions.
I have heard that there is work ahead to do this with Pixel Shaders. Once Pixel Shaders become sufficiently general, all you need to do is re-target the back end of the compiler and you're set.
Henry
i don't do sigs. oops.
The differences in hardware are not that big of a problem for next generation graphics engines. The amount of features and flexibility available now necessitate using a higher level shader language as opposed to hardware specific api features. A well designed shader language can be compiled to take advantage of whatever driver features you have available, and emulate or ignore the rest.
We are currently able to target both pixel shader versions in DirectX, and hopefully soon in OpenGL. We are currently ignoring features not supported by the hardware that shader code tries to use. So rendering the shader surface on a GeForce1 will look much worse than on a full featured card, but we don't waste time emulating it.
For reference on similiar techniques check otu Proudfoot et al. 'A Real-Time Procedural Shading System for Programmable Graphics Hardware'. (Thought thats based on NVIDIA hardware, it extendable to new features as well)
But that doesn't necessarily mean that it will run at maximum performance in all conditions. Perhaps it is something like this:
This sig under construction. Please check back later.
Radeons have a better quality picture and the GeForce Ultras and up are faster with lower quality. I find that most cards are fast enough so I would buy the one with better graphics and save myself a couple of hundred. And 3DFX is dead now.
Their 3D capabilities have always been respectable. Not the TOP, but what's a few FPS between the Geforce and Radeon, especially when there's also a few hundred dollars difference. Heck, my Rage 128 still gets "good-enough-for-me" frame rates in Q3A (typically in the 60s).
The real unitron has Slashdot ID 5733, and needs to change his sig.
The world is filled with idiots.
every game must have hardware specific parts at least in the underlying OS - they are called (drumroll) drivers
True enough. I'm thinking more in a high-end graphics environment rather than a gaming one, where that situation wouldn't come up very often really--it's just a way of being lazy and putting multiple objects into one--not sure if I'm being clear.
But you're right, you would have to change those constants across a surface, especially in games, where i suppose surfaces might be merged together for optimization's sake.
As far as the RGB/normal channel goes, I think most bump mapping is sufficiently done with just a grayscale type image...much like a heightmap. Since bump maps inherently give the appearance of micro geometry, some accuracy that might be acheived through an RGB bump map can be set aside for the sake of ease and speed (even if the speedup is in development!).
Where are we going and why am I in this handbasket?
OpenGL is written for a UNIX environment,
No it is not. You talk about opengl like it is a product, but its really a standard.
There are many implementations of opengl (some official, some not official) and to say they are written for UNIX is nonsense. For example, I use Mesa all the time. (a non-official implementation) True, this runs on unix, but actually started life on an Amiga.
Does this mean that future games will be hardware specific?
Well, Not a long time ago, we just had 3dfx (and glide) as the only option for 3D games.
Even if there were other 3d hardware and other tecnologies (OpenGL and the rising Direct3D), glide (and 3dfx) was the default choice.
Write code twice? You obviously are new to gaming and programming. Have you heard of Direct3D, OpenGL, and Glide? These are API's that programmers use. For the most part the video card drivers will take care of the boards features. I doubt programmers will worry about pixel shader 1.3 or 1.4.
Sorry, but we are going to need to use the bullshit filter here.
OpenGL and DirectX don't compete with each other, the only comparison that you can really draw is between Direct3D (a small component of DirectX) and OpenGL. You can use OpenGL and DirectX in the same project, and many games do. There isn't anything better than DX when it comes to an interface for i/o devices, etc. on the windows platform. But as far as OpenGL and D3D, they are directly comparable, and there are minor trade-offs when you choose between the two.
>OpenGL is written for a UNIX environment, DX is for a Windows environment.
Okay, what is the point here? OpenGL has long ago been ported to the windows env, and it runs fine, even better than on UNIX (for most workstations) because it has direct access to the hardware layer, UNIX (until very recently) had to go thru the X protocol (nice and portable, but slow).
>OpenGL does NOT change very much[....]
True, the core of OpenGL doesn't change very much, but this is very good. With every release of D3D, the API changes drasticly, so you must relearn it every time. OpenGL on the other hand, doesn't change (much), but it has extensions that make it dynamic. The pixel/vertex shading on OpenGL has the same features that the D3D version has (supposedly it is better if you believe opengl.org). So, by design, it doesn't matter if OpenGL "natively" supports shaders, the API was designed to be flexible and extendable.
I am not saying that since OpenGL is "open" and extensible, that it makes the choice of what to use a no-brainer, it is far from that. Some choose on or the other for many reasons, sometimes political/ideology, sometimes monitary (MS paid big bucks to early adopters of D3D), etc. It is by far an easy decsion. The only good part about it: it doesn't really matter; you can do anything in one that you can do in the other, if you know the API well enough. And that includes pixel/vertex shaders, etc.
room101 -- how much can you stand before they break you?
(they always break you eventually)
Err, maybe 3) doing it in ROM wouldn't be fast/good enough? If you're upgrading features in flash ROM, you might as well just do it in software. If the chip can be made to do something, then the latest drivers should support it; if not, nothing will make the chip suddenly add new HW capabilities.
OpenGL is an open standard, but the source code isn't open--there isn't even any source code! It's just a specification, then each individual vendor must implement according to that specification. For example, Nvidia makes an OpenGL implementation that is accelerated by their graphics cards, MS makes an implementation that is software only, and 3dfx made a mini-implemenation at one point.
I think maybe Mesa is open-source? Not sure. But the actual implementation inside the vendor's API is whatever they want, and is probably closed (see Nvidia). The only requirement is to follow the specification and the rendering pipeline properly (so transforms/shading/etc will be applied the same through any OGL implementation).
Where are we going and why am I in this handbasket?
"Does this mean that future games will be hardware specific?"
Well, yes actually. Haven't they always been? We've had 3Dfx versus PowerVR, Glide versus OpenGL, Direct3D versus OpenGL...
It goes all the way back to floppy versus CD, Win3.1 versus Win32s, 16 colours versus 256...
Every game has system requirements (even if your only talking about a scale like processing power), and always has done. I still remember the shock when I realised I'd need to get a tape drive to complement the disk drive in my CPC664, just to play some of the games!
why use something like direct x when opengl is an open standard with sourcecode and specification open to all?
It's scary that so many people are relying on M$'s proprietary graphicx technology. at any time they could discontinue it, or change the API in such a way to make all games broken. I wouldn't put it past them.
subatomic
http://www.mp3.com/subatomicglue
music - http://www.subatomicglue.com
Have you ever used either one? IMO DirectX is a lot less of a pain in the ass to code with. It also supports more than OpenGL. Plus, most game designers aren't too concerned with other platforms seeing as the majority of their market runs Windows for gaming.
"I strongly urge both the faint of heart and the faint of butt to leave the room at this time."
- Strong Bad
I don't care about reducing the pass number.
The framebuffer is only 8 bits per channel at most, while pixel shader hardware has higher internal precision per channel, keeping the math in the chip as well as saving read-back from the framebuffer saves bandwidth AND improves quality.
True per-pixel phong shading looks nice, but then all they seem to do extra is allow you to vary some constants across the object via texture addresses
Pixel shaders enable arbitrary math on pixels, it isn't a fixed function phong equation with a few more variables added. Maybe an artist wants a sharp terminator, cel shading, a fresnel term, or wants a anisotropic reflection.
All these are performed using 4D SIMD math operations, just like they were in 1.1: Add, Subtract, Multiply, Multiply-Add, Dot Product, Lerp, and Read Texture. But texture reads can happen AFTER more complex math, before there was only a few set math ops possible during a texture read. It's all in the DX8 SDK, which anyone can download.
Well that's great, but texture upload bandwidth is can already be significant bottleneck
"texture upload?" This isn't a problem, with DX8.1 cards having 64mb of memory for texture, why would developers be uploading textures per-frame? If you are talking about texture reads by the pixel shader, this also isn't a bottleneck. Reading geometry from the AGP bus is the bottleneck.
Artists won't draw bump-maps.
Sure they will, (heck, I do) look at any x-box game, they are all over the place. They won't draw in vectors-encoded-as-colors, they'll draw height maps, which would be converted off-line into normal maps.
I don't think ATI have a PS 1.0 implementation, someone please correct me if I'm wrong
1.4 hardware can support any previous version, including DX7 fixed function blend ops.
P.S.
I design hardware for this stuff, I do know what I'm talking about.
You mean like when Netscape and IE were competing?
Were?
HTML rendering between the two browsers haven't exactly meshed.
Most sites are designed around IE 5, but I see very few problems with Mozilla 0.9.x aka Netscape 6.1, except for some Really Stupid Sites(tm) that use VBS instead of ECMAScript. HTML is not designed to be a pixel-perfect layout language; it's a structural markup language. For layout use CSS, which supports pixel-perfect positioning and is supported in current versions of IE (5+) and Netscape (6+). Except for a few glitches in IE such as inserting an extra 3px of left and right margins into the CSS box property float: and treating a newline before </div> as whitespace (contrary to the SGML spec), Mozilla and IE look pretty much the same.
I agree that Netscape 4.x is sucks. Users can't turn off CSS (cascading stylesheets) without turning off CSS (client-side scripting), and the buggy implementations of the parts of CSS it does support will only make sites look ugly.
Will I retire or break 10K?
is the level of compatibility there is. PS 1.4 is really just an extension of 1.3 -- it adds more instructions to the same basic architeture. If you write for GF3, it'll run just fine on the R200 or whatever. If you write for R200, it'll run just fine on nVidia's next part, even though it supports PS1.5. It's all back-compatible, I believe. It's sorta like the deal with two texture units vs three (GF2 vs Radeon) or single-pass quad texture with two units (GF3). Write for the lowest denominator you care to, it'll work fine on all the newer stuff.
I want to be able to try all games regardless of what hardware I have. If such division will occur we'd all be really pissed off. The developers and the customers! Heck, I'll have to get a custom motherboard that houses two graphic cards slots! Plus I'll have to buy both of them! What a pain! What a Pain! Somebody kill the whores! Competitions good my ass! If you cant check what the other side has its like two fucking monopolies, what the hell do they think they're doing. Dont you rember when sound card where the pain in the ass issue. Because corporate whores like customer loyalty, they'll chain you up in the store. We really needed that. Like we allready didn't get enough shit with John Romero, Massively Multiplayers Offline Pains. We needed to get off with a good start with incompatible video cards. I tell you what ! If those fuckers go ahead I'll buy a Playsation !Screw them all !They can kiss their dollars good bye!
Most of the DirectX -> OpenGL ports aren't that great. UT, for example, runs beter on Windows than on Linux. (Given that the lead programmer for the project has publicly dissed OpenGL, I'm not surprised). Plus, the ones that are there are ported are from pretty substantial companies. Besides, are you saying that more DirectX games is a *good* thing?
A deep unwavering belief is a sure sign you're missing something...
Obviously someone who has now clue how DirectX is designed! The DirectX team doesn't get led around by NVIDIA. The vast majority of the new features in DirectX get there because game developers want them. MS doesn't go into a room with NVIDIA and then send a DirectX release out. Instead, hardware vendors talk about what features they are thinking of putting in, software developers then ask for features that should be put in, and it goes back and forth until another DirectX comes out. Microsoft has some incredibly arrogant and stupid practices, but for a long time, I've had a hunch that the DirectX team wasn't part of the core MS culture. For example, they don't go to absurd lengths to make every single piece of a code a full-blown COMponent that can be remotely marshalled. DirectX's implementation of COM is so simplistic, I'm sure they got heat for it from the abstraction-obsessed Win32 guys.
A deep unwavering belief is a sure sign you're missing something...
My BIOS is flash upgradable. My modem is flash upgradable. Is there a reason why my video card can't be flash upgradable? I suppose 1) it would cost too much to put that much flash ROM on the board, or, more likely, 2) then you wouldn't be forced to buy a whole new card that supports some new standard. As for (2) I would say most people inclined to buy a new card now would do it anyway, for faster speed or more memory, which can't be done with such an upgrade. Even if the card has slots for extra memory, there's always a limit. And (1) a quick poll: how many would spend an extra $50 (to pull a number out of the air) on a card that won't go obsolete just because they just released DirectX 9?
Imagine a Beowolf Cluster of THESE!!!
Yeah, Nvidia releases an updated driver set every few weeks, to make their code optimized for newer games/chips. Damn them for trying to make their product better all the time, you fucking moron.
You are boring, you know? (And moderators couldn't spot a troll even if they were standing under a bridge) We already went over this at least twice, and you are bringing out the same dried up arguments again. You still haven't said what prevents NVIDIA and ATI and the ARB from sitting at the table and coming up with an uniform API for such an extension. Last time your cried, just like know, that the "hardware" is too different. Bullshit. Direct3D is no better. You just have to decide on a freaking API and let the vendors implement that. Read elsewhere in this discussion about programmers not supporting DirectX N yet. How's that better than OpenGL's extension mechanism? It's not better. You still have to rewrite stuff. The only difference is that some companies that will remain unnamed have placed stupid patents arround interfaces, not features, interfaces and other companies have to come up and implement their own. If you want to bitch at someone, bitch at the companies that patent interfaces and stop trolling about OpenGL not supporting current technology.
I think you're thinking of OpenGL.
two points:
I've programmed both, and I find DirectX to be *much* more powerful. For example, in DirectX you can render to a texture. Unless you dig up some SGI extension, you can't do the same in OpenGL. The problem is that while the core DirectX feature set will work on any card, specific extensions won't. The reason that DirectX doesn't have the same problem is that MS actively integrates new features into the core set. Meanwhile, OpenGL hasn't changed that much since 1.1. Let me give you a concrete example. Take this pixel shader thing. NVIDIA has a pixel shader implementation, and ATI has one. On OpenGL, they are exposed through different extensions. Thus, a developer must code for both extensions. In DirectX, they just have to write to the Pixel shader API. If Matrox comes along, they support the DirectX pixel shader API, but release a matrox-specific OpenGL extension. OpenGL developers now have 3 APIs to contend with, DirectX developers still have one. Eventually, the ARB gets around to making pixel shaders a standard extension, but in the meantime, the next big feature has come. Lather, rinse, and repeat.
A deep unwavering belief is a sure sign you're missing something...
> This is good for software because developers
> will have more choice in the hardware that they
> develop for.
Bullshit. That path leads straight to the darn old days where every game was board-specific.
> ATI doesn't support super-duper-
> gooified blob rendering? Ah, NVidia does in
> their new Geforce5. No worries, ATI will have to
> support it in their next generation boards.
Wrong, this should be "ATI doesn't support super-duper-gooified blob rendering? Idiot, why did you buy that board in the first place? But no worries, NVidia has the new Geforce5, just spend 300+ bucks an get one. Unfortunatley, this will break application Y as only ATI has the new M.O.R.O.N.-rendering which is required by Y. But hey, such is life!
> A bipolar competition is ALWAYS good for the
> consumer.
This is not "bipolar competition", this is "fragmentation".
C. M. Burns
Looks like we're back to the days of yore, when you (the developer) got to choose to support a specific card (3dfx or the others that didn't survive) because there was no DirectX support... because there was no DirectX. Then you (the consumer) got the shaft if you didn't have the right card, unless the developer later came out with a binary that would support your card's features. But if it wasn't an uber-popular game, this usually didn't happen.
So why are Nvidia and ATI forcing developer to go back to the stone age of accelerated polygons? Oh that's right... Me likes pretty picture.
SGI released the reference implementation under a MPL variant type license back last year. Right along with the GLX implementation.
It's Open Source.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
But [the PowerPC architecture is] useless to 99.9% of business software.
Are you counting Microsoft Office for Macintosh computers as part of that 0.1% of business software available for PowerPC-based computers?
If the GNUstep developers get their butts in gear, porting Mac Cocoa apps to GNU, BSD, and UNIX platforms will be a piece of cake.
Will I retire or break 10K?
As someone that has Radeons at home and work, and I find that the image quality is better than Nvidia cards I've used (TNT and GeForce 2 MX, both from Hercules). Also, the All-In-Wonder line of cards is very nice if you're looking for that kind of functionality.
Being that the Radeon 64MB DDR card is only $200 while the GeForce 3 is $400 could have something to do with it. ATI is a good card for people who want a great card but don't want to spend too much money on it, GeForce 3 is for performance junkies (me) or rich people who want bragging rights (not me unfortunately). For the money ATI makes a fine product.
:)
But then again my next card will be a GeForce 3
"
This would be done more through code than by an artist
True, but what you go on to say is that the Phong constants are indeed constant across a surface - then ATI saying 'oh look - you can programatically change ka and ks' becomes useless because you won't need to change it. This assumes that you are working on a one material : one texture map correspondance. If, like their examples, you have say metal and stone on one map then varying some constants becomes necessary. But then this requires another map (or even two) at close to the resolution of the source diffuse map. You can do per-material ka/kd/ks now with no troubles at all. Per-fragment is a bit more involved.
Why not? They draw textures now,
I'm not an artist, so I don't know. But I don't know that the tools are there for them to draw bump-maps, and you have to admit that using an RGB channel as a three component normal vector can't be the most intuitive way to draw things. Much better to procedurally generate, like you say.
Henry
i don't do sigs. oops.
is 1.4 backward compatible? 1.3 and 1.4 are a direct3d thing, what about opengl?
so what if we all just use opengl instead? open standard etc... would definately worth it to pressure the ARB to extend their spec to shaders.... NVIDIA shader extensions would have to be uses cause the opengl ARB is very slow in adopting new standards (like pixel shading)
subatomic
http://www.mp3.com/subatomicglue
music - http://www.subatomicglue.com
missing features (32-bit color and large texture support being two of the most blatant omissions)
3dfx cards supported 256x256 textures. Are you talking about a texture larger than that for a single polygon? If you're not, you can simply use multiple textures for one object, as in the 8- and 16-bit world where a sprite was made of several smaller tiles.
Will I retire or break 10K?
First of all, a direct link to ATI's SmartShader tech introduction.
.plan of his if you want to read more.
I have a few disparate thoughts on this subject, but rather than scatter them throughout the messages I'll put 'em all in one place.
ATI are attacking what is possibly the weakest part IMHO of DirectX 8 - the pixel shaders. Pixel shaders operate on the per-fragment level, rather than on the per-vertex level vertex shaders which were actually Quite Good. The problem with Pixel Shaders 1.1 is that, to paraphrase John Carmack, "You can't just do a bunch of math and then an arbitary texture read" - the instruction set seemed to be tailored towards enabling a few (cool) effects, rather than supplying a generic framework. Again, to quote Carmack, "It's like EMBM writ large". Read a recent
If you read the ATI paper, they don't really tell you what they've done - just a lot of promises, and a couple of "more flexibles!", "more better!" kind of lip-service. I don't care about reducing the pass number. Hardware is getting faster. True per-pixel phong shading looks nice, but then all they seem to do extra is allow you to vary some constants across the object via texture addresses. Well that's great, but texture upload bandwidth is can already be significant bottleneck, so I don't know for sure that artists are gonna be able to create and leverage a separate ka, ks etc map for each material. (I did enjoy their attempts to make Phong's equation look as difficult as possible)
True bump-mapping? NVidia do a very good looking bump-map. Adding multiple bump-maps is very definitely an obvious evolutionary step, but again, producing the tools for these things is going to be key. Artists won't draw bump-maps.
Their hair model looks like crap. Sorry, but even as a simple anisotropic reflection example (which again NVidia have had papers on for ages) it looks like ass. Procedural textures, though, are cool - these will save on texture uploads if they're done right.
What does worry me is that the whole idea of getting NVidia and Microsoft together to do Pixel Shaders and Vertex Shaders is so that the instruction set would be universally adopted. Unfortunately, ATI seem to have said "Sod that, we'll wait for Pixel Shader 1.4 (or whatever) and support that." I hope that doesn't come back to bite them. DirectX 8.0 games are few and far between at the moment, so when they do come out there'll be a period when only Nvidia's cards will really cut it (I don't think ATI have a PS 1.0 implementation, someone please correct me if I'm wrong) - will skipping a generation hurt ATI, given that they're losing the OEM market share as well?
I dunno, this just seems like a lot of hype, little content.
Henry
i don't do sigs. oops.
The Pixel Shader technology will be backwards compatable as far as the DirectX 8.0 API is concerned. Imagine that. Microsoft using an API to bring software developers together across various hardware choices.
Sadly the situation is not unified in OpenGL yet, with both Nvidia and ATI providing their own separate extensions for accessing pixel shaders. One can only hope that its not too long before we can get an ARB-approved extension that covers the capabilities of both cards.
Of course, since it will be quite a while before games publishers can rely on people having a GeForce3 or Radeon2, I expect pixel shaders will only be used for optional flash for quite some time. If people are doing bump mapping and phong shading and so on using them, they'll certainly have the option to run in a slightly less attractive mode for those with lamer hardware.
SDL is the closest thing. but maybe not what you mean exactly.
Who would buy an ATI board? Well, I would. Not to fan the flames, but...
I've owned a few video boards over the years, and have been constantly looking for a board that does both good 2D and 3D, and up until now, I haven't really found it. My Matrox Millenium (from about four years ago) did excellent 2D, no 3D. My Voodoo Rush had decent 3D for it's time, but the 2D sucked (blurry image, and this was without a passthrough cable). That got replaced (after switching back to the Matrox) with an nVidia TNT Ultra. The 3D was pretty good, but the 2D was a bit blurry (I dumped the TNT when I spoke with nVidia and confirmed that they were not producing Open Source Linux drivers - I don't like liars too much). So, the TNT got replaced by a Matrox G400Max Dualhead - excellent 2D, the 3D was lacking somewhat.
Just this weekend I purchased an ATI Radeon All-In-Wonder for $250. An excellent deal, since the 2D is nice and crisp, and the 3D rocks (for my purposes anyway). And, in 32-bit mode, it almost equals the GeForce 2 in performance.
Plus, this board has excellent multimedia. I love the TV tuner, it's so much better than the Hauppauge I used it to replace, plus I can hook up all sorts of video input devices and record from them. Excellent on the fly MPEG compression. And of course, we can't forget the hardware DVD playback, which is outstanding.
Also, like other people have said, let's not forget that the GeForce cards are still quite expensive.
A friend of mine was telling me three years ago that ATI made great cards, and I scoffed at him. Looks like I owe him an apology.
So, in conclusion, who would buy an ATI? How about somebody who wants a full-featured card that gives outstanding image quality. If you want pure frames per second, then buy your GeForce with it's blurry, dim images, since they screw around with the palettes and overclock the chips to get those numbers that hardcore gamers seem to like so much.
-- Joe
The Pixel Shader technology will be backwards compatable as far as the DirectX 8.0 API is concerned. Imagine that. Microsoft using an API to bring software developers together across various hardware choices. Now only if they could get Win32 cleaned up and a decent kernel, then I'd THINK about purchasing that OS. Although I'm not saying that there won't be card specific code, but as far as Pixel shader tech goes, as long as the drivers are DX 8 compatable, there's no problem with code for one card not working on the other. Besides, most systems sold in the last year have 810/810e/815E chipsets and stuck with those old i740 Starfighter chips.
Non impediti ratione cogitationus.
hmmm, first let me say I'm getting a GeForce three rather than an ATI Radeon for my new computer, so I'm not really biased.....ATI Radeon DDR 64MB, $200........Geforce 3 DDR 64MB, $400........light-speed memory architecture, priceless. ATI isn't over-priced, they are very reasonably priced, if I wasn't a total performance junky I'd be getting a Radeon instead of a GeForce 3 because the Geforce 3 is definately overpriced.
"
Remember the past?
3DFX only games came and went, then again so did 3DFX.
Yes, you can code the Geforce3 "Pixelshaders" though a addon module u can get at www.opengl.org
This will ONLY work on Geforce-3 maschines though..
This story actually gives me a chance to bitch about OpenGL! None of these new features are a part of the standard OpenGL. "Extensions! Extensions!" you shout. However, due to the differences between hardware, you'll end up with ATI and NVIDIA versions of the same extensions, since the ARB won't touch such new/untested features. This makes sense in the pro segment, where hardware is slow to evolve, but in the consumer segment, it will make the API seem antiquated. Plus, the extension mechanism isn't even suited to such uses anyway, since it was meant to expose features, not radically different methods of rendering. And yes, these are radically different. Part of the reason that the GeForce3 has 57 million transistors is that it has to have a standard geometry engine for DirectX 7 and a new vertex shader-based geometry engine.
In the long run, this will make OpenGL unpopular with game developers. Sure guys like Carmack and afford to suck it in and develop to all the extensions, but for a small development house that wants to make an impressive game, they'll go with DirectX to save themselves the development costs. And when they do, there goes the possibility of a native Linux port.
Now there are two solutions to this. First, the ARB could get off their asses and start integrating extensions. This could be problemetic for the pro segment, which wants a stable API. On the other hand, the ARB could fork OpenGL into a pro and a consumer version, but that results in two incompatible APIs. I think Microsoft is doing the right thing by supporting the latest featuers (in essense, baiting all the hardware manufactuers to integrate these features) but it *does* make DirectX unsuitable for pro use.
A deep unwavering belief is a sure sign you're missing something...
The Radeon is cheaper than GF2s, always has been. The value cards are similar prices, but the crappy MX cards can't compete with a Radeon LE. Your attitude stinks towards technology, you can't even accept the fact that a new (old) company is coming into 3d graphics and is doing it much better then Nvidia. Why spend all that cash on a GF3 card that has the worst looking picture of any vid card on the market? It isn't hard to get speed when the processor leaves out any and all detail the image had. If ATI wanted to compete with the GF3 they could have released another MAXX card, it would have put the GF3 to shame, and still had been cheaper. The only thing wrong with ATI right now is that their drivers are slower than they should be, they are very stable, but can't compete in win2k. Nvidia's drivers on the other hand have countless revisions and versions, some work on some computers... great way to make a product.
HehE. The two libraries you named are proprietary (3DFX's Glide and M$'s DirectX)... the standard is OpenGL.
Actually, some video boards are designed specifically for one graphics API. The SGI Oddysey series have OpenGL implemented in hardware.
What comes to ATI vs. NVidia. I've always resented ATI, and NVidia has always had better cards. But my opinion has started to change to favor ATI. NVidia's refusal to release any open specs to create drivers for their cards is blasphemy. At least ATI is open about their sucky hardware (Radeon is actually quite nice).
The World's Best Music!
Well, at least they aren't price gouging on Geforce 3 cards. I mean, they're ONLY 300 some dollars. So what if it's more expensive than the motherboard and the CPU? Just buy the ATI card AND the Nvidia card and then swap them out in between games. I mean, if you have to reboot to go into windows to play a game anyhow, you might as well do a hardware swap while you're at it! Now if the motherboard manufacturers would just get up to speed on that hot swap AGP slot technology that I've been looking forward to!
Prevent linux based DDOS's!
http://linux.denialofservice.org/
yeah, but it's at the OS level now. Thank god. While ID's a nice company and all, i don't want them writting drivers for my video card.
Non impediti ratione cogitationus.
Didn't nVidia -DEVELOP- DX8 along with microsoft? why then, do they only support ps 1.3 whereas ATI supports ps 1.4?
Who in their right mind would buy an ATI board anyways? appart from keeping the Mac platform alive for several years, have they done anything worthwhile? I thought they just played catchup to nVidia and 3dfx
The opinions in this post are ficticious. Any similarity to actual opinions, real or imagined, is purely coincidental.
sure, it's legitimate but it's also redundant. take this advice.
i was angry:1 with:2 my:4 friend - i told:3 4 wrath:5, 4 5 did end.
i was 1 2 4 foe i 3 it not 4 5 did grow
Does this mean that future games will be hardware specific?
Well, no. Game developers do prefer the state of the art, but common sense dictates that you target something that is exists and is popular.Comparisons to browser market shares are appropriate here: When Internet Explorer became the norm, web sites tended to take advantage of IE's superior DHTML and DOM support, but developers have mostly strived to make pages backwards-compatible with Netscape and other less capable browsers. After Mozilla caught up, most web sites still aren't targeting it specifically.
Keep in mind that, according to the article, the board does not currently exist. One's desire to write custom code for a nonexistent board is contingent on several factors, such as the manufacturer's present and potential future market share.
Case in point: Developers used to target Glide, 3Dfx' low-level rendering API. Games these days don't bother: 3Dfx has DirectX support, the effort to squeeze a few extra FPS from writing "straight to the metal" usually isn't worth the time and money, and most importantly, 3Dfx is dead. Its user base is dwindling, and there is no incentive to use the (generally) hardware-specific Glide over the generic DirectX.
As for the development effort: As a former game developer and Direct3D user, I agree with the claim that when targeting both shaders, "they'll have to write more code". A few hundred lines, perhaps, for detecting and using the two extra texture shaders per pass. It's not like it's a new, different API.
Yes, you are.
I'm surprised at the lack of comments about platform support for these new features.
If you own a GeForce3 *today*, you can access all of the hardware's features on Linux, Windows and Mac through OpenGL.
I don't know about ATI's Mac support, but under Linux the Radeon drivers still don't support T&L, cube maps, 3D textures or all three texture units. The card has been available for well over a year, but the driver only enables Rage128-level features. How long do you think it's going to take for the pixel and vertex shader capabilities to make it into the Linux drivers? And what about the Mac?
I've been extremely impressed by the balanced approach NVIDIA has been taking: they do a great deal of work on D3D 8 with Microsoft, but they simultaneously create OpenGL extensions for interesting hardware features, allowing Windows developers to target OpenGL, and also allowing alternate plaforms to access the new features. Their OpenGL support surpasses any other consumer grade hardware manufacturer's, and they offer better cross plaform support than any graphics company.
The safest choice any game developer can make is NVIDIA.
-Mark
"Good people drink good beer"
Every game on the market says it right on the box: Mac or Windows PC, 300Mz or 500Mz processor, 64MB of RAM or 128MB of RAM, 3D hardware required or not... And then, of course, there's the console games which run on one, and only one, hardware configuration. Face it, games have been hardware-specific for years. This is merely the next level.
I thought we where through with the "this game only works on such and such board or this game only works with so and sos proprietary graphics library" when 3dfx got gobbled up and laid to rest by nvidia. But no, here we go again....
ATI needs to take their head out of their asses and work with Microsoft instead of work against them. NVidia will power XBOX graphics.
ATI has already driver problems with windows 2000.
I own a ATI Radeon 64MB and DVD acceleration is not supported in windows 2000 even though it works in 95,98, and ME.
As a senoir student in University and someone looking very serioudly at heading toward the gaming industry for a career, I'd love to work on a glue project for this and other problems in the video card industry.
Think about it... if you could make a 'glue'-like API for both these standards and many more problems like it, developers would probably be very interested, don't you think?
If you wanted, you could even go as far as supporting hardware-specific routine alternatives...
I know this has to have been attempted before, so can anyone tell me what happened? I mean, DirectX is MS controlled, OpenGL is controlled by a select group of leading tech companies, and Glide was very 3dF/x proprietary... all of these only lead consumers and game developers to one thing... a big choice when buying your VC and games/software for your VC/PC combination...
No, not really if it is structured properly in the first place. Besides, games are never write once run anywhere, there are always code forks to get games working on as many different varying platforms as possible anyways.
No Comment.
they using a standard like direct3d or glide or (insert favorite library here). Seems that we are reverting back to the days of hardware specific code rather than library specific code.... is there not anything out there that is on par with the performance of these new cards?
I lost my concept of community when my community lost all concept of me.
You mean like when Netscape and IE were competing? In case you haven't noticed, HTML rendering between the two browsers haven't exactly meshed.
Where are we going and why am I in this handbasket?
You had to pick which sound card you wanted to lock your life into. Adlib? SoundBlaster? ELS? I can't hardly remember anymore.
Sound Blaster became popular partially because it could run all the old music software that used the Adlib's Yamaha OPL2 synth.
ATI and nVidia *are* arguing about standards right now.
So why aren't they arguing about a standard OpenGL extension? Why does it have to be Wintel and DirectEcch? Don't they know that NVIDIA already has a near monopoly on Wintel gaming <cough>Xbox</cough>?
Which hand has a monopoly on QWERTY?Will I retire or break 10K?
Who gives a flying fuck about polygons per second or shading on a fscking video card that needs another fan and heat sink? Thatz for 14 year old l4m3rz g4m3rz.
I just cant believe you are arrogant enough to compare a Geforce 3 to a first gen ATI Radeon. Compare Geforce 2 prices to a Radeon. When the Radeon 2 comes out feel free to compare to the Geforce 3.
Gam
"Flame at Will"
I love idealists not because I am one, but because they make life bearable for pragmatists such as myself.
I'm one of the developers of next version of the Genesis3D game engine. We ran into this problem of what do we support on an engine that is to push the latest cards to the limits.
The simple answer was to write the common code in the main part of the engine then write multiple drivers for the engine that would use different features on different cards. This way we could push both cards and optimize the code for each card to get the best performance. Of course this is no easy task either.
This is a pain but if you wish to push what each card can do, you have to write code for each individual card or maker of the cards (IE a nVidia driver and an ATI driver then a 3rd driver for everything else that the other 2 don't optimize and run on).
The Geforce2 MX blew ATI out of the water when it came down to price points. Not a single card in the Radeon lineup can compete with the low price power that the GF2MX card offers. Period. End of discussion.
Not only that but ATI has a history of SHODDY driver support - they are slow to embrace new OSes and standards - and there cards ARE overpriced. Comparing a Geforce 3 price to a Radeon price isnt fair folks - the Radeon gets raped on performance and features. Compare the GF2MX of GF2GTS to the Radeon - at least level the playing field.
Gam
"Flame at Will"
I love idealists not because I am one, but because they make life bearable for pragmatists such as myself.
If they want to support both NVidia's GeForce3 and the upcoming ATI board (which will probably be called the Radeon 2), they'll have to write more code.
Or they could just write Open Source code. Then it would be eternally compatible with everything given enough developer interest.
As a sidenote, can anyone comment on where OpenGL stands in relation to this "PixelShader(tm)" thing in DirectX?
After reading people extoll the virtues of Direct X as an API and bemoan the limitations of OpenGL, and given the fact that none of the cross-platform direct hardware access API's seem to have gathered much support yet, would it make sense to attempt implementing an open source Direct X compatible API to make it easier for game writers to port their code?
I am not familiar enough with Direct X to say whether it suffers from the same tight Win32 integration (read dependence) that other Microsoft API's do.
Would it even be legal to attempt this? You might even have better luck getting manufacturers to release specs if you could leverage some of the Direct X name recognition.
Someone could even come up with one of those snazzy recursive acronyms for the project.
Please be merciful if something like this is already in the works and I failed to see it in my cursory Google scan. In return I promise to go drink some caffeine to fight the after-lunch dull wittedness.
The standard lighting model in DOOM, with all features enabled, but no custom shaders, takes five passes on a GF1/2 or Radeon, either two or three passes on a GF3, and should be possible in a clear + single pass on ATI's new part.
It is still unclear how the total performance picture will look.
Lots of pixels are still rendered with no textures at all (stencil shadows), or only a single texture (blended effects), so the pass advantage will only show up on some subset of all the drawing.
If ATI doesn't do as good of a job with the memory interface, or doesn't get the clock rate up as high as NVidia, they will still lose.
The pixel operations are a step more flexible than Nvidia's current options, but it is still clearly not where things are going to be going soon in terms of generality.
Developers are just going to need to sweat out the diversity or go for a least common denominator for the next couple years.
I fully expect the next generation engine after the current DOOM engine will be targeted at the properly general purpose graphics processors that I have been pushing towards over the last several years.
Hardware vendors are sort of reticent to give up being able to "out feature" the opposition, but the arguments for the final flexibility steps are too strong to ignore.
John Carmack
Writing a shader, especially one that requires multiple passes can be a hassle; that is why there are higher level shading languages and compilers being developed. This one for example is worth checking out, if only for the demos.
There are 10 kinds of people: Those that understand ternary; those that don't; and those that don't care.
John Carmack wrote the orignal GLX support for XFree 3.3 that all linux GLX support is based on. :)
I think the answer to that question is to rate just how flexible the current API's can be. The two contenders (and please, let's try not to make MORE!) are OpenGL and DirectX. Nvidia has ressurected the venerable Amiga's idea for a fully programmable graphics processor, and I presume that ATI's post-Raedon chip will be similar.
So, which API allows one to most easily get at the GPU's coding power? How many hooks does the high level api have into the gpu's engine, and can the gpu get data from the api on the fly?
If anyone out there has worked with them, I'd be curious to hear what's present or lacking from the standards, and if it's feasable to try and write GPU level code abstractly.
The developers could always follow the same path they currently do: develop for a medium-level (or just less than top-level) API and add extensions for cards that support them.
I got my Linux laptop at System76.
For example: Final Fantasy X only runs on PlayStation2, Shenmue and Phantasy Star Online only run on Dreamcast, and without an emulator you can only play Zelda games on Nintendo hardware. Programmers have been tossing portability to the wind for years. If you don't believe me, try running Quake3 on a Sparc or Alpha CPU. Speaking of Quake, the first Quake, AFAIK, was optimized for 3Dfx Voodoo display adaptors. The current ATI vs. nVidia flap is business as usual.
******
"What makes you think I care about your opinions?"
I'll bet the farm when the Radeon 2 comes out it will be cheaper than the GeForce 3 was when it came out. Also the 1st generation Radeon isn't that far below the GeForce 3, most gamer sites I've seen reccomen getting the Radeon over the GeForce three or waiting for the price to go down, which of course is moot since I am getting a GeForce 3, I just think saying ATI card are overpriced crap is a little extreme and a lt inaccurate.
"
the more things change, the more they stay the same...wasnt this what directx and opengl were supposed to fix?
Riiight.. Because coding for linux so 7 people living in their parent's basements can play the game makes so much sense.
Riiight. You're just used to coding for Windows- it's easier for you because you're inured in that style of coding.
I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
The big difference is that nVidia is selling GPU's to other board manufacturers, That's what killed 3dfx. ATI is doing the same damn thing! More MFG's = more cards = more market share = games being written for the masses.
I wonder what pixel shader the KYRO III will use. Regardless, it will be in the fray with the two aforementioned companies to be sure.
"game developers will have to choose which Pixel Shader to support in their code. If they want to support both NVidia's GeForce3 and the upcoming ATI board (which will probably be called the Radeon 2), they'll have to write more code."
:o).
:o)
DOOOOOOOH, THAT JUST COMPLETE C-R-A-P...
If one chooses DX8.1, the GeForce3 will just not have hardware support for pixelshaders anymore. And DX will automatically implement this through software instead, this is the way DX ALLWAYS have worked(doing stuff thats not supported in 3DHardware on the main CPU).
MAny people will use the shaders, without ANY HW support. I for example, use a Geforce-2 to play MaxPayne, which works great. Even the PShaders, and thats without ANY support for PShaders. My nifthy ATHLON 1000 does em for me.
But Offcource, some will could argue that the Geforce-3 is so important that it would be smarter to use 8.0 over 8.1 , so the GF3 would still have HW support for the PShaders. But Seriusly, thats like saying DX8 is the last DX. Meaning, newer cards will offcource support the newest version of DX(8.1?
Ballew from Nvidia also seems to be "reaching" a bit, and i quote from the article: "They're claiming that six textures is better. It'll only be better if it's faster."
It would be extremely naive of Ballew to belive(/hope?) that ATI are such fools of creating DSP that they would be around tre times less effecient, thats like saying. "We are the only ones who can do math".
Aaaand one last Ballew quote: "It's hard to battle a paper spec"
Yes indeed, thats what ATI and Nintedo has been shouting out VERY loud in the games industri the last months. About a certain (NVIDIA) powered XBOX (125M+ lit-polygons? YEEEAH RIGHT!!)
PS. A newer (hence Radion2) SHOULD be better/smarter/more-hitech that a older (hence Geforce3) chip.
PPS: Nvidia rocks, but i just hate it when CERTAN companies acts like the "OWN" a industry, maybe NVIDIA should stop working so close with M$. It seems like they are in danger of letting it get to their heads
And you can buy an ATi Radeon for under $100 right now from eBay if you are quick.
how about we go back to text based games and figure out which video card can render faster. Special effects can include changing the font color. And instead of worrying about the sound card, we'll just use the PC beep for sound effects too.
Informative? What's up with you moderators today?
OpenGL is an open standard, but the source code isn't open--there isn't even any source code!
http://oss.sgi.com/projects/ogl-sample/
If you remember Quake 2 had support for Glide OpenGL and PowerVR. I don't know what pixel shader is, but if both cards support up to 1.3 you would think they would stick with that.
Developers will code for xbox, anything more is wasted effort now.
This link is just an SGI implementation, just as MS has an implementation, just as does Nvidia.
In any case, thanks for the link!
Where are we going and why am I in this handbasket?
Game development companies will write code to the lowest common denominator that allows them to turn their projected profit.
If this means using ASCII on a VT100, that's what they'll do.
All opinions presented here aren't mine.
The fact is this article is talking about using DirectX, and that fact alone means that the codebase should be 98% the same for any graphics card. The difference between the ATI and Nvidia implementation is that some features may be enabled/disabled, or, in the case of the 6 texture in one pass deal (for the ATI), probably just a different ordering of API calls. This is not writing things to be hardware specific--on NT/2000, you can't even access the hardware directly (well, you *can* if you really try, but it just limits your audience and means more work for you)...you need to talk to HAL.
Where are we going and why am I in this handbasket?
Wow, you testicles are just soooooooo big!
It the "X r00l3z Y suX0rz" mentality at work. An unbaised person can answer the follow two question without ad hominems:
What do ATI cards do better than Nvdiia cards?
What do Nvidia cards do better than ATI cards?
If so, it won't be the first time; remember the days of 3dfx? Original Unreal would only run on Glide hardware acceleration; if you didn't have a 3dfx card, you were forced to run it in software. Of course, this didn't sit well with the growing NVidia user base who consistently pointed out that Quake 2 and Half-Life both rendered on anything running OpenGL (including 3dfx cards; remember those mini-driver days?), and OpenGL and Direct3D renderers were finally introduced in a patch. That's about when 3dfx started to go down the toilet; delaying product releases and missing features (32-bit color and large texture support being two of the most blatant omissions) eventually tainted the 3dfx brand to the point of extinction.
Since then, 3D gaming has been a less lopsided world. Linux gaming was taken seriously. Standardised APIs that could run on almost anything were the rule; if it wasn't OpenGL, it would at least be Direct3D. Then the GL extensions war heated up, with NVidia developing proprietary extensions that would work only on their cards. But this wasn't a problem; you could still run OpenGL games on anything that could run OpenGL; you'd just be missing out on a few features that would only slightly enhance the scenery.
Leave it to Microsoft to screw it all up with DirectX 8. They suddenly started talking about pixel shaders and other new ideas. John Carmack has already described the shortfalls and antics of DX8. And now 3D programmers will have to program for multiple rendering platforms, but at least you can still run it with anything.
Sure, this entire disagreement between ATI and NVidia is bad for the 3D industry, but things could be worse. A LOT worse.
"Ancillary does not mean you get to rule the world." --U.S. Circuit Judge Harry Edwards, speaking to the FCC's lawyer
How is this meant to be good for developers, or consumers? Developers now have three options:
This is also terrible for the consumer. Sorry, but that new card you just spend a small fortune on doesn't support the pixel shader version the game you want uses. Oh well, you'll just have to upgrade to the next card, when it comes out, hope that's okay. But don't worry, it will have lots of new features too (which no-one elses card will support).
Wow ! what a nice collection of typos !!
Shame on me !
My sincere apologies to all of you grammar/spelling nazis I deserve your wrath...
I have a 3.5 year old Gateay G6-300 with an STB (NVidia) graphics card. I can't run many of the new games these days since it does not support the OpenGL software internally. I've tried Quake3, and the updated software driver, but it's no go. As far as I'm concerned, many games are already hardware specific. :-(
Most DOS games were hardware specific. This was sometimes good because you could directly write to the hardware but meant more development time which translated to less game development time. This was less then appealing. DirectX isn't the greatest API but it works. OpenGL is a little better and faster most of the time. Still, when we start going back to hw specific programs, it will limit the market.
Just because a bunch of people believe or do something stupid, doesn't make it any less stupid.
DirectX has full documentation freely available, also DX doesnt only support accelerated graphics but the whole range in output and input devices such as joysticks, sound etc etc.
OpenGL is written for a UNIX environment, DX is for a Windows environment. And yes, opengl is opensource and very easy to learn, but still it has alot of drawbacks, one of them being those dinosaurs that runs it.
OpenGL does NOT change very much, which has both good and bad sides, for example, this threads discusses pixel shading, which is a feature OpenGL does not natively supports. I do not know how hard this is to implement in DX, but I figure that since they are even talking about it and not just dismissing it as some "toy" like the OpenGL-board seems todo..
This is good for hardware because ATI and NVidia will continue to push the envelope, developing more and more advanced graphics boards. Features will creep from one end to the other, just staggered a generation.
This is good for software because developers will have more choice in the hardware that they develop for. ATI doesn't support super-duper-gooified blob rendering? Ah, NVidia does in their new Geforce5. No worries, ATI will have to support it in their next generation boards.
A bipolar competition is ALWAYS good for the consumer.
Execute? [Y/N] _
OpenGL was not written for a UNIX environment, it was merely written. Maybe they wrote an implementation in UNIX, but GL is just an API, not designed for any OS.
It works on UNIX, sure, but it also works on Windows (NT4 OpenGL screensavers, not DirectX), and MacOS (OSX is hardware-accelerated via OpenGL).
Saying it 'is written for a UNIX environment' is just silly.
As for your comment about 'OpenGL-boards', there is no such thing. A hardware vendor (like ATI) will make a board, a chip, and so on. They will then write drivers. All manufacturers write DirectX drievrs. Most write OpenGL drivers. This has absolutely nothing to do with the boards themselves, and everything to do with the driver programmers.
Either way, it's entirely possible to extend OpenGL to add features that are not in the spec, and as long as this doesn't 1) break the spec, and 2) force incompatibilities, then it's nto really a problem.
Personally, I play Q3 on 'medium' detail, because while my friends are looking at dynamic lightsourcing and curved arches, I'm smoothly rounding a corner and blasting them all to hell.
They always have been.
Despite Direct3D's intentions of being hardware independent, that was never the case. All game developers had to test on each piece of hardware they intended to support, because they all had quirks (e.g. required texture dimensions) that weren't made adequately transparent by Direct3D.
You mean like Coke/Pepsi, where they essentially agreed to divide the market, and either acquired everyone else, or drove them out of business. Then what pretense of competition left is according to their own "gentlemen's rules". They probably insist that they are competing fiercely, but I might argue that it's more like a fencing match with masks, padding, and the little balls on the tips of the foils.
Imagine a sort of RIAA for soft drinks.
The living have better things to do than to continue hating the dead.