Sign in to follow this  
krrice

Beginning Directx

Recommended Posts

Hi everyone, I want to start learning DirectX. So I purchased Introduction to 3D Game Programming with DirectX 11 by Frank Luna. Well I guess my laptops video card (Radeon HD 4250) doesn't fully support the code in the book. So i was wondering if I started learning DirectX 9 will what I learn transfer to 11 or will I be wasting my time? I plan on getting a new Laptop/PC soon but it will probably be a while.

Share this post


Link to post
Share on other sites

I'm not sure but you can change the feature level to 9_1

 

"With Direct3D 11, a new paradigm is introduced called feature levels. A feature level is a well defined set of GPU functionality. For instance, the 9_1 feature level implements the functionality that was implemented in Microsoft Direct3D 9, which exposes the capabilities of shader models ps_2_x and vs_2_x, while the 11_0 feature level implements the functionality that was implemented in Direct3D 11."

 

http://msdn.microsoft.com/en-us/library/windows/desktop/ff476876(v=vs.85).aspx

Share this post


Link to post
Share on other sites

Just to add to riverreal's comment, the section of Luna's book you're after is 4.2.1 "Create The Device And Context" which discusses passing in and retrieving D3D_FEATURE_LEVEL flags to control what feature level you want to support, and what feature level is actually available. Bear in mind that if you use a lower feature level then some (probably many) of the features later in the book will not be supported.

 

Incidentally, do you know what feature level your GPU should support? My laptop GPU only supports DX11 if I force it to use accelerated graphics via the nVidia control panel. Maybe you just need to do something similar with the ATI one?

Edited by BarrySkellern

Share this post


Link to post
Share on other sites

Well, I also had a computer that did not support the DirectX11, and the only thing I had to change was this line: D3D11CreateDeviceAndSwapChain(NULL, D3D_DRIVER_TYPE_HARDWARE, NULL, 0, &featureLevel, 1, D3D11_SDK_VERSION, &swapChainDesc, &m_swapChain, &m_device, NULL, &m_deviceContext);

 

To this instead: D3D11CreateDeviceAndSwapChain(NULL, D3D_DRIVER_TYPE_REFERENCE, NULL, 0, &featureLevel, 1, D3D11_SDK_VERSION, &swapChainDesc, &m_swapChain, &m_device, NULL, &m_deviceContext);

This will allow you to do everything in DirectX11, but will use the CPU to draw instead of the Graphics Hardware. Obviously this will lower your FPS by like a 1000 times, so you will have like 0.1 fps or something. But it will work ^^

Share this post


Link to post
Share on other sites

You shouldn't try to learn DX9 at the moment any more, from a developers point of view it is an atiquated API and most companies have moved on to DX11 for PC and only use it for the X360 part of their engine (and even there it isn't a pure DX9.0c implementation). Most companies now have dropped XP support and with it DX9 as their renderpath and have chosen to use DX 11 and it's feature levels.

Share this post


Link to post
Share on other sites

I haven't learned any DX9 since DX10 was available when I started studying the subject. I don't know how much the DX9 differs from DX10, but the difference between DX10 and DX11 isn't big at all. I had no problems what so ever to switch to DX11, so in that regard I don't think there would be too hard for you to switch from DX9 to DX11 when you can.

But, then again, I don't know how much DX9 differs from DX10. Hopefully this was of any use to you :D

Share this post


Link to post
Share on other sites
<blockquote class="ipsBlockquote" data-author="PwFClockWise" data-cid="5022908"><p>I haven't learned any DX9 since DX10 was available when I started studying the subject. I don't know how much the DX9 differs from DX10, but the difference between DX10 and DX11 isn't big at all. I had no problems what so ever to switch to DX11, so in that regard I don't think there would be too hard for you to switch from DX9 to DX11 when you can.<br /><br />But, then again, I don't know how much DX9 differs from DX10. Hopefully this was of any use to you <img data-cke-saved-src="http://public.gamedev.net//public/style_emoticons/default/biggrin.png" src="http://public.gamedev.net//public/style_emoticons/default/biggrin.png" class="bbc_emoticon" title=":D" /></p></blockquote>The change from 9 to 10 is massive, DX10 changed the whole API and for good reason, the current design is better then what DX9 gave you. DX9 still has to support Fixed Function pipeline which DX10 doesn't have to.

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