• Advertisement
Sign in to follow this  

Should I learn DirectX 9, 10, or 11?

This topic is 3003 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I'm new to DirectX so I'm wondering which version I should learn. I've heard a lot about learning 9, but 10 has been around for a while now. I know I probably wouldn't learn 11 right now since nothing supports it, but which version should a beginner learn?

Share this post


Link to post
Share on other sites
Advertisement
I think they're all pretty much the same except 10 and 11 would have new features

for 8 and 9 basically everything had a 9 at the end instead of an 8

Share this post


Link to post
Share on other sites
D3D10 is pretty much a whole new API compared to 9. Sure, most of the familiar D3D syntax and notation is still there. But you do things in a very different manner compared to D3D9.

I'd go for 10, (10.1), 11 have no real big differences from 10, so extending to 11 later on is easy. Going from 9 to 10 will require rewriting most of everything though.

Share this post


Link to post
Share on other sites
Depends...

Support XP which most people have...
9
Support Vista (not XP)
10
Win 7
11

If you don't plan on releasing anything major I would suggest whatever is the latest version you have. If you are doing what I am, 9 would would be the way to go (a full fledge game, XP compatability, largest audience).

Share this post


Link to post
Share on other sites
Though API is very important to game developing, I think principles of computer graphics are essencial. If you mater the knowledge of Graphics, it would be very easy for you to learn to use an 3D engine.

Share this post


Link to post
Share on other sites
If you are new to graphics programming I suggest you to start by a game engine. It will take care of most of the rendering part for you but you'll learn some very good concepts about the architecture of the rendering engine.
Ogre is a very good starting point: http://www.ogre3d.org/

If you already have some ideas and concepts about graphics programming then I suggest you to go a bit deeper into graphics' math.
These two books can be very helpful:

Real-Time Rendering: http://www.amazon.com/Primer-Graphics-Development-Wordware-Library/dp/1556229119/ref=sr_1_1?ie=UTF8&s=books&qid=1259923592&sr=1-1

3D Math Primer for Graphics and Game Development:
http://www.amazon.com/Primer-Graphics-Development-Wordware-Library/dp/1556229119/ref=sr_1_1?ie=UTF8&s=books&qid=1259923592&sr=1-1

Finally, if you have already a good experience in graphics programming and you want to jump to DirectX world I suggest you to learn DirectX 10 (DirectX 11 is extremely based on DirectX 10).
This book is a must-have for the ones who want the best introduction to the API: http://www.amazon.com/Introduction-3D-Game-Programming-DirectX/dp/1598220535/ref=sr_1_1?ie=UTF8&s=books&qid=1259923762&sr=1-1

hope this helps you. good luck!

Share this post


Link to post
Share on other sites
Quote:
Original post by verty
Maybe you should think about OpenGL.
Or maybe you should not. And I have been poking around with GL since 1.1. As I already wrote once, unless you need to support Apple, there's no real reason to learn GL.
Quote:
Original post by applejacks
I'm new to DirectX so I'm wondering which version I should learn. I've heard a lot about learning 9, but 10 has been around for a while now. I know I probably wouldn't learn 11 right now since nothing supports it, but which version should a beginner learn?
As it stands now, I hardly see much reasons to start learning 9. Do you seriously think to ship something out of your selected friends for the next year? 9 takes more effort to learn due to the FFP stuff accumulated over the years.

If you have D3D10 HW I see little to no reason to not start learning at least from 10.

Share this post


Link to post
Share on other sites
I would recommend learning Direct3D 11 over 10 or 10.1. Despite what was said before, it IS supported under Vista, and also supports more hardware than Direct3D 10 due to the new feature level system (can use Direct3D 9 level features but with the D3D11 api). Also, unlike D3D10 which was fairly slow on the uptake (due to being Vista only) many are predicting that D3D11 will be much more widely accepted - due to many factors such as Windows 7 adoption rate, the fact that there are actually quite a few Vista machines out there now, and the fact that alot of game developers are already talking about it quite a bit and already providing support (Bad Company 2 and DiRT 2 come to mind).

Yes, I quite enjoy working with D3D 11 ;)

Share this post


Link to post
Share on other sites
Quote:
Original post by mightypigeon
I would recommend learning Direct3D 11 over 10 or 10.1. Despite what was said before, it IS supported under Vista, and also supports more hardware than Direct3D 10 due to the new feature level system (can use Direct3D 9 level features but with the D3D11 api).


I agree, I see no reason to use 10 anymore, as 11 is supported on everything that supports 10, and more. 9 requires quite a bit less code to actually get things on the screen though, so for a beginner it might be a better idea.

Share this post


Link to post
Share on other sites
Quote:

Or maybe you should not. And I have been poking around with GL since 1.1. As I already wrote once, unless you need to support Apple, there's no real reason to learn GL.


I am going to call BS on this one. Here goes. Firstly, if you are an Indie developer and not aiming to sell 500,000+ units, then the sales from non-windows platform will be disproportionally much higher, for evidence take a look into World of Goo. Secondly, by learning GL you will get a better notion of what is going on for 3D hardware, in particular what is just convention, what is not etc. I am not saying to not learn DX10, but ditching GL is really a BAD idea. Compounding this issue is that if you want to make something for the embedded market then GLES and GLES2 are really your only choices to do 3D graphics. If you have the time I would recommend:
1. GL3 Core and DX10 together, you will find that what the API's expose mirror each other strongly
2. GLES and GLES2 afterwards, as they both share lots of concepts from GL for desktops.

As for DX11, I'd seriously wait on it.

Share this post


Link to post
Share on other sites
Quote:
Original post by kRogue
Secondly, by learning GL you will get a better notion of what is going on for 3D hardware


I'm going to call BS on that.

Maybe, maybe back in the days of the FFP it would, but these days OpenGL gives you nothing more than D3D11 and to boot you get worse API to fight against.

Quote:

As for DX11, I'd seriously wait on it.


I wouldn't; right now D3D11 is the best API going. If the OP is a windows user and just starting out then learning OGL for 'more sales' is a BS reason where as D3D11 shows more accurately where desktop hardware is and where it is going.

You can learn the concepts of 3D programming perfectly fine with it, and its the concepts which are important not fighting with the API, and after that if you need to pick up OGL then it'll be easy enough.

In short;
- If you are a Vista or Win7 user then go with D3D11
- If you are an XP user then D3D9 might be a better option
- If you use anything else then you have no choice but to use OGL

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement