Sign in to follow this  
sarim

DirectX 9 or DirectX 11 ?

Recommended Posts

sarim    440
So here's my dilemma: I don't know which API version I should focus on learning/using, DirectX 9 or DirectX 11 ? I want to start off with making some simple 2D games just to get a feel of the API and then eventually move into 3D games. I have prior experience with D3D9 and if i start reading about it again I'll pick it up quickly and be on my way with it in no time...however lately I've been trying to learn how to code with D3D10/11 but I'm not having any luck with it because of the lack of tutorials on the web, hard to follow documentation, etc.

I purchased a book called Introduction to 3D Game Programming with DirectX 10 by Frank D. Luna and it's an ok book but it doesn't quite tell you anything related to 2D. For some reason I just find D3D10 and D3D11 to be very hard to understand/learn compared to D3D9 but I know I'll probably have to learn how to use them eventually.

Do you think it's better for me to stick with D3D9 and relearn how to make 2D games with it and then move into 3D or is D3D10/11 better? And also would D3D9 be an easier transition into 3D after I'm comfortable with 2D compared to 10 and 11 ?

If you guys suggest 10/11 could you please suggest some good books/links I could look at because my google-foo is really letting me down lately and I can't find anything that's helpful.

Share this post


Link to post
Share on other sites
Use DirectX11 if you can, the book you have is great, make sure you understand everything before moving between chapters. Its probably one of the best introduction to direct x books you can buy. For an advanced book on the subject id recommend Jason's.
Since your not sure how to do 2D sprites, I think this is what your looking for: [url="http://www.rastertek.com/tutdx11.html"]http://www.rastertek.com/tutdx11.html[/url] check tutorial #11. [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img] Edited by DevLiquidKnight

Share this post


Link to post
Share on other sites
beebs1    398
Direct3D 9 supports Xbox360 and Windows XP, whereas D3D11 does not.

Direct3D 11 supports Windows Vista onwards only, but can run on earlier D3D9-level hardware using feature levels.

So the choice comes down to:
360 or XP support required? Use D3D9.
Otherwise use D3D11.

Hope that helps.

[Edit] The feature levels of D3D11 also mean there's also no reason to use D3D10 any more. Edited by Telios

Share this post


Link to post
Share on other sites
sarim    440
Ok thanks guys...i guess I'll start to learn D3D11 then. Any good books or tutorials you guys would suggest for me to start with?

Share this post


Link to post
Share on other sites
mhagain    13430
A handy secret to know is that, while much of Microsoft's D3D11 content is rather poor (it's improving though), you can quite easily jump back to the corresponding D3D10 content and just mentally translate the API calls. 10 and 11 are so similar that this is completely painless to do in almost every case aside from the handful of 11-only features you might be using.

Share this post


Link to post
Share on other sites
_the_phantom_    11250
[quote name='KrNaGe' timestamp='1341428782' post='4955696']
Ok thanks guys...i guess I'll start to learn D3D11 then. Any good books or tutorials you guys would suggest for me to start with?
[/quote]

[url="http://www.amazon.co.uk/Practical-Rendering-Computation-Direct3D-11/dp/1568817207/ref=sr_1_1?ie=UTF8&qid=1341494031&sr=8-1"]http://www.amazon.co.uk/Practical-Rendering-Computation-Direct3D-11/dp/1568817207/ref=sr_1_1?ie=UTF8&qid=1341494031&sr=8-1[/url] should do you :)

Share this post


Link to post
Share on other sites
Crocket    102
I am considering the fact that people who already know DirectX 9 are telling a newbie to jump right to DirectX 11. Are you saying that the previous knowledge that came from DirectX 9 has no bearing on your understanding of CG concepts that are relevant in DirectX 11? To me it seems similar to suggesting algebra is not that important, so just right to calculus. Furthermore, I would think concepts that were covered in depth in the DirectX 9 book are (if covered) glossed over in the DirectX 11 book. So can someone give this a little thought and provide a reply on how worthwhile it would be to understand where 'we' have been (i.e. fixed pipeline) in our effort to understand the state of the art technology (i.e. DX11). Thanks

Share this post


Link to post
Share on other sites
mhagain    13430
OK.

Best case is that most of what you learn on the fixed pipeline will be completely irrelevant to a shader-based setup. Worst case is that it will be misleading and cause you to make a few false starts.

That's only a slight exaggeration - some [i]concepts[/i] will transfer over OK, but moving to shaders really does change the game quite significantly. By trying to approach them with the old mindset you'll only limit yourself.

D3D11 doesn't build on D3D9 the same way that calculus builds on algebra - that's a flawed analogy. D3D11 really is standalone and you don't need anything from 9 to understand it and use it effectively. By going straight to 11 you get to skip a lot of the outdated cruft and annoying design decisions in 9, so it really can be easier.

Rather than hypothesising about the contents of books, why not check them out down your local library or store? Or at least ask around here for opinions on titles that look interesting?

Share this post


Link to post
Share on other sites
solenoidz    591
[quote name='Telios' timestamp='1341425643' post='4955682']
Direct3D 9 supports Xbox360 and Windows XP, whereas D3D11 does not.

Direct3D 11 supports Windows Vista onwards only, but can run on earlier D3D9-level hardware using feature levels.
[/quote]

Ok, that;s clear, but does Direct3D 9 support Vista and Windows 7 ? In other words, can someone install[b] DirectX 9.0 SDK on Windows 7 [/b]and develop a game that will run on WinXp to Win 7 and above ? Edited by solenoidz

Share this post


Link to post
Share on other sites
Radikalizm    4807
[quote name='solenoidz' timestamp='1353323205' post='5002305']
[quote name='Telios' timestamp='1341425643' post='4955682']
Direct3D 9 supports Xbox360 and Windows XP, whereas D3D11 does not.

Direct3D 11 supports Windows Vista onwards only, but can run on earlier D3D9-level hardware using feature levels.
[/quote]

Ok, that;s clear, but does Direct3D 9 support Vista and Windows 7 ? In other words, can someone install[b] DirectX 9.0 SDK on Windows 7 [/b]and develop a game that will run on WinXp to Win 7 and above ?
[/quote]

Sure, as long as your target machine has the required runtimes installed.
And there's no such thing as the DirectX 9.0 SDK, all current versions of DirectX (including 9) are bundled together in the DirectX SDK (which is now part of the Windows SDK)

Share this post


Link to post
Share on other sites
_the_phantom_    11250
However be aware that you are learning an outdated API and way of doing things on a vanishing market share.

Give it a year or two and your DX9 knowledge will be worthless and you'll need to learn the latest APIs anyway.

If you are starting RIGHT NOW and want to learn how to use the DX API then 11 is the only sensible choice as it's what all the up and coming tech is based around.

Share this post


Link to post
Share on other sites
ProgrammerDX    395

I'm still using D3D9 because Windows XP :\

 

Also I kind of like the Unicode draw text functionality of ID3DXFont... I don't want to go back to Font Bitmaps again, it's too limited if you need all languages to work in your application at the same time

Share this post


Link to post
Share on other sites
Cornstalks    7030

This thread was started July 2012, then had a 4 month period of peaceful death before being necroed, then had an 11 month peaceful death before being necroed again. Just FYI.

 

Also, XP is not going to be supported by MS in a few months, so targeting it is... old school.

Share this post


Link to post
Share on other sites
ProgrammerDX    395

Oh yeah I meant to make that post in 'D3D9 is dead' not this one

 

Don't know how this happened.. lol! Probably because I was googling before deciding to reply, and then replied in the wrong topic

Edited by ProgrammerDX

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this