3D... How?

Started by
7 comments, last by t3rr0r 24 years, 6 months ago
Just dive into the DirectX example programs, and start taking them apart.

I'd also say that a good linear algebra book would be helpful... if you don't know how to multiply matrices, vectors, cos/sin, etc., definitely brush up on that stuff before diving into 3D.

Mason McCuskey
Spin Studios
www.spin-studios.com

Founder, Cuttlefish Industries
The Cuttlefish Engine lets anyone develop great games for iPad, iPhone, Android, WP7, the web, and more!
Advertisement
If you have a little spare cash (I never do...) you should get the text-book Computer Graphics: Principles and Practice. It turned me from novice into... well it is a great book. I learned a alot from it.

Benjamin Tolputt
aka "Night's Eternity"
When you say you know 2D programming, do you mean you know DirectX, ie DirectDraw and DirectInput. If you want to learn D3D you need to know these first. An excellent book for DirectX is "Windows Game Programming for Dummies" by Andre Lamothe, and don't be put off by the title, it's the best DirectX book by far. If you're already ready to start 3D, then you want to look into using D3D Immediate Mode, which is the easiest way to program D3D. There are two techniques, Execute Buffer and Draw Primitives. I use Draw Primitives, which as the name suggests involves drawing simple lines and shapes. You just feed in your global co-ordinates and D3D will rotate and project them and draw the triangle for you using hardware acceleration.
It took me 2 days to convert a rotating cube program I had from DOS to full windows D3D with 3D acceleration, thats how easy Draw Primitives is.

If on the other hand you want to learn to write your own 3D engine, and know everything about 3D programming, you will have to go back to some fairly old books. Since D3D and OpenGL, no one writes books describing how to do 3D graphics anymore, but if you want to know I would recommend reading "How to Build a 3D game engine in C++" by Brian Hook. It goes through the maths in a straight-forward way. Just be warned, it's all in C++, and it won't compile on a modern compiler like Visual C++ without a bit of work. But for learning the basics of 3D, it's the best place to start. Don't start with a 1200 page monster book like Computer Graphics, it could kill your interest in 3D programming once and for all. You may want to buy it eventually but it's got too much in it thats got nothing to do with making a 3D engine, and the way it's presented and written will put you off.
Also when it comes to choosing an API, make sure you contact someone who has used both D3D and OpenGL, because I know nothing about OpenGL, and so couldn't recommend one over the other. All I would say is that D3D will probably survive longer, but then again id software use OpenGL, so it must have it's strengths.

And feel free to E-mail people on this board for more detailed info, or if you get stuck, most of them won't mind.

A really cool book on the more basic parts of 3D (rasterization of primitives etc.) is Abrashs' "Black book of graphics programming" or "zen of graphics programming" (Same book, but the black one contain extra bonus stuff ). It is VERY easy reading (enjoyable even), but a bit dated.

Oh, and CGPNP is THE BIBLE don't speak ill of it - Infact, you should kneel and bow your head when mentioning its name (I'm having a really hard time typing this, on my knees, face down ). That said, it's the book you turn to for backgrounders on the really heavy stuff...

/Niels


<b>/NJ</b>
I have a tutorial on my homepage that shows you how to do 3d graphics.

------------------
http://mazurek.dhs.org/3d/

Is Computer Grpahics for total beginners without math expertise though?

[This message has been edited by simon_brown75 (edited September 29, 1999).]

Hi !!

I would also suggest reading the documentation of DirectX 6 on Immediate Mode. It's great reading though. It's structured, and you also learn some basics, what matrices are, what a vertex is, how to rotate points.
First is that you learn the bascis, you can even use with OpenGL or every other API. Then it goes deaper and deaper into Direct3D. Combining this reading with the source-code is great learing stuff.

And, search the internet. There are sooooo many good articles on Engine design and Math-Basics.

Phillip

Phillip Schuster
I know 2D game programming concepts. I want
to learn 3D. I have no advanced math experience. Where should I start?
As of this week, the DirectX 7 SDK is available for worldwide order from Microsoft for $12 (US), and is reported to be much better documented than previous versions. So it might be better than DX6 SDK as a learning resource. It's also available as a 130 MB download.

This topic is closed to new replies.

Advertisement