Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Learning DirectX in 2013 [closed]

I know there are several topics about this question, but I want to specifiy what Iam looking for.

So I learned OpenGL and got the basics of shaders (programmable pipeline), vertex buffers, index buffers, all together so called "Modern OpenGL".

Iam interested if such a term exists for DirectX.

There are several opinions about which DirectX version to choose. 9 does run on nearly all Windows PCs, while 11 is limited to newer GPUs and Windows Vista+.

My GPU supports 9, while my OS supports 11. Should I choose software accelerated 11 or hardware accelerated 9?

Is DirectX9 is something like deprecated OpenGL? So if I learn DirectX9 instead of 11, is it wasted time or is it usable? In other words. Does DirectX9 offer what modern OpenGL offers?

If so, which sources (tutorials/books/videos) should I use to get the basic skills of using shaders, buffer etc. in DirectX? For example in one tutorial I found this line: d3dDevice->BeginScene(); And it very much reminded me of deprecated OpenGL. I don't want to learn cutting edge DirectX, but I want to make a good trade between compatibility and modern concepts.

In an other thread I found this book: http://www.amazon.com/dp/1598220160/?tag=stackoverfl08-20

But Iam a little bit scared if I waste my time on deprecated old stuff.

To sum up, I need some help, I really can't make a picture of which way to go.

I hope you get my points.

like image 437
DonCalito Avatar asked Mar 06 '13 19:03

DonCalito


2 Answers

I would recommend you download the DirectX SDK June 2010.

DirectX allows you to pick what version of DirectX you want to use while creating the device, so don't worry about that.

This is done in the D3D11CreateDeviceAndSwapChain in the D3D_FEATURE_LEVEL.

A pointer to an array of D3D_FEATURE_LEVELs, which determine the order of feature levels to attempt to create.

What I would recommend you do is download the DirectX SDK June 2010 and check out some the samples that comes with it. Than you should decide how you want to move forward.

For books I would recommend Introduction to 3D Game Programming with DirectX 11 or DirectX 10 or Directx 9. Which ever version you decide to go with.

like image 177
Caesar Avatar answered Oct 01 '22 11:10

Caesar


I would not try to code DirectX 11 using a CPU that doesn't have hardware support for it. It will be all but a pleasant experience. Instead I would either buy a new graphics card (doesn't have to be very expensive), or code in DirectX 9.

The backside to coding in DirectX 9 is that it is very different from 10/11. So, learning 9 really doesn't do you much if you one day want to learn 10/11, except for the real basics.

like image 38
SamiHuutoniemi Avatar answered Oct 01 '22 12:10

SamiHuutoniemi