Sign in to follow this  
Instigator

Dx9 or Direct3D10?

Recommended Posts

I recently finished reading a few books on c++ and had lots of practice with it. Now I'd like to move into directX. My question is: Should I wait until Direct3D10 comes out, before I start breaking out the books or should I start now? The reason I'm asking is because I've heard that Direct3D10 is completely different from number 9 (more that dx8 to dx9). Is this true? What do you guys think I should do? Will all my Dx9 knowledge be useless when direct3d10 comes out?

Share this post


Link to post
Share on other sites
I believe DX10 is to be used with Windows Vista. Now, given that most games on the market now use DX9, you can safely assume that there will be ways for gamres to run DX9 games for a very long time ahead. So I'd start with DX9.

Share this post


Link to post
Share on other sites
Also, if you're pretty much new to 3D programming, then much of what you will learn while learning DirectX 9 will carry over not only to DirectX 10, but also to OpenGL, XNA, and pretty much any other rasterizing-based 3D programming. Some of would even carry over to other forms of 3D rendering. The difference between DirectX 9 and DirectX 10 will be negligible relative to all the stuff you have to learn about 3D programming in general. Once you're comfortable with DirectX 9, you should be able to move to other APIs without a great deal of effort.

Share this post


Link to post
Share on other sites
I concur with everything Agony posted [smile]

To make it easier going forwards from D3D9 to D3D10 you should focus as much on the programmable parts of D3D9 as you can. It's fairly cheap/easy to get hold of a SM3 graphics card these days and SM3 is pretty close to SM4/D3D10...

hth
Jack

Share this post


Link to post
Share on other sites
Quote:
Original post by jollyjeffers
To make it easier going forwards from D3D9 to D3D10 you should focus as much on the programmable parts of D3D9 as you can. It's fairly cheap/easy to get hold of a SM3 graphics card these days and SM3 is pretty close to SM4/D3D10...

I'd say even a Shader-Model 2 card would be acceptable if you are just getting into graphics programming (e.g. ATI 9600-9800, GF 5000 & 6000), especially if you are looking to save money for a new D3D10-enabled card. All of the features of a SM2 card should be more than enough to hold you over until it is realistic to upgrade.

Share this post


Link to post
Share on other sites
Okay, well.. I've got the Ati x1400 -128mb graphics video card. Which I believe is shader model 3.0 (I may be wrong though). It's also a laptop video card. Which hopefully, won't effect anything.

My other question is where do I get started. I now know c++ to a level that I believe I can use it with Dx9. I also have access to the full version of 3DS Max 8 (through college curriculum), and I'd like to put it to use with 3D game progamming.

Any guidance would be well appreaciated.

and by:
Quote:

GF 5000 & 6000

Don't you mean
Quote:

Fx 5000 & 6000

Share this post


Link to post
Share on other sites
Quote:
Original post by Instigator
It's also a laptop video card. Which hopefully, won't effect anything.

It should be fine for your purposes. When you get into more advanced things, just check its capabilities first (if you don't know what those are, you will find out).

Quote:
My other question is where do I get started. I now know c++ to a level that I believe I can use it with Dx9.

Go to the DirectX site at Microsoft and download the latest DXSDK. I'd also recommend checking out any of the numerous tutorial sites we have listed in the DX Forum FAQ.

Quote:
I also have access to the full version of 3DS Max 8 (through college curriculum), and I'd like to put it to use with 3D game progamming.

You are going to need a decent exporter to use - the Panda one is pretty good (find it here). As you go through tutorials, you will learn how to load X files, which is what you will need this exporter for.


Quote:
and by:
Quote:

GF 5000 & 6000

Don't you mean
Quote:

Fx 5000 & 6000

I guess, it doesn't really matter [wink]

Share this post


Link to post
Share on other sites
Quote:
Original post by Instigator
Okay, well.. I've got the Ati x1400 -128mb graphics video card. Which I believe is shader model 3.0 (I may be wrong though). It's also a laptop video card. Which hopefully, won't effect anything.
I have to admit I've not heard of the X1400 but all of the X1*** series are SM3 capable...

Quote:
Original post by Instigator
My other question is where do I get started. I now know c++ to a level that I believe I can use it with Dx9. I also have access to the full version of 3DS Max 8 (through college curriculum), and I'd like to put it to use with 3D game progamming.
That's a pretty big question to be honest [smile]

Downloading the latest SDK (which includes both D3D9 and D3D10 should you have Vista and want to have a look at 10) and have a run through the samples and documentation. ati.com/developer and developer.nvidia.com are also good resources - download their respective SDK's (if you're using ATI hardware you may have problems using some Nvidia samples, but you might be lucky).

If you want to learn how shaders work then either 'RenderMonkey' (ATI) or 'FXComposer' (Nvidia) are pretty good tools to play with - they give you real-time editing and previewing of shaders.

Quote:
I'd also recommend checking out any of the numerous tutorial sites we have listed in the DX Forum FAQ.
Some more FAQ information in my Work-In-Progress FAQ here.

Quote:
You are going to need a decent exporter to use - the Panda one is pretty good (find it here). As you go through tutorials, you will learn how to load X files, which is what you will need this exporter for.
Also check out this sticky thread for another exporter [smile]

hth
Jack

Share this post


Link to post
Share on other sites
Quote:
Original post by jollyjeffers
Quote:
Original post by Instigator
Okay, well.. I've got the Ati x1400 -128mb graphics video card. Which I believe is shader model 3.0 (I may be wrong though). It's also a laptop video card. Which hopefully, won't effect anything.
I have to admit I've not heard of the X1400 but all of the X1*** series are SM3 capable...


I have a X1400 (specs) in my laptop, it supports SM3. It's not a particularly great card, it's designed for "thin-and-light notebooks", but it suits my purposes - i'm not doing anything too advanced, it runs Half Life 2 in fullscreen without any problems, and gives what I consider to be a decent framerate in Oblivion with medium textures and most of the fancy effects either off or set to low (though be aware that my definition of decent may be different than yours).

As for learning D3D, I recently switched from OpenGL and found the book Introduction to 3D Game Programming with DirectX 9.0c: A Shader Approach by Frank Luna to be useful. It is an introductory book though - you'll want to later pick up another book that goes into more depth with shaders/HLSL, and if you're new to working in 3D you might want to pick up a 3D math for games book as well.

Share this post


Link to post
Share on other sites
@Will F, I found this quote in your link to the book

Quote:

Officially, Microsoft's DirectX 9.0 now only supports versions of Visual Studio 7.0 (i.e., Visual Studio .NET 2002) or higher.


However, I'm confused because I've read somewhere else that I can use my "Dev-C++" compiler.

Can someone please explain to me what this is all about?

Share this post


Link to post
Share on other sites
Quote:
Original post by Instigator
and by:
Quote:

GF 5000 & 6000

Don't you mean
Quote:

Fx 5000 & 6000


The GeForce 6 series (the 6000 you reference there) are NOT FX architecture GPUs. There's so much different in the arch that you can't call it an FX.

Also, GF 6 cards are shader model 3.0.

Share this post


Link to post
Share on other sites
Quote:
Original post by Instigator
@Will F, I found this quote in your link to the book

Quote:

Officially, Microsoft's DirectX 9.0 now only supports versions of Visual Studio 7.0 (i.e., Visual Studio .NET 2002) or higher.


However, I'm confused because I've read somewhere else that I can use my "Dev-C++" compiler.

Can someone please explain to me what this is all about?


I don't know anytning about Dev-C++, but you can get Visual C++ 2005 Express for free and it's great. You get MS's compiler (which optimizes just as good in Express as it does in Pro/Team edition) so you won't have to worry about DX compatability problems. Plus it has a super nice IDE.

As far as your original question, go ahaid with DX9 since the cards for that are cheap and you don't need to upgrade to Vista, like you would have to do with DX10 (plus the GeForce 8800 GTS/GTX are not cheap cards, although well worth it - I've been using one for months now at work, shortly after tape-out :).

Share this post


Link to post
Share on other sites
Also unless you have Vista installed you won't even be able to run any DX10 apps you might make.
I found this out trying some of the DX10 samples in the latest Microsoft DX SDK.
You can compile them under winxp but can't even run them unless you got Vista installed. Oh well I ran into the same thing compiling my first 64bit directx apps too!

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