   Starting 3d programing
  I have been using c++ and c# for programing for a while now, I have done 2d graphics using SDL, and a little xna. Now I want to get into 3d programing, I have looked at both opengl and direct 3d, What would be the best one to start learning. I am looking for the folowing info. What is more widely used?does one have more staying power(is one on its way out)and out of the 2 what one would be easier to learn.   
Quote:What is more widely used?On Windows, D3D is the preferred option by most. On any other platform (Linux/MacOS) then you have to use GL. On mobile platforms you would use OpenGL ES (which is a bit different to regular GL).Quote:does one have more staying power(is one on its way out)No. But GL is less popular on Windows these days. ATI has had buggy GL support in the past (it was so bad they recently re-wrote their GL drivers from scratch!).Intel (integrated graphics chips) still have pretty bad GL support.Quote:and out of the 2 what one would be easier to learn.IMO basic GL is very easy for beginners - but there are many different ways to do the same thing in GL, and often the easy/beginner way is slow.D3D on the other hand will require you to jump in the deep end because there's only the correct (complicated, but fast) way to do things.The general concepts of 3D rendering are pretty much the same between the two, so you could do some basic GL tutorials to learn the basics, and then move on to D3D after you're comfortable with how triangles, lighting, texturing etc works...   ;  Since you have experience with C# and some XNA background, you might look into using XNA for 3D programming.  It is built upon DirectX and acts like a buffer betweeen you and DirectX this making an attempt to simplify things and make them easier.   