The death of D3D9

Started by
45 comments, last by NathanRidley 10 years, 6 months ago

I think that we still are not (unfortunatelly) in the times when XP is dead and you can easily ignore it

From what I know, XP is used mostly in the corporate market, not consumers market. If you bought a PC in the last 4-5 years, you probably don't have WinXP. In that sense - XP is dead and gone.

And if XP is gone, DX9 is gone.

Which leads me back to the conclusion that beginners should treat DX9 as deprecated, and just stay away from it.

Advertisement

I really don't think it makes much sense to work on DirectX 9 anymore... Just look at this Steam Hardware Survey data http://store.steampowered.com/hwsurvey/videocard/.

95% of Steam users (or at least the ones included in the survey, I'm not totally sure how its calculated, and can't find it quickly), have DX10/11 video cards.

Only about 7% are using XP.

It is a little unfortunate that there are so many books that were written during the DX9 age, and comparatively fewer written since; I've got a handful of quite excellent books I picked up a few years ago that are all written to DX9, on topics that don't have a lot of coverage in newer books. Personally, I think the most difficult part of my transition from DX9 to DX11 was the ID3DXMesh class and all of its functionality going away; code that made heavy use of these helper methods is not the easiest to convert, since you really have to learn and understand 3D math.

Eric Richards

SlimDX tutorials - http://www.richardssoftware.net/

Twitter - @EricRichards22

What about if you are/ r were in the last year or so, targeting Xbox 360, that's DX9 - still very much in play if you ask me


What about if you are/ r were in the last year or so, targeting Xbox 360, that's DX9 - still very much in play if you ask me

True, but for people starting to learn graphics now, that doesn't make sense.

What about if you are/ r were in the last year or so, targeting Xbox 360, that's DX9 - still very much in play if you ask me

True, but for people starting to learn graphics now, that doesn't make sense.

Fair point. My engine is in DX9 and I'm kind of dreading the upgrade to DX10+ as I know exactly how everything works and I don't really have time to learn/implement a new/updated API.


Fair point. My engine is in DX9 and I'm kind of dreading the upgrade to DX10+ as I know exactly how everything works and I don't really have time to learn/implement a new/updated API.

I felt the same way when I switched to DX10, but once I got the hang of it, i never looked back.

I remember that about 2 years ago I had to optimize some DX9 apps, and I kept asking myself why couldn't it look more like DX10 (and how the hell did I get to work on DX9, but that's a completly different story).

The new dayz standalone game is going to be made with dx9,you can still make good things with it

People might just want to start with the basics and wait till there ready for dx10/dx11

:)

The new dayz standalone game is going to be made with dx9,you can still make good things with it

People might just want to start with the basics and wait till there ready for dx10/dx11

...but "the basics" can be done with 10/11 too (and you can write some quite complex and advanced stuff with 9).

As many have said upthread, 9 can actually be even more fiddly and complex - compare a mess of SetTextureStageState calls for achieving a multitextured blend effect with just a handful of ALU ops in a shader - the shader code is immediately clearer, easier to maintain and more expressive.

Thinking that the FFP is somehow "simpler" is a bad case of falling into the wrong way of thinking. Thinking that 10 or 11 are more complex is likewise.

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls.

Thinking that the FFP is somehow "simpler" is a bad case of falling into the wrong way of thinking. Thinking that 10 or 11 are more complex is likewise.

It is simpler to start - you need MUCH less code to get your first 3D application working and you don't need to learn so much (you don't need to learn the principle of shaders, HLSL etc.).

It is simpler when you don't need anything complex. You just set the proper states and you're done.

But once you start using shaders, you don't want to go back. You suddenly think that it is simpler to do anything with them, even the very basic stuff. As you say, it's clearer, easier to maintain, more expressive. But this is true only when you already know to bring the shaders to life, if you have your code (or even engine) that you can quickly re-use and you can immediately start making the game logic, without writing tens of code rows only to load the hlsl files, compile them, create shaders, set registers, set shaders before rendering etc.

Seriously - just setting states and transform matrices IS simpler. But also limited. That's why it's called FIXED function pipeline ;) There's a huge difference between a configurable element in the pipeline (you can simply configure it, but the flexibility is limited) and a programmable element (you must programm it in a more complex way, but you have huge flexibility).

Am I the only one who finds DX9 not all that extremly different than DX11? It could be the matter of fact that I started with shaders right away when learning DX9, and don't get me wrong i do like DX11's interface much more since its way cleaner, but the key concepts still remain. Individual states have been replaced by state objects, cbuffers instead of constant registers, and so on, but honestly, if you have learned DX9 without the FFP, it shouldn't be too hard to switch to DX11, and you'd already have learned a lot of concepts you need for eigther API...

This topic is closed to new replies.

Advertisement