Advertisement

Learning DX11 from DX12 book - is it possible?

Started by January 07, 2019 01:59 PM
6 comments, last by Juliusz K 5 years, 11 months ago

Hi,

I probably know the answer to this question myself, but just would like to hear a confirmation and a bit more elaborate answer from someone more experienced.

So, I decided to learn DX11 and asked "Santa Claus" for a specific book - 'Introduction to 3D Game Programming with DirectX 11' by Frank Luna. "Santa" however wanted to be the best he (she...) could be and decided to get me 'Introduction to 3D Game Programming with DirectX 12' instead. Cause 12 is more than 11 and the more the better, right...? ;) :)

So, yeah - I want to ask if it's possible to learn DX11 from that book as well. I don't know how much of a difference between these two APIs there is. I know, that DX12 is backwards compatible and also that DX12 gives more low level access to the graphics card. So, I don't know if this low-level is just something additional, or does it affect the way you talk to your graphics card overall? And most importatnly - is the DX12 version of this book a simple extension of the previous one or is it completely re-written and updated?

I'm rather a beginner in C++ and in a low-level programming in general, that's why I wanted to start with DX11 - not 12. Also I do not have Windows 10 machine yet, so this would hold me back for a while now at least.

I'd like to hear from people who are after these books or who have experience with both versions of this API.

Thanks in advance.

There are some fundamental differences in the setup and rendering code between DirectX 11 and 12, most of which have to do with getting increased performance. I have both books from Luna but I haven't really looked at DX12 deeply.

All I can say is: you can code in DX12 and use the DX11 feature level for those who do not have DX12 GPU support.

I really think DX12 is the future though, especially with the new GPU accelerated ray tracing features in it.

Advertisement

For Junior Level you must reach engine (demos) like this: https://github.com/iftodebogdan/GITechDemo ; https://github.com/JoeyDeVries/Cell ; https://github.com/fynnfluegge/oreon-engine ; 

Maybe at first. Try to fluent in Real Time Rendering (2008), at least.

It's not depends of GAPI or any. You can learn Vulkan, and it's will good for job. If you want just "draw a cube", use OGL 4. 8/10 companies will ask you adout demo.

You might be able to get santa's little helper to replace your book?

Otherwise, honestly, there are so many good tutorials freely available on the web teaching DirectX 11 that I'd recommend starting with one of them rather than learning from a book anyway.

A word of warning though: if your C++ is shaky, graphics tutorials and books of all stripes show badly structured and arranged code so don't try and model your own programs on how they are written.

Answering the question directly, no. D3D12s pipeline, while relatively similar, is a much more low-level adaptation of the GPU pipeline. Arguably it may make learning D3D11 down the road, easier, but that's neither here, nor there.

Buffer Creation/RTV management/Pipeline interfacing/Buffer Swapping concepts are fundamentally different, and while some tools provided by Microsoft may make the api resemble 11 a little more, the question pertains to D3D 12 Core, and what's covered by Lunas materials.

That being said, the knowledge gained with DXGI, and HLSL would be transferable. (Not counting specific version eccentricities) 

I also understand why you may want one of Frank Lunas books as opposed to an online tutorial. Luna has a distinct writing style, and generally produces good content. While I wasn't overly pleased with his d3d12 book, that was mostly preference. 

3 hours ago, Hermetix said:

I really think DX12 is the future though, especially with the new GPU accelerated ray tracing features in it.

I'm going to play devil's advocate here and argue that both the DX11 and DX12 interfaces will stay alive and separate for different use-cases. DX12 gives you access to greater performance possibilities, but also the rope to hang yourself with. Whereas DX11 is going to be the standard approach for areas where you don't need access to those greater performance possibilities.

Naturally, if you're talking ray tracing, then you're also talking about needing to have high performance requirements and so you'll have to get used to DX12 - unless MS come up with a simpler access layer of course ? 

In terms of books and the original question - no. Either use the rastertek tutorials:

or Luna's book. As an aside, you might also want to try 'Game Engine Architecture' by Jason Gregory, but that's less for DX11 and more for extending your knowledge afterwards.

Steve

Advertisement

Thanks everyone for answering my question - gives me a much better idea of what to do. I think I'll keep the book for the future and start with the tutorials suggested. I probably still will go for the Luna's book on DX11 I originally intended, since books tend to be well structured and it's always a good idea to check a couple of sources to get a better understanding of the topic.

And yes - I understand that engine architecture is another thing from just being able to get something rendered in a window, so thanks for recommendation on that too.

 

This topic is closed to new replies.

Advertisement