Your moderator needs your help: How did *you* start learning Direct3D?

Started by
58 comments, last by Bulma 17 years, 9 months ago
Afternoon all, Those of you that are following my journal will know that I'm (slowly) working on an update for this forum's FAQ. It's slowly getting there, but I've hit one entry where I could really do with some input from you [wink] D3D #1: What should I learn first? Whilst I've got a fair few bits-n-pieces its been a long time since I was in the position to be asking that question. Thus it'd be appreciated if you could share any details about what you did (or are doing) to learn the Direct3D API.
  1. Did you start with tutorials/examples?
  2. Which website(s) did you download samples/tutorials from?
  3. Which book(s) did you buy/read to help you get on your way? Were they any good?
  4. Did you "read around" the subject - general graphics programming, mathematics... If so, are there any particular resources you used?
  5. Did you jump straight into 3D or start with 2D?
  6. Did you read the SDK documentation and tutorials?
I'm not too interested in covering the stuff about SDK's/IDE's/languages - thats covered elsewhere. I'm only looking to go over the Direct3D specific stuff. Cheers, Jack

<hr align="left" width="25%" />
Jack Hoxley <small>[</small><small> Forum FAQ | Revised FAQ | MVP Profile | Developer Journal ]</small>

Advertisement
Good to hear the faq is not dead ^^

Well, for my part, I started learning 3D by the maths. Vector / Matrix algebra, etc. That was at school. Then for my personal interest, I started playing with OpenGL since it's quite straightforward and easy to use.
And I would really recommend doing this, because when I started working with Direct3D, I was already familiar with the theory of 3D (I knew what a view / world / projection matrix was and how to use them, etc.) and I only had to learn the API ... and that is difficult enough ^^

So :

1) learn the basics of 3D (vector / matrix mathematics, what is rasterization, etc. All the basic stuff)
2) download the DirectX SDK and start playing with the samples.

The samples were my primary source of documentation. And the second source was here ^^

I don't know if this'll be of any help, but that's how I learned Direct3D, and I'm quite happy with that. When I see people playing with the samples who don't even know what's a view matrix and how it interacts with the scene ... I really think that the theory should be learnt first ^^
1 -
At first I started with tutorials and examples, but they didn't help me joining small fractions of code they gave me. I need to see a big picture and tutorials in general are for quick learning given you know the general picture of the API.

I then went to books, but still the majority of the ones I looked at were much like the tutorials, just small fragments of the API with little to no explanation of why they are there any only the small implementation to connect them.

2 -
I found the most help starting off at DrunkenHyena's page, the tutorials were good and lead me in the direction I wanted.

3 -
I don't really remember, it was a long time ago and the books weren't of much help. They're probably packed away somewhere, the books I really use are in my posession.

4 -
Well, what I actually did was get a feel of the API and it's contents by scanning MSDN. It's the only way I could attach everything together. I ended up using MSDN as my primary resource.

5 -
2D first, and still. I do a bit of 3D but for the most part I like 2D games much better.

6 -
The SDK, a lot. Sometimes I go grab an article, read it through then look up those on MSDN so I can get an idea of it's use. I don't like being bound by one method of thinking.
Did you start with tutorials/examples?
At first I played around with tutorials, but moved on to books which seemed a little more helpful.

Which website(s) did you download samples/tutorials from?
Which book(s) did you buy/read to help you get on your way? Were they any good?
I started with "Programming Role-Playing Games with DirectX" (B+) and "Special Effects Game Programming with DirectX"(C+). But it wasn't until I discovered "Introduction to 3D Game Programming with DirectX 9.0"(A) that I really started to get a grasp on everything. Frank's next book "Introduction to 3D Game Programming with DirectX 9.0c: A Shader Approach"(A+) is the book where I have learned what I know about shaders. It helped me to read those books and tutorials to see the different ways of doing the same thing.

Did you "read around" the subject - general graphics programming, mathematics... If so, are there any particular resources you used?

Did you jump straight into 3D or start with 2D?
I fooled around with 2D a good while back, but wanted to get into the 3D stuff. The 2D didn't really help me learn 3D.

Did you read the SDK documentation and tutorials?
I didn't read them until I had a grasp on things. The documentation is a necessary reference.
---------------------My specs (because I always forget to post them)Intel P4 2.4 GHz640 MB system memoryRadeon 9700 PROWindows XPDirectX 9DirectX 8.1 SDK
1. I only did a few very basic tutorials before trying to implement 3D into my own engine. After that I read trough some samples and added functionality.
2. toymaker.info and gamedev where my two sources in the beginning. Read about 50 or so pages in the forum in a row.
3. I read Real-time 3D terrain engines using C++ and DirectX 9 by Gregg Snook and I found it very helpful.
4. I didn't when starting out and because of my very limited knowledge of Math when I begun I probably should. I would recommend people to do so but I doubt I would have still.
5. I had worked some with SDL before starting with Direct 3D but very little. There are differences sure but I think that a basic 3D-engine is as easy as a good 2D-engine.
6. Yes, not all the documentation at first since there is so much information but before the project I was working on was completed I had read most of it.
Quote:Original post by jollyjeffers
Did you start with tutorials/examples?

Yes, if I remember correctly.
Quote:Which website(s) did you download samples/tutorials from?

I started with the DXSDK samples, then moved to Andy Pike I think.
Quote:Which book(s) did you buy/read to help you get on your way? Were they any good?

I only have shader-related books:

  1. Shader X2: Introductions
  2. Shader X2: Advanced Effects
  3. Shader X3
  4. Shader X4
  5. GPU Gems


I wrote for X4 and X5...so pick up a copy [grin]
Quote:Did you "read around" the subject - general graphics programming, mathematics... If so, are there any particular resources you used?

Graphics forum FAQ and Real-Time-Rendering website
Quote:Did you jump straight into 3D or start with 2D?

I dabbled in 2D first, before D3D got really big.
Quote:Did you read the SDK documentation and tutorials?

Yea, although I don't really look at it much anymore.
Dustin Franklin ( circlesoft :: KBase :: Mystic GD :: ApolloNL )
1. Yes.

2. When I was learning DX8 with VB6, jollyjeffers' old site was my main resource. As for DirectX9/C++, drunkenhyena's site was a huge help.

3. I bought Tom Miller's DirectX kickstart book when I began to use MDX. I thought the book was great, though it would probably be more useful to a complete beginner with DirectX.

4. I mainly just jumped straight into DirectX. I already had a decent grasp of trig for most vextor math. Most other info I have learned accross the way through posts here and various tutorials.

5. I did some 2D with Visual Basic (basic picture boxes, then bitblt) before moving on to 3D stuff with DirectX.

6. Yes, they were a great help starting out and still for a quick reference.
Sean Henley [C++ Tutor]Rensselaer Polytechnic Institute
I started with the SDK examples, and then went my own path from there. It didn't hurt that I already knew OpenGL, and computer graphics in general, pretty well, though. Learning DX was mostly a matter of learning the API specifics and conventions (rather than learning graphics from scratch).
enum Bool { True, False, FileNotFound };
Well, I have been using OpenGL for quite long, and I was familiar with shaders and just advanced stuff. The Direct3D API is not much different. The basics are the same, so I use mainly the SDK documentations.
"C lets you shoot yourself in the foot rather easily. C++ allows you to reuse the bullet!"
1. Read Intro to DX by Frank Luna and later proofread his 2nd book
2. Read Essential Math for Games and Interactive Applications (when I realized part way into the first book I didn't understand the linear algebra concepts)
3. After books, study SDK samples with DXUT, and write first game using .x files in SDK.
4. Found GameDev, and from here ToyMaker and TrippleBuffer samples on .x files.
--------------------------Most of what I know came from Frank D. Luna's DirectX books

This topic is closed to new replies.

Advertisement