Sign in to follow this  
MARS_999

How different is DX10 vs DX9?

Recommended Posts

I haven't coded DX yet. I am looking into it. I know DX10 is coming out soon. So if I learn DX9 would that be a waste of time? Or should I wait and learn DX10? I thought I heard DX10 was going to dump old code and start fresh? Looking for some info on what is truth and rumor. Thanks

Share this post


Link to post
Share on other sites
DirectX 10 will completly drop support for the fixed function pipeline. This means that everything will need to be done using the programmable pipeline (shaders). Vista + DirectX 10 + DirectX 10 Cards = early 2007, DirectX 9 already has support for shaders and it will be similer to how 10 will work (I assume), I would say it's worth learning 9 until you get your hands on 10.

jollyjeffers (The DirectX Mod here) has been doing some work with DirectX 10, so hopefully he'll be along soon to explain this better then I can. :)

Share this post


Link to post
Share on other sites
I have no intentions of using FFP coding. So if I was to learn DX9 and used only HLSL I should be fine? What I was wondering about was how DX uses VB or IB to load and render meshes that should stay the same I would assume? Thanks for the reply.

Share this post


Link to post
Share on other sites
If you download the December or Feburary SDK's, you can use an early preview of D3D10. Docs, headers, libs, tutorials, and samples are included. Unfortunately, you need a Vista CTP to run the apps.

There are also a lot of slide decks on the topic. Here is a recent one from GDC.

Share this post


Link to post
Share on other sites
As circlesoft said, if you can get your hands on a copy of Vista, you'll be able to use DirectX 10 now.

Share this post


Link to post
Share on other sites
Quote:
Original post by MARS_999
I haven't coded DX yet. I am looking into it. I know DX10 is coming out soon. So if I learn DX9 would that be a waste of time? Or should I wait and learn DX10?


Learning DX9 now would not be a waste of time. Vista (which is required for DX10) is still a good distance off, and it will take a good year or two before it becomes more common than XP. If you learn DX9 now, you'll be able to make games that will still be usable by many for a while to come. Plus, DX9 will serve as an excellent stepping stone to DX10.

Share this post


Link to post
Share on other sites
Quote:
Original post by Smit
As circlesoft said, if you can get your hands on a copy of Vista, you'll be able to use DirectX 10 now.

Well, not exactly. The correct statement would be 'if you can install Vista' [lol] It seems that users are hit-and-miss with actually running the CTPs. This cycle, Jack has had quite a bit more luck than I have hehe

Quote:
Original post by programwizard
Learning DX9 now would not be a waste of time. Vista (which is required for DX10) is still a good distance off, and it will take a good year or two before it becomes more common than XP. If you learn DX9 now, you'll be able to make games that will still be usable by many for a while to come. Plus, DX9 will serve as an excellent stepping stone to DX10.

Yea, this is good advice.

Share this post


Link to post
Share on other sites
Ok, I will ponder it some more. I have a really good footing into OpenGL using 2.0 with GLSL, FBO, VBO's ect... all really advanced extensions. I will use the equivalent functions in DX9 if I go this route. I was wondering has anyone here used the tangent function? I have some .3ds files and would like to use them in DX, but have a feeling I will need to convert them to .X to load them? So if this will work, I am assuming a .X file is acceptable to use to pass into the calculate tangent function in DX. Also can the .x file do animations? This is off topic but with GLSL I can have variables that are sent to the PS from the VS and aren't texture variables. Can HLSL do this or you stuck with using texture coordinate variables to pass information to the PS? Thanks

Share this post


Link to post
Share on other sites
Quote:
I have some .3ds files and would like to use them in DX, but have a feeling I will need to convert them to .X to load them?


Nope. The DirectX SDK provides helper functions for loading X models, but the API isn't tied to the format. You can write your own 3DS model loader (which you might have mostly done in OpenGL).

Quote:
Also can the .x file do animations?


Yes, limbed or boned with vertex weights.

Share this post


Link to post
Share on other sites
Quote:
Original post by Drakex
Quote:
I have some .3ds files and would like to use them in DX, but have a feeling I will need to convert them to .X to load them?


Nope. The DirectX SDK provides helper functions for loading X models, but the API isn't tied to the format. You can write your own 3DS model loader (which you might have mostly done in OpenGL).

Quote:
Also can the .x file do animations?


Yes, limbed or boned with vertex weights.


Thanks DrakeX I am only interested in animations for units for a RTS game like tanks, planes, buildings ect... I am not animation savy or 3D model savy. So I am assuming with bones it could be done? Thanks

Share this post


Link to post
Share on other sites
Quote:
Original post by circlesoft
Well, not exactly. The correct statement would be 'if you can install Vista' [lol] It seems that users are hit-and-miss with actually running the CTPs. This cycle, Jack has had quite a bit more luck than I have hehe


They've all worked for me so far. A lot of people seem to think that the black screen with just the mouse cursor means something has gone wrong, but after leaving it for about 20 minutes it carries on the last part of the install and runs great.

Share this post


Link to post
Share on other sites
Quote:
Original post by Smit
They've all worked for me so far. A lot of people seem to think that the black screen with just the mouse cursor means something has gone wrong, but after leaving it for about 20 minutes it carries on the last part of the install and runs great.

What really? No way - I am trying again tonight! I left it for about 10 minutes last time it did that, so I guess that wasn't enough.

Share this post


Link to post
Share on other sites
Quote:
jollyjeffers (The DirectX Mod here) has been doing some work with DirectX 10, so hopefully he'll be along soon to explain this better then I can. :)
Somebody rang? [smile]

Firstly, bare in mind that (currently) there is no DirectX 10 - it's just the Direct3D component that has has a 10th version. Although I suppose that's not hugely important...

I've been doing some work with D3D10 since October/November last year, and I'm loving it - the API in general is a lot cleaner and more refined than what we currently have. Seems that dropping backwards support has been a really good idea.

The big thing that I've been loving about D3D10 is the extra flexibility you can get through the pipeline - strikes me that there is a lot less twisting to fit arcane rules of the GPU and you can just get on with implementing algorithms in a way that makes sense to you.

Obviously the new SM4-based features are pretty awesome, but how hard we can push those won't be known until some real hardware is available.

Regarding learning D3D9 over D3D10 - I would stick with using D3D9 if you're new to the API. D3D10 is mostly stable now, but particularly with a lack of hardware its not the easiest way of developing - being at least experienced with D3D is a good thing here. With D3D9 you can get some fairly cheap and decent hardware (I just bought a SM3/512mb AGP card for almost nothing) and run everything hardware accelerated..

As has been said - avoid the fixed function pipeline, and write your shaders in HLSL (assembly shaders are gone in D3D10) and you should be fine for looking/going forwards. It's not required, but using the effects framework ("FX9") wouldn't be a bad route either - FX10 is a fairly major component for D3D10, so using something similar will set you up nicely [smile]

Quote:
They've all worked for me so far. A lot of people seem to think that the black screen with just the mouse cursor means something has gone wrong, but after leaving it for about 20 minutes it carries on the last part of the install and runs great.
I had 5270's staged build, and left it for about an hour on the same installation screen before giving up. No DVD, HDD or CPU activity for 45mins doesn't seem good to me [smile]

I had plenty of fun getting 5308 installed (not tried 5342 yet) - it's working fine now, but in all honesty I'm not sure why or how it installed [lol]

hth
Jack

Share this post


Link to post
Share on other sites
Quote:
Original post by circlesoft
Quote:
Original post by Smit
They've all worked for me so far. A lot of people seem to think that the black screen with just the mouse cursor means something has gone wrong, but after leaving it for about 20 minutes it carries on the last part of the install and runs great.

What really? No way - I am trying again tonight! I left it for about 10 minutes last time it did that, so I guess that wasn't enough.
I've read some posts in the beta newsgroups saying that they've had to leave Vista installs for hours in order to get it to complete [oh]

Jack

Share this post


Link to post
Share on other sites
Quote:
Original post by jollyjeffersFirstly, bare in mind that (currently) there is no DirectX 10 - it's just the Direct3D component that has has a 10th version. Although I suppose that's not hugely important...

hth
Jack


The big problem is that even nVidia people call it DirectX 10 in their GDC presentations.

Share this post


Link to post
Share on other sites
Quote:
Original post by Demirug
Quote:
Original post by jollyjeffersFirstly, bare in mind that (currently) there is no DirectX 10 - it's just the Direct3D component that has has a 10th version. Although I suppose that's not hugely important...

hth
Jack


The big problem is that even nVidia people call it DirectX 10 in their GDC presentations.
Interesting - I hadn't spotted that [smile]

The MVPs got told a while back that the preferred naming was Direct3D 10 and that, technically, DirectX 10 was incorrect. Maybe that memo didn't make it over to the Nvidia camp [lol]

Jack

Share this post


Link to post
Share on other sites
Quote:
Original post by jollyjeffers
I've read some posts in the beta newsgroups saying that they've had to leave Vista installs for hours in order to get it to complete [oh]
I'm using a fairly old beta (Came with my MSDN subscription), and I had to wait between 45 mins and an hour on the install. All that time staring at a progress bar that never ends...

Share this post


Link to post
Share on other sites
Quote:
Original post by jollyjeffers
I've read some posts in the beta newsgroups saying that they've had to leave Vista installs for hours in order to get it to complete [oh]

Yea...it's been running on a blank screen with only the keyboard cursor blinking for about 8 hours (while I was sleeping). For some reason, this being the 5th try and all, I just don't think it's gonna work [bawling]

Share this post


Link to post
Share on other sites
Ok, a few quick questions.
1. What is XNA? I am assuming this is for xbox360? So DX will stay on PC.

2. How do I translate a object on the screen to move it around in DX? I see so far there arent' functions to do this Translate(x,y,z) which is nice, but I don't see this on DX...

Thanks

Share this post


Link to post
Share on other sites
About the closest thing I can find is

D3DXMatrixRotationAxis() where you setup a D3DXVECTOR structure to tell it where you want to rotate but what about tranforms?
Thanks


edit
ok this should work
D3DXMatrixTranslation() :) what would be nice is a really good book that covers all DX9 and its features... Anyone have any suggestions? Thanks

Share this post


Link to post
Share on other sites
Quote:
Original post by MARS_999
1. What is XNA? I am assuming this is for xbox360? So DX will stay on PC.
XNA is a fairly big new initiative and set of technologies - Microsoft.com/xna. Also have a read of this recent thread.

Quote:
Original post by MARS_999
2. How do I translate a object on the screen to move it around in DX? I see so far there arent' functions to do this Translate(x,y,z) which is nice, but I don't see this on DX...
You'll need to use matrix transformations for this, it might not be immediately obvious but it is a very powerful and flexible technique. If you want further discussion on this sort of thing I'd recommend you start a new thread to get it the attention it deserves. Although I'd also suggest you read through the "programming guide" and the tutorials in the SDK first [wink]

hth
Jack

Share this post


Link to post
Share on other sites
Ok I looked at the XNA site, and seems like a good idea, but I could care less about coding for the xbox360. But what I don't see is what languages will XNA be in? C++ or C#? Any ideas on that. Thanks

Share this post


Link to post
Share on other sites
Quote:
Original post by MARS_999
But what I don't see is what languages will XNA be in? C++ or C#? Any ideas on that.
There is no answer to your question for just "XNA". "XNA Framework" (part of the bigger picture) is .NET/Managed code only - so C#, VB.Net etc... I don't know about MC++, but I suppose that would be possible. Other components such as "XNA Build" cover more than programming assets/tools, so it's a moot point there. "XNA Studio" is just a general tool from what I've seen - so again, not so specific to a language.

hth
Jack

Share this post


Link to post
Share on other sites
Hmm so as of now I may have to learn C# instead down the road? Also one quick question how do I reset the identity matrix? If I translate an object to xyz and want to start over again I should need to reset the identity matrix, and I am not sure if DX has these but some kind of pop/push matrix functions to remember the currect matrix and allow me to work somwhere else for a bit... Thanks this will be the last question for awhile. :)

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