Skip to main content
GameDev.net gamedev.net
🔒 Locked

DirectX11 2D Book

Started by ~Helgon Nov 28, 2012 at 5:59 PM 8 replies 9.9k views
Original Post
~Helgon
~Helgon
Hi,

can someone suggest me a DirectX Book which is specified on 2D programming? (or isn't it like XNA where 2D and 3D are "pretty" splited?).
It should be written for DirectX11.


Regards Helgon
from time to time i find time
Inuyashakagome16
Inuyashakagome16
http://my.safaribooksonline.com/book/programming/game-programming/9781435458956 < Maybe start with that?
(Hopefully I get this right)
Pretty much any book about DirectX will have 2D practice / tutorials in it. As far as a book just made for "2D Programming" I wasn't able to find one while looking. I'm sure someone else here has seen one and hopefully they'll jump in here soon. Besides that book, you could also try these online tutorials: http://www.rastertek.com/tutindex.html

Hopefully that helped.
Ravyne
Ravyne
Are you wanting to learn Direct2D or 2D rendering via Direct3D?

Direct2D can do bitmaps and all that jazz, but its really more oriented towards vector-style 2D Graphics.

If you do 2D via Direct3D, then you have to deal with the 3D API, setting up your pipeline and whatnot, but everything simplifies when you drop the z-axis from your game logic/rendering (even if you still use it to z-order sprites, etc), and you can hide all the details in a wrapper class just once if you like, and never have to look at it again. There's probably also a plethora of 2D engines already built on Direct3D 11, or which can be readily ported from Direct3D 10.

Most good Direct3D books that aren't aimed at experts will have a few chapters that are applicable, which is generally good enough coverage. I don't think there's been a dedicate book on the topic since Focus on 2D in Direct3D, which was DX9-era, I think. If you can get a copy of that, the concepts should apply, but the code won't just copy and paste into Direct3D 11.
throw table_exception("(? ???)? ? ???");
MJP
MJP

If you do 2D via Direct3D, then you have to deal with the 3D API, setting up your pipeline and whatnot, but everything simplifies when you drop the z-axis from your game logic/rendering (even if you still use it to z-order sprites, etc), and you can hide all the details in a wrapper class just once if you like, and never have to look at it again.


Or you can just use SpriteBatch, and call it day.
~Helgon
~Helgon

Are you wanting to learn Direct2D or 2D rendering via Direct3D?

Direct2D can do bitmaps and all that jazz, but its really more oriented towards vector-style 2D Graphics.

If you do 2D via Direct3D, then you have to deal with the 3D API, setting up your pipeline and whatnot, but everything simplifies when you drop the z-axis from your game logic/rendering (even if you still use it to z-order sprites, etc), and you can hide all the details in a wrapper class just once if you like, and never have to look at it again. There's probably also a plethora of 2D engines already built on Direct3D 11, or which can be readily ported from Direct3D 10.

Most good Direct3D books that aren't aimed at experts will have a few chapters that are applicable, which is generally good enough coverage. I don't think there's been a dedicate book on the topic since Focus on 2D in Direct3D, which was DX9-era, I think. If you can get a copy of that, the concepts should apply, but the code won't just copy and paste into Direct3D 11.


Thanks for the answer. To be honest i didn't even know that there is something called Direct2D. In fact that's what i wanted but after reading your post i realized that setting it up in 3D environment just without the Z-Axis is a better solution.

Can u post some of the older Directx9 books which cover this topic (2D Games in Direct3D)? I think it would help to get into it. The porting is not the problem.

Regards Helgon
from time to time i find time
KingofNoobs
KingofNoobs
Helgon,

I would HIGHLY recommend following MJPs advice and going with SpriteBatch. I have just finished up (well almost) a several months journey getting my spriting working well in D3D11. I have never used SpriteBatch, but I assume it is efficient and easy to use. Send me a PM if youd like to see my code.
~Helgon
~Helgon

Helgon,

I would HIGHLY recommend following MJPs advice and going with SpriteBatch. I have just finished up (well almost) a several months journey getting my spriting working well in D3D11. I have never used SpriteBatch, but I assume it is efficient and easy to use. Send me a PM if youd like to see my code.


Hi, yeah i would like to see your code (to get a feeling)

and the SpriteBatch really seems to be pretty nice. At least even if i wanna do it totally by my self i can have look there how they done it.

Is it made by Microsoft (http://directxtk.codeplex.com/) or is it a project of someone?
from time to time i find time
PwFClockWise
PwFClockWise
As other people already pointed out Spritebatch in DirectX 11 looks pretty nice. Unfortunately I haven't tried it yet, but it looks really neat. Here is some simple documentation, i didn't look too much into it, but it seems fairly simple and there are some further reading in it as well(which I haven't read).

http://directxtk.codeplex.com/wikipage?title=SpriteBatch

Hopefully this can be of any help. If you do anything nice I would love to see the result as well!
~Helgon
~Helgon
So.. no suggestions of any Directx9 books which cover doing a 2D Game in Direct3D ?
from time to time i find time
MJP
MJP

Is it made by Microsoft (http://directxtk.codeplex.com/) or is it a project of someone?


It was developed by a Microsoft employee (Shawn Hargreaves, who used to work on the XNA Framework), but I don't think it counts as an "official" Microsoft project or anything like that. Either way it totally works, and it has a very similar feature set to the SpriteBatch in XNA (which many many people successfully used to make their 2D games).

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.