DirectX 9 compared to 10/11?

Started by
11 comments, last by Shanee 13 years, 6 months ago
Currently I'm limited to DX9 because of my GPU doesn't support any newer version (and software rendering 10/11 is just simply too sloooowwwwww). I have just started learning a while ago but I'm kinda not motivated because people have told me it's not worth it to learn DX9 because 10 and 11 are so different that I would have to relearn most things.

Is this really true? I mean like people who made games with DX9 probably learnt new techniques alot easier than people with no experience even if there are big changes. And isn't DX9 still good if I want to support older hardware?

I hope DX9 is still worth learning and I can get more motivated again. :D
Advertisement
No, it's not true at all. It's true that the difference between 10 & 9 is larger than between any two previous versions, but most of it is still the same in essence.

If you're asking a question like this then the new stuff in DX10 I suggest you ignore anyway, at least for a while. Our engine is DX9 only and will be for some time yet - until XP is completely and utterly dead. I have a few earmarked uses for the newer features in DX10, but none of them are must haves in the real world - our engine already does everything it intended to do with DX9.

------------------------------Great Little War Game
I'm working as a graphics programmer at the moment, and when it comes down to it, knowledge of a particular API is just a project-specific detail.
The knowledge that carries over from one project to the next is higher-level than the API -- it's about how graphics APIs work in general.

They're all similar (though each new generation does remove some features, add some features, and change 'best practices'), and once you've learnt how to use one, then learning the next one is a lot easier.

There's also a lot of general-purpose stuff that you'll learn for any graphics API, like all the different matrices involved, or thinking in different coordinate systems ("spaces"), how shaders work, what texture formats you can use, different methods of animation, etc...
[edit]
Quote:Original post by Evil Steve
It's the only option if you intend to support Windows XP or any non-DX10 graphics hardware.
*cough* or GL *cough*
DX9 is certainly still worth learning - It's the only option if you intend to support Windows XP or any non-DX10 graphics hardware.

Stay away from the fixed function pipeline though, that's all gone in DX10 - just stick with shaders and you'll be fine.
Thank you guys! I feel alot more motivated to again. :D

Quote:Original post by Hodgman
There's also a lot of general-purpose stuff that you'll learn for any graphics API, like all the different matrices involved, or thinking in different coordinate systems ("spaces"), how shaders work, what texture formats you can use, different methods of animation, etc...

Yeah, I was thinking it would be like this. Just like with programming languages; it's easy to learn new language if I laready know programming logic and methods from another language.

Quote:Original post by Evil Steve
DX9 is certainly still worth learning - It's the only option if you intend to support Windows XP or any non-DX10 graphics hardware.

Stay away from the fixed function pipeline though, that's all gone in DX10 - just stick with shaders and you'll be fine.

Thanks for the tip, I'll try to stay away from it! :)
Well, one thing worth noting is that you can use DirectX 11 to make your engine without having a DX11 capable card, as I do. I have a GTS 250 which can only support DX10, but develop without issue using DX11. The good news is DX11 is backwards compatible with hardware.

I made the transition from DX9 to DX11 a couple of months back and I found it hard to be honest. DX9 was a lot easier to learn for me. There's a fair bit more you have to do for yourself in DX11, with the gain of being more flexible/powerful a tool I suppose. Initializing the device for example is about twice the code. Another large part of the reason I found it harder was cos I was foolishly using fixed pipeline functions in DX9 so shaders were a whole other ball game for me.

Its up to you, but if you are going to learn one or the other it seems to me that its wiser to learn the more up to date version.
Does anyone know a tutorial or similar that doesn't use the FFP at all or very small amount of it so I don't get used to using it by accident? :D
For both learning Dx9 and shaders, consider buying Frank Luna's book Introduction to 3D Game Programming With DirectX 9.0c - A Shader Approach. All the source code used in the book is available for download on the book's website.

Please don't PM me with questions. Post them in the forums for everyone's benefit, and I can embarrass myself publicly.

You don't forget how to play when you grow old; you grow old when you forget how to play.

You might also be interested in the Wild Magic Engine, which abstracts across software, OpenGL, and Direct3D 9 renderers - especially if you are interested in working with other APIs in the future. If I recall correctly, the latest version is shader based and you can always pick up one of Dave's books for a deep understanding of what he is doing.

As already mentioned above, if you aren't running XP you can start using DX11 now and just target one of the DX9 feature levels. Then you can just use the features available on your hardware and add in new ones later (when you upgrade hardware) without having to rewrite a big chunk of code.
my advice is get a new video card pronto and work with the newer api, its ten thousand times better.

This topic is closed to new replies.

Advertisement