Im just starting to walk into the glorious world of 3-Dimentions... I just want to know what would be the best choice Direct3D or OpenGL? I've looked at the NeHe tutorials and OpenGL seems easier, but is there enought resource i can find on the web? i dont want to stick with the nice cube with filters ... i started my exploration mission in Direct3D two days ago and i must say its not as easy as DirectDraw... OpenGL sure does look easy but is it easy compared to Direct3D?

I dont want to start a flame war over this flammed again and again topic. But here is what i know/hear. OpenGl is easier to learn,Direct3d is supposedly more supported right now. Im not gonna say anything else cept that,in reality supporting Direct3d,OpenGl and Glide,is the way to go.

An example wing commander prophecy supports all 3 of them,however only with glide can you get lens flare effects and some other things.

Am i saying they can't be done in the other API's nope,but i think for the best use of 3dfx cards glide is required.

OpenGL's primary positive points (to me at least) are it's easier to learn, and more portable, it's available for Win32, Linux, Mac, etc.

Direct3D tends to have far better driver support. The API progresses at a much faster rate than OpenGL. As new hardware features becomes available, Direct3D will more than likely support them before OpenGL. The D3D API in 7 is a lot cleaner than earlier versions, and there is a utility library, D3DX, which can handle most tedious chores for you, so the ease-of-use factor is greatly diminishing. I picked up D3D in about a day.

There are a few performance factors, such as Direct3D allows greater control over texture management, however these should not be a big factor on a beginning D3D programmer.

You're best bet is to probably try both API's, and then pick which one you like best.

First off, there will never be an end to the OpenGL vs. D3D, at least not in the next few years. Forget Glide because it's basically dead and it's not worth directly supporting.

Direct3D does have slightly better driver support, but that is quickly becoming less and less as hardware companies are putting more effort into OpenGL drivers. The reason Direct3D supposedly progresses faster is because it was so far behind OpenGL to begin with. For example, OpenGL has supported hardware T&L since its beginning, whereas D3D has just started to support it with Dx7. OpenGL supports extensions which take advantage of new hardware features so a programmer can support video-card specific features WITHOUT incorporating it into the API. If a new feature comes out for nVidia's next card (after T&L), you'll have to wait and hope DX8 supports it whereas nVidia can just make an extensions in their reference driver and OpenGL will support it.

It basically comes down to the fact that OpenGL was written by industry experts in computer graphics and input from a wide variety of hardware manufacturers, software developers, etc. whereas Direct3D was made by various teams of Microsoft employees who don't have as much experience and have made ill decisions.

I also agree with the above posts. Personally, I never tried using Glide, but I do use OpenGL and DirectX. I work with both api and if you work with OpenGL only, most likely you'll be using DirectX sound routines, Direct Input, and maybe others. I've done tesselation, texture mapping, progressive mesh generation in OpenGL, and in DirectX I've only set up using D3DX utility library and draw a triangle I think the red book is pretty good and helps when you programming in any 3D api. DirectX gives you more choices in detecting the hardware over OpenGL, but OGL is easier to use. The transition from OGL to DX is easier than learning DX alone because in OGL you learn about setting up your viewport, projection and modelview matrices, and info is pretty good about these things on the net. When you know these, then setting up DX will be easier, for example I didn't know what the matrix stack was used for in DX (they are copying OGL) but once I've used OGL matrix stack it became crystal clear how to use one in DX. I suggest you build something in both api and then make your decision.