Reputation: 306
I am looking into opengl and directx and was wondering what is the easiest to learn and which is the best in terms of community activity.
I also would like to know if openTK and tao are dead or not.
Any other advice or tutorials etc are welcome!
Upvotes: 0
Views: 1002
Reputation: 40190
Whatever 3D application you are doing, if in the future you want to port to any platform other than Windows, you are better using OpenGL to begin with.
As for easier to learn, modern DirectX has an API that may result more familiar to people with experience with Microsoft tools. Also they provide good documentations and tutorials, I recommend you Coding4Fun to start with. Sorry I don't provide more, it is hard for me to decide if a DirectX tutorial is good as I don't know much of DirectX.
Also, you may be interested in SDL it will give you a good API for 2D application with hardware acceleration, or you can use it to initilize OpenGL both on Linux and Windows.
If you want to develop games, you may also consider some game engines, such as Ogre, Axiom or even Unity3D. You have already been told about XNA, so you owe a visit to MonoGame.
As for learning OpenGL, I did learn the old API the old way (With The Red Book). You can also try NeHe tutorials, and OpenTK has a little tutorial and examples too.
Now, listen! OpenGL is the same, all that changes are a few details... for example some wrappers has prefixes on the function names, some use overloaded methods others stick the original OpenGL names... but it is the same, so you could easily adapt tutorials for C++, Java, JavaScript or whatever into C# when it comes to OpenGL, all that matters to learn to initialize it, setup some some events (Paint, Resize...) and all the rendering and stuff is the same...
So, knowing that, there are many, many more tutorials available for you. Here are a few:
Also, why not let the Getting Started guide from opengl.org guide you?
Also, if what you want is examples. Take a look at g-truc.net and look no further... but I warn you, they have lots of code to read and digest.
And finally, for me the best way to learn to develop 3D applications is with a pet project. How about this: start with the classing technicolor triangle hello world tutorial, move on to drawing some cubes, afterward interface with it, make them move and rotate. Then move on to make a skybox, add a landscape and first person camara control... and finally your own 3D enviroment to navigate.
Upvotes: 2