Jump to content
  • Advertisement
Sign in to follow this  
blanky

OpenGL Re-Learn DX10?

This topic is 4614 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hey guys, I've been wanting to ask this question for a while, it might've already been discussed but I found no reference of it, sorry. If I learn DX9 (D3D), would I have to relearn DX10 when it comes out? What I mean is, would it have a completely different API? Or would it be the same (obviously with add ons). I'm sorry if I dont state this clearly, please ask me to elaborate if I didn't. This is a reason why I want to use OpenGL instead, but then again I'm not very fond of OpenGL's extensions.

Share this post


Link to post
Share on other sites
Advertisement
DirectX 10 won't be in your hands for a very long time. Anyway, as a software developer you will have to learn new languages and APIs for the rest of your life (the most valuable thing you can learn is how to learn, then you'll be infinately adaptable). Only the people working on DX10 will be able to tell you exactly how much the API will change, but if you accept the fact that, as a software developer, you'll have to frequently learn new things, you'll be able to handle it when it comes. That said, they're planning on some big changes, that's not to say your DX9 experience won't be useful when DX10 comes around though.

Share this post


Link to post
Share on other sites
Learning DX9 will help you out with DX10 *a lot*. There are changes in DX10, but all can be taken in stride if you already know the fundamentals of it. I recommend taking a look at some intro DX9 tutorials and getting familiar with the API. Then, when the beta for DX10 comes out, get it and start looking at that stuff. It shouldn't be too long at all.

If you don't really know too much about graphics programming, now would be a perfect time to pick up the fundamentals of it (underlying math and techniques). Remember that in D3D10, there will be no FFP, so you will have to write all of your own shaders, so you must have the necessary background for that, too.

Share this post


Link to post
Share on other sites
Quote:
if you accept the fact that, as a software developer, you'll have to frequently learn new things, you'll be able to handle it

That's some good advice there. DirectX10 is a WindowsVista only component, so you won't see it in a 'final' form until it's released (currently 2H-06). You've got *plenty* of time to learn DX9. Learning DX9 will not be a waste of time.

Quote:
Remember that in D3D10, there will be no FFP, so you will have to write all of your own shaders, so you must have the necessary background for that, too.

If you're learning D3D9, you really want to focus on the programmable pipeline. If there is one implementation skill that you'll be able to take from D3D9->D3D10 it'll be the concepts/methods of the programmable pipeline [smile]

Quote:
when the beta for DX10 comes out, get it and start looking at that stuff. It shouldn't be too long at all.

A relevant quote from Chuck Walbourn:
Quote:
The runtime components will be inbox for Windows Vista Beta 2. The Direct3D 10 documentation, samples, headers, libs, reference rasterizer, etc will be entering public beta in a DirectX SDK release in sync with Beta 2.

Which basically leaves the question as to when Windows Vista Beta 2 is out [wink]. I'll refrain from commenting, but I've seen enough talk online that seems to be fairly logical/'accurate'.

hth
Jack

Share this post


Link to post
Share on other sites
Thanks guys, of course I understand learning new APIs, I was just curious if the API would change all that much (functions, etc.) But you're right, there's lots of time anyways.

Share this post


Link to post
Share on other sites
Quote:
Original post by jollyjeffers
Quote:
Remember that in D3D10, there will be no FFP, so you will have to write all of your own shaders, so you must have the necessary background for that, too.

If you're learning D3D9, you really want to focus on the programmable pipeline. If there is one implementation skill that you'll be able to take from D3D9->D3D10 it'll be the concepts/methods of the programmable pipeline [smile]

I'd be a little wary of that logic. Not that there's anything wrong with the programmable pipeline, but I've noticed a fair number of people coming up who don't understand what the programmable pipeline is, because they don't understand what preceeded it and what precisely is replaces. I'm not saying you should spend a huge amount of time working with fixed function, but get to know it as well.

Share this post


Link to post
Share on other sites
Quote:
Original post by Promit
Quote:
Original post by jollyjeffers
Quote:
Remember that in D3D10, there will be no FFP, so you will have to write all of your own shaders, so you must have the necessary background for that, too.

If you're learning D3D9, you really want to focus on the programmable pipeline. If there is one implementation skill that you'll be able to take from D3D9->D3D10 it'll be the concepts/methods of the programmable pipeline [smile]

I'd be a little wary of that logic. Not that there's anything wrong with the programmable pipeline, but I've noticed a fair number of people coming up who don't understand what the programmable pipeline is, because they don't understand what preceeded it and what precisely is replaces. I'm not saying you should spend a huge amount of time working with fixed function, but get to know it as well.

If you don't intend to be using D3D9 for a long duration of time, I'm not quite sure why one would learn a deprecated technology such as the FFP. Many of the challenges people have with the programmable pipeline are the result of them not understanding fundamental concepts of graphics programming. The FFP allows for this lack of knowledge, which is exactly where people get into trouble. For example, learning how to use the FFP to enable fog (for instance) isn't going to help you implement a fog shader.

I don't think that the PP is necessarily replacing the FFP, because for a while now, the FFP has existed more or less as a library of shaders that D3D just set up for you. Of course, the API for this library wasn't the best, as it was layered directly into the other API (as a result from when programmable shaders weren't available).

Share this post


Link to post
Share on other sites
Is it 100% confirmed they are going to cut out the FFP? If it is, I hope there will be some alternative API rolled in to replace the FFP...

Shaders are all nice and dandy, but there is so much funtionality stowed away in the FFP which is gonna require additional effort to code in shaders (anything having to do with multiple texture stages, alpha operations etc). As an alternative, more powerful API for the pipeline shaders are just fine, but if it's gonna be the complete replacement for the FFP it needs more work... A new API shouldn't make things more complex by taking away levels of abstraction IMHO.

The FFP for example works out of the box, while you'll have to code your own shader to get started with DX10, at least from the sound of it. That's not too much work, but a number of simple default shaders, that perform the same functionality as much used FFP settings, would really be nice... especially for beginners who want to focus on getting things rendered in the first place and NOT HOW on earth to render them.

But since...

Quote:
...the FFP has existed more or less as a library of shaders that D3D just set up for you.


...I guess they'll at least release these FFP shaders for use to get started with. Come to think of it, how will DX10 support non-DX9 (< ps2) hardware? Guess not at all then, right?

[edit]

Seems I got worried again for nothing, going from the PDC talk on ZBuffer. Since at least Vista will still ship with DX9, we can still use it, right? ZMan also said in the article that no DX10 hardware exists yet, so I reckon it's gonna be 1 or 2 years before it gets really accepted and used, no?

Share this post


Link to post
Share on other sites
Guest Anonymous Poster

Hi,

Biggest changes in DX came around DX5-DX7 to DX8. After DX8 the changes has been more like refining and tuning little things. Difference between DX9 and DX8 aren't so big anymore.

When ever there has been a new DX available, I have upgraded my DX part of the code and it has been worth it.

Cheers






Share this post


Link to post
Share on other sites
Thanks for your feedback, since I'm now also very much interested in this :)

However, I read that DX10 will completely break backward compatibility with DX9 (introducing the geometry shader and numerous other features), so I guess we're looking at something similar to the DX5-DX7 to DX8 shift. Would anyone happen to have some good links on what is going to change with DX10 exactly, so I can read it firsthand? :)

On a releated note, I just came across Shadergen for OpenGL, which converts OpenGL FFP settings to a shader for you, complete with compatibility checks against OpenGL versions and video drivers. Does anyone know if something similar exists for DirectX / HLSL? It looks like a great tool, even more so with DX10's reported lack of the FFP.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!