DirectX 9 or DirectX 10 for starters?

后端 未结 9 456
后悔当初
后悔当初 2020-12-30 09:59

I want to do projects to make my resume more appealing to game companies. So I am going to start buying books. But I don\'t know rather to read DirectX 9 or 10 api books to

相关标签:
9条回答
  • 2020-12-30 10:31

    Fact is, you need to learn both.

    As long as 50% of gamers are still on WinXP, you're going to need to be able to program in Direct3D9.

    D3D9 isn't any easier to get started with than D3D10/11. Its the same principles, with vertices to be placed, normals to be calculated, and meshes to be rendered. Whether you're creating a ID3D11BlendState structure or calling IDirect3DDevice9::SetRenderState(), its the same concept, just different ways of doing it.

    After working with d3d11 a couple of days, I've come to think of it as better than DX9 in a lot of ways. For one, you're able to use the full caps of the GPU including geometry shaders. 2nd, it forces you to fully understand the graphics pipeline to even draw anything (note how functions are named after the stage of the pipeline they affect: here: (IA* fcns: input-assembler stage, OM* fcns: output-merger stage etc) ). This may result in a slightly larger INITIAL startup curve, but once you get it, its not any harder than D3D9 and is better, since the very naming of the functions helps concepts stick.

    So get going on both, and learning them in tandem may help reduce the amount of effort you spend learning deprecated API's/methods of doing things from DX9 (ie you really want to spend more time using shaders, and don't use the fixed function pipeline section of DX9 too much).

    0 讨论(0)
  • 2020-12-30 10:31

    With some little exceptions, DX10 is just a legacy free DX9. For example DX9 had build in options for rendering Flatshaded, Textured or using a Shader. In DX10 these options are gone, you always have to use a real shader. If you want to do flatshading, write a HLSL shader that does flat shading.

    So I would suggest you learn DX10 (or DX11). You will be able to adopt fast to DX9 but with a more modern coding style by not using legacy functions. They can be quiet confusing, so DX10 will focus you on relevant things.

    If you are a real beginner, and setting up a vertex-buffer to create a single triangle is confusing you (as real 3D-Programmer you are no more interesten in single triangles) I even would suggest to start with OpenGL. You will have faster success, but in reality this can be a little bit distracting as DX9-Legacy if you want to focus on modern 3D-Coding.

    0 讨论(0)
  • 2020-12-30 10:34

    Try doing the samples from the sample folder of both 9 and 10, and if your computer can support it, 11. This is what I am doing.

    0 讨论(0)
提交回复
热议问题