Jump to content

  • Log In with Google      Sign In   
  • Create Account


DirectX 9 or DirectX 11 ?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
14 replies to this topic

#1 Cryptiik   Members   -  Reputation: 430

Like
2Likes
Like

Posted 03 July 2012 - 08:12 PM

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.

Sponsor:

#2 Krohm   Crossbones+   -  Reputation: 3016

Like
6Likes
Like

Posted 04 July 2012 - 01:08 AM

For real? I cannot believe you have this doubt. I'd jump on 11 every day of the week if I could!
Real hard truth is, if you find the lack of 2D concepts in a book a problem, you probably don't have much knowledge to start with. So why not to start with something that is modern and cleaner?
Similarly, if you still think in terms of APIs to use, I'm afraid you don't have much to save, otherwise you'll realize the simple fact the API will soon become detail in a complex system.

No matter what your task is, D3D1x is more streamlined and compact. Of course you have to bite the bullet when it comes to emulating the FFP but the generic approach involved is in my opinion far better than FFP, where vertices are transformed in a way if you turn out <this switch> unless <this other switch> is also turned on, in which case <something different> will happen. And what about resource management? It actually makes sense!

But anyway, you know D3D9 already? Much better to learn another API: it will help you in getting a more solid understanding of the notions involved.

#3 DevLiquidKnight   Members   -  Reputation: 834

Like
4Likes
Like

Posted 04 July 2012 - 01:18 AM

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: http://www.rastertek.com/tutdx11.html check tutorial #11. Posted Image

Edited by DevLiquidKnight, 04 July 2012 - 01:31 AM.


#4 Telios   Members   -  Reputation: 398

Like
3Likes
Like

Posted 04 July 2012 - 12:14 PM

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, 04 July 2012 - 12:14 PM.


#5 Cryptiik   Members   -  Reputation: 430

Like
0Likes
Like

Posted 04 July 2012 - 01:06 PM

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?

#6 mhagain   Crossbones+   -  Reputation: 7592

Like
2Likes
Like

Posted 04 July 2012 - 01:21 PM

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.

It appears that the gentleman thought C++ was extremely difficult and he was overjoyed that the machine was absorbing it; he understood that good C++ is difficult but the best C++ is well-nigh unintelligible.


#7 phantom   Moderators   -  Reputation: 6891

Like
1Likes
Like

Posted 05 July 2012 - 07:14 AM

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?


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

#8 Crocket   Members   -  Reputation: 102

Like
0Likes
Like

Posted 19 November 2012 - 12:49 AM

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

#9 mhagain   Crossbones+   -  Reputation: 7592

Like
4Likes
Like

Posted 19 November 2012 - 04:20 AM

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 concepts 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?

It appears that the gentleman thought C++ was extremely difficult and he was overjoyed that the machine was absorbing it; he understood that good C++ is difficult but the best C++ is well-nigh unintelligible.


#10 solenoidz   Members   -  Reputation: 517

Like
0Likes
Like

Posted 19 November 2012 - 05:06 AM

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.


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

Edited by solenoidz, 19 November 2012 - 05:07 AM.


#11 Radikalizm   Crossbones+   -  Reputation: 2798

Like
0Likes
Like

Posted 19 November 2012 - 05:20 AM


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.


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


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)

I gets all your texture budgets!


#12 phantom   Moderators   -  Reputation: 6891

Like
4Likes
Like

Posted 19 November 2012 - 08:08 AM

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.

#13 ProgrammerDX   Members   -  Reputation: 149

Like
0Likes
Like

Posted 27 October 2013 - 01:48 PM

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



#14 Cornstalks   Crossbones+   -  Reputation: 6974

Like
2Likes
Like

Posted 27 October 2013 - 01:58 PM

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.


[ I was ninja'd 71 times before I stopped counting a long time ago ] [ f.k.a. MikeTacular ] [ My Blog ] [ SWFer: Gaplessly looped MP3s in your Flash games ]

#15 ProgrammerDX   Members   -  Reputation: 149

Like
0Likes
Like

Posted 27 October 2013 - 02:07 PM

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, 27 October 2013 - 02:08 PM.





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS