Introduction to 3D Game Programming with DirectX 9.0
Frank D. Luna


Compras Nikon
Bluetooth
1 Top class
Well i recived this book as a gift. When i started to reading it i didnt know anythig abaut directx. I must say its a exelent book, it explains everything u need to know abaut d3d. its a great introduction to begginers but is also great for advanced users. It has a part on win programming so u dont need to also know theat before buying, but u need to know c++.
2 just a taste...
I am an applications programmer who was interested in learning graphics API. I was interested in learning something I could use for 3D game development that skipped over the 2D garbage I endure with Javascript. After quite a bit of research on my part I discovered this book. And I enjoyed every page. Very professional for a programming book and very to the point, the author takes on a romp through basic techniques used in DirectX. Granted he stays completely in Direct3D and does not discuss DirectPlay or DirectSound, but this is a beginning DirectX book. He gets you to understand the meat of the subject, 3D. This book covers the essential math you'll need to understand the following chapters. The chapters after that cover vertex buffering, programmable pipeline, vertex shaders, effects framework, transformations, ect. The only thing that wasn't covered, that I was expecting, were the animation functions and charector animations. Other than that it was a fine text. All in all it took me one week to read this book, dedicating about an hour a night. Subsequently I followed up by reading through it again and taking notes. A follow-up book will be required to begin making games of any great substance. This title was a perfect INTRO to the topic of Direct3D.

3 An Excellent Introduction.
Firstly, let me say that this is a beginner book and even though it says "Game Programming" in the title it doesn't have much to do with game programming. That said, it still gives you a better head start in game programming than most books that actually do cover game programming (if that makes any sense).

What I like about the book is that it has almost no coverage of Win32 and COM (there is a good appendix if needed, but you really should get books dedicated to the subject). The math overview is particulary good simply because the author relates it to Direct3D all the way, so you aren't left to figure out how to implement the theory through the DirectX API.

The other topics are all solid introductions to the various parts of Direct3D (setting up, lighting, meshes (very good), vertex/index buffers, v/p shaders etc) and a very usable camera class and a nice simple introduction to terrains.

You certainly aren't going to be able to write an AA title after reading this book but it gives a solid introduction that you can work from, which is sadly lacking in most other books.
4 THE beginner's Direc3D API book
If you're going to learn Direct3D, GET THIS BOOK.

I have other books (Beginning Direct3D Game Programming by Engel), and they don't hold a candle to this book.

Not only does he explain everything you NEED to know, he tells you to look up whatever he doesn't explain within DX's SDK.

Everything he does in this book has a plan. The organization is top notch, with the starting point being a primer on how to set up visual studio to compile and run directx programs. The next step is a math primer which should be mandatory for any book that is about 3D graphics, but apparently other authors would rather spend their time talking about higher level stuff in a beginner's book.

I have to say that without this book, I would have had a lot tougher time learning Direct3D.
5 Very good book
So far, i bought 5 directx books. this book, was the first one who realy helped me start writing my own 3D scenes. i love this book because its a small one (400 pages) and focuses only on important things. i always have the dilema when buying a new book: whether to buy a 1000 pages book or a small one like this one. i always pick the bigger one and i always seem to be wrong. you should always start withg small beginners books and continue to the larger ones.
anyway this book helped me alot and today im ready for the big ones.
one thing about the source code: sometimes it takes a lot of effort to run it under vc++6. personaly, after struggeling with the vc++6 compiler, i switched to vc++7 and everything was fine.
the book's web site is very good - very friendly. all your questions will be answered by the author and you'll find a lot of extra information.
Buy this book even though you have much larger books at same price. here you'l learn the basics of direct3d (version 9) with much less pain.
cheers!
adi barda israel

6 Only good for beginner programmers
First of all don't let the title mislead you, it's an introduction to 3D programming with DirectX 9.0 (not GAME programming at all).

The book opens up to a whole introduction on basic 3D math, which is good for a reference because the particular section seems to be completely error free according to its errata (download at the book's site: http://www.moon-labs.com/). The math is mainly on the basics of vectors, matrices, planes, rays, and anything else the book will exercise, so will not leave you hanging if you aren't very good at the subject. It is well written overall and goes over the preliminaries of Direct3D (note, only Direct3D, it uses windows messages for key input rather than DirectInput) then provides a few examples to go with. Each subheading gets to the point and is always followed by a definition of the structure variables and parameters that Direct3D uses (though it's always best to use the Microsoft DirectX SDK help file for updates and changes of which have undergone in the past year). The back section is on the very basics of the Windows API, all you really need to know in order to construct a window for Direct3D - so don't buy some huge book on Windows programming.

On the negative side, some of the chapters are pointless. For example: 3D text (what for? a screensaver?), loading unanimated .x files (because if you want to animate them, it takes a lot of code... learn a popular format instead such as md2/md3 unless you want static models), the particle effects, and the chapters on shading - though is a decent reference when you want to come back to the subject, as it is a quite complex topic. I recommend you download NVIDIA's FX Composer, or ATI's Render Monkey for proper shading rather than Microsoft's Effect Edit which is what the book uses. If you are moderate at C++, then the particle effects would be pointless as you will most likely be able to build your own. The effect demos seemed to run with fluctuated movement, as if the timing was poorly made, others tend to run way too quickly. The picking example is not perfect; in fact it's off a few units due to the projection, so use the DX SDK sample provided by Microsoft instead. I really disliked the unnecessary scope on some functions such as ::GetAsyncKeyState. I also dislike how he sets a material for everything... Usually from the projects I've seen, there is only need for one preset material set to full color, so set it and forget about it. The blending chapter is too short, you should learn how colors work or else you'll have no idea what good the operations can do for you, such as subtraction and reverse subtracting. The particle effects use a blended source of D3DBLEND_ONE, use D3DBLEND_SRCALPHA so that you can make them more transparent! As for the minor flaws such as the annoying omitted "_" , I'd recommend it to beginner programmers, more advanced people should seek a reference book on the DirectX API instead.

It definitely helped me at the start of this year when I first started to learn programming all together; you can see my work here: http://dxelliot.tripod.com
7 comprehensive book with good technique
I pick up this book and found out that this is the book I always wanted!Not every book I brought did explain everything and everything well.But this one explained every single step well and understandable for me. I personally need to thank the authors themselves for writing such a good book on DirectX 9 in 3D.Buy and read it yourself, you will understand what I meant by THE BEST BOOK I ever had!!
8 Best Book to Start with Direct3D
This book is a great start for people wanting to learn Direct3D and a great reference for Direct3D programmers. Frank Luna's book covers several important topics for getting started with 3D graphics using DirectX 9.0, and refrains from any off-topic discussions or biased rants.

The book includes a section on basic math concepts for 3d programming. Also includes sections on Direct3D fundamentals (which explains D3D9 initialization, the Direct3D rendering pipeline, and drawing in Direct3D with vertex/index buffers, color, lighting, textures, blending and stenciling) and applied Direct3D concepts (fonts, meshes, .x files, cameras, basic terrain rendering, particle systems, and "picking"). The author devotes the final section to vertex and pixel shaders and effects using HLSL (high-level shading language). He also includes a quick introduction to setting up a skeleton windows application as an appendix (where it should be located in a book on DirectX).

One final thing to note about this book is that it only covers the Direct3D portion of DirectX 9.0, so you'll need to go elsewhere for coverage of DirectPlay, DirectInput, DirectSound, etc. Howver, the fundamentals of Direct3D are covered with the depth necessary to give a completely understanding of how to begin coding 3D graphics with DirectX 9. After reading several books on DirectX and game programming, this is the book I wish had picked to read first.


9 Buen libro, sin duda
Este libro no es para principiantes, definitivamente, en bueno para personas que ya conocen firmemente los primeros pasos en Dx 9. Los programas ejemplo, facilmente pueden ser combinados, tiene efectos nieve, laser, etc, me encanto el algoritmo para mover la camara, me resolvio mis problemas en ese aspecto. Tambien otro de sus puntos fuertes es el render de terrenos complejos, con eso logre hacer mi primer juego en serio.
10 very nice
a very good book that takes you along the way of 3d programming using Direct3D.and thats all it does.like one of the previous reviewers said it is focused only on Direct3D
11 The best intro book I've read
I've read many introductory books on DirectX, and this is by far the best. The author does a great job of explaining a lot of concepts both clearly and timely.

The book is very easy to read. He has a short section on math, which made vector, matrix and plane math easy to understand. This is followed by chapters on Direct3D fundamentals that offers a great recap if you already know this stuff. Next, comes chapters on applied D3D that include using fonts, meshes, terrain rendering and particle systems. Finally, he covers shaders and effects.


12 The almost perfect intro book to D3D
If you know C++ at a reasonable level (meaning pointers , references structures and classes don't scare or confuse you)
this is book is a very good starting point in your directx quest.
It has the advantage of not spending hundreds of pages on windows programming details or even worse on GDI like the many LaMothelian game programming series books...but it gives you a little framework in which to work with and it explains how it works and why.
Subject coverage is very good, and you will get explanations and working code on interesting subjects like terrain renedering and
mesh loading and manipulating and a bonus of a couple chapters on pixel and vertex shaders. Now this is definitely what I would call advanced topics.. but even if you are a beginner it is nice to read about them just to figure out what these mysteriously sounding entities are ;)
My only grudge with this book is that it is quite a little one.
Lenghtier explanations and a few more examples would could really benefit the beginner.. especially since like for many books of this kind the author is more a programmer than a technical author or tutor so the writing style is pretty much like: here are the basic points about the theory and here is the program I wrote to show you how it works. So you won't get much from this book if you don't dig a lot in the code. The difference with many other similar book on the market is that the author gives you at least some good assistance into it.
13 Very good!
Great book indeed! Frank Luna did a great job writing it: he's explaining stuff like *why* we need to use 1.0/0.0 with points/vectors as "w" instead of simply saying "we need to put this number". My math background let's me take advantage of what i know, but this is the only book i seen so far explaining all this math stuff in such a great way. Also, this book greatly cover the basics for pixel/vertex shaders programmin, that's a cool feature at current time. I read something about ps/vs in other books, but they miss the big point that's *WHY* we use them and *HOW* we use them. Thank you Frank!
And congratulations!
14 the best introduction book
the title of the book consists of many words first introduction the author did a good introduction to directx and game programming.
second 3D Game Programming, although the author covered areas in 3d game programming such as math he didnt complete it .. there is no physics , ai ..etc but as the title says its an ( introduction )
in conclusion this book is very good for beginners game programmer. i suggest reading this book after taking c++ course.
Ahmed Saleh , computer graphics programmer.
15 Superb...
I can't recommend this book more to those who want to start learning Direct3D game progamming. It elegantly hide the details of COM, Windows programming, etc. for those untrained in these fields, so it's very focused and can get ppl started quickly. The author really explains D3D from a beginner's perspective, and with his own understanding instead of copying chunks of texts from the SDK doc like some other titles on the market do. Of course this book alone won't get you become D3D expert, but it definitely does its job as the bridge that introduce you to the road on becoming an expert. Gone are the days when you were overwhelmed by the complexity and unrelavant or unnecessary details of the SDK doc or some advanced textbook and don't know where to start--grab this book at all cost. Last but not least is its accompanying website where you can post questions and discuz related topic with other dudes and the author. And the author's responses to my questions(I guess to others' questions too) are nothing short of just fast and to the point. He answered EVERY question I asked on the forum, and EVERY time his answer could solve my problem. I mean after reading this book, I think books owe their readers if they don't also provide such excellent service to their customers.
16 One of the better DX9 books I've seen
I like the way this book is written. It is a good introduction for people who know how to program, but have not done any Direct3D development before. The book is written in a very straightforward and almost scientific manner. This book does not assume the reader to be a complete beginner when it comes to many programming topics like so many other DX9 books do (even though they often claim they don't).

This book simply covers the fundamental Direct3D topics as well as a bit of math, and it does so from the ground up as far as the DX API goes. Most of the samples are done soup to nuts, rather than using helper methods and API sample code that simplifies things a lot, but keeps too many details from the reader (once again: like so many other DX9 books seem to do).

I like the focus of the book: It simply only describes Direct 3D graphics programming. Other DirectX topics, such as DirectPlay or DirectInput are NOT covered. Also, if you do not know what a game-loop is, then you won't learn it here. I think this is one of the things I like most about this book: It focuses on one topic, and it does a great job at that!

But a small warning is in order as well: If you are not an experienced programmer and just want to get started with game development, then this book is NOT for you! Quite simply, many aspects of 3d graphics development are not for the faint of heart! Don't expect this book to read like a novel either. It is very much a DX9 text book.


17 Good Book For Beginners with C++ Experienced!
This book starts off with a chapter on math and then bring you to the DirectX world. The author shows the prototype and declaration of the DirectX functions and classes instead of having you go into the SDK and look it up for yourself. Also, the book shows some cool and unique coding techniques and tricks that you can't find elsewhere. I highly recommend this book to anyone who has already experienced with C++. If you're a beginner or just starting out in C++, you might find the coding in this book so alien to you.
18 Teach yourself Direct3D
This book explains the concepts of Direct3D in a clear, concise manner and will get you going on your way towards professional level 3D programming. The book has some typos and and an annoying problem where nearly all the underscores in the code examples were omitted. It has a very nice support web page, though, at http://moon-labs.com . Here the author will take you by the hand if you are stuck, as well as post useful articles and links and corrections to the book. I reccomend buying this if you are good at C++, math, and abstract thinking.
19 This book is perfect for novice programmers. SIMPLY AMAZING!
If you are a Novice/Advanced programmer, with a college level understanding of C/C++ then this book is perfect for learning Microsoft DirectX. It may be a bit overwhelming for beginner programmers. However, the book comes with a website and forum so your learning will be greatly accelerated. The author answers questions many times the same day they are posted. I cannot believe the generosity of this man, who is practically dedicating his life to the success of his fellow coder. The code samples are vital in understanding DirectX, while following along with the MSDN DirectX Tutorials. The book alone is worth the price, but it also comes with a website where the author answers your questions regarding DirectX. The best part is that the website is superior to most web-forum's I have used in College. SIMPLY AMAZING!!!

...


20 Concise
This book is, in my opinion, a good but brief look at the basics to creating games with DX9. It does require you to have a fair knowledge of C++ and rougly A-Level maths skills are useful.
It is an interesting and easy read and covers topics that i haven't seen in other books so i would highly recommend it to someone hoping to extend their programming skills or looking to start games programming.
21 Great Book, But NOT for beginners
This is an excellent book; I really liked the in-depth coverage throughout the book. However, I bought this book with very little C++ experience and was left in the dust with advanced C++ techniques immediately following the first chapter. This is probably the best DirectX 9.0 book on the market, however, don't buy it unless you are advanced in C++ and know matrix math and trigonometry. Other than that, it is really good. I bought this book, which was not designed for a complete beginner. These other reviews posted here were misleading, especially the one by Emanuel Enrique.
22 Good balance between text, maths and code
This is a hard to fault book. My only criticism is that is wasn't longer. The presentation style is excellent. Readers will need a grasp of programming in C/C++ and an understanding of the MS environment to get the full learning value from the text. Concepts are explained clearly with supporting relevant code examples. The book should stand as a model of best practice in the area. Hopefully the author will produce another volume on dynamics in DirectX some time in the future.
23 A Solid Book on DirectX 9
I havent used directx since version 7 and was curious as to some of the new features like HLSL and the effects frame work for a new game that I will be developing. This was an excellent book: clear, concise and mathematically rigorous. The section on the effects framework and HLSL is a solid intro to the subject.
24 Perfect beginner book
I feel this is the best intro book to Direct3D. It covers a lot of cool stuff in an amount that I think is perfect for a beginner. It mixes a pretty good blend of theory and practice, explaining some mathematical techniques where necessary, and then relying on D3DX for other things to make us more productive. One of the beauties of this over other API books is that it remains focused on Direct3D and doesn't try to be a huge bible covering all aspects of game development. All in all I would recommend this book to a friend so 5 Estrellas!!
25 Great book!!
Very nice book for a 3D beginner!! I thought everything (including the example code) was explained pretty clearly. Some things take awhile to digest of course. I think as long as you are buying this book to learn how to use Direct3D and do not already know it, that you will learn from it. A good number of topics were covered.
So you know what's in the book, here's the chapter contents (taken from the book's website):

Introduction

Part I Mathematical Prerequisites

Vectors in 3-Space
Matrices
Basic Transformations
Planes (Optional)
Rays (Optional)
Summary

Part II Direct3D Fundamentals

Chapter 1 Direct3D Initialization
1.1 Direct3D Overview
1.2 COM
1.3 Some Preliminaries
1.4 Initializing Direct3D
1.5 Sample Application: Initializing Direct3D
1.6 Summary

Chapter 2 The Rendering Pipeline
2.1 Model Representation
2.2 The Virtual Camera
2.3 The Rendering Pipeline
2.4 Summary

Chapter 3 Drawing in Direct3D
3.1 Vertex/Index Buffers
3.2 Render States
3.3 Drawing Preparations
3.4 Drawing with Vertex/Index Buffers
3.5 D3DX Geometric Objects
3.6 Sample Applications: Triangle, Cube, Teapot, D3DXCreate*
3.7 Summary

Chapter 4 Color
4.1 Color Representation
4.2 Vertex Colors
4.3 Shading
4.4 Sample Application: Colored Triangle
4.5 Summary

Chapter 5 Lighting
5.1 Light Components
5.2 Materials
5.3 Vertex Normals
5.4 Light Sources
5.5 Sample Application: Lighting
5.6 Additional Samples
5.7 Summary

Chapter 6 Texturing

6.1 Texture Coordinates
6.2 Creating and Enabling a Texture
6.3 Filters
6.4 Mipmaps
6.5 Address Modes
6.6 Sample Application: Textured Quad
6.7 Summary

Chapter 7 Blending
7.1 The Blending Equation
7.2 Blend Factors
7.3 Transparency
7.4 Creating an Alpha Channel Using the DX Tex Tool
7.5 Sample Application: Transparency
7.6 Summary

Chapter 8 Stenciling
8.1 Using the Stencil Buffer
8.2 Sample Application: Mirrors
8.3 Sample Application: Planar Shadows
8.4 Summary

Part III Applied Direct3D

Chapter 9 Fonts
9.1 ID3DXFont
9.2 CD3DFont
9.3 D3DXCreateText
9.4 Summary

Chapter 10 Meshes Part I
10.1 Geometry Info
10.2 Subsets and the Attribute Buffer
10.3 Drawing
10.4 Optimizing
10.5 The Attribute Table
10.6 Adjacency Info
10.7 Cloning
10.8 Creating a Mesh (D3DXCreateMeshFVF)
10.9 Sample Application: Creating and Rendering a Mesh
10.10 Summary

Chapter 11 Meshes Part II
11.1 ID3DXBuffer
11.2 XFiles
11.3 Progressive Meshes
11.4 Bounding Volumes

11.5 Summary

Chapter 12 Building a Flexible Camera Class
12.1 Camera Design
12.2 Implementation Details
12.3 Camera Sample
12.4 Summary

Chapter 13 Basic Terrain Rendering
13.1 Heightmaps
13.2 Generating the Terrain Geometry
13.3 Texturing
13.4 Lighting
13.5 "Walking" on the Terrain
13.6 Terrain Sample
13.7 Some Improvements
13.8 Summary

Chapter 14 Particle Systems
14.1 Particles and Point Sprites
14.2 Particle System Components
14.3 Concrete Particle Systems: Snow, Firework, Particle Gun
14.4 Summary

Chapter 15 Picking
15.1 Screen to Projection Window Transformation
15.2 Computing the Picking Ray
15.3 Transforming Rays
15.4 Ray-Object Intersections
15.5 Picking Sample
15.6 Summary

Part IV Shaders and Effects

Chapter 16 Introduction to the High Level Shading Language
16.1 Writing a HLSL Shader
16.2 Compiling a HLSL Shader
16.3 Variable Types
16.4 Keywords, Statements, and Casting
16.5 Operators
16.6 User Defined Functions
16.7 Built in Functions
16.8 Summary

Chapter 17 Introduction to Vertex Shaders
17.1 Vertex Declarations
17.2 Vertex Data Usages
17.3 Steps to Using a Vertex Shader
17.4 Sample 1: Diffuse Lighting
17.5 Sample 2: Cartoon Rendering
17.6 Summary

Chapter 18 Introduction to Pixel Shaders
18.1 Multitexturing Overview
18.2 Pixel Shader Inputs and Outputs
18.3 Steps to Using a Pixel Shader
18.4 HLSL Sampler Objects
18.5 Sample Application: Multitexturing in a Pixel Shader
18.6 Summary

Chapter 19 The Effects Framework
19.1 Techniques and Passes
19.2 More HLSL Intrinsic Objects
19.3 Device States in an Effect File
19.4 Creating an Effect
19.5 Setting Constants
19.6 Using an Effect
19.7 Sample 1: Lighting and Texturing in an Effect
19.8 Sample 2: Fog Effect
19.9 Sample 3: Cartoon Effect
19.10 EffectEdit
19.11 Summary

Appendices

Appendix A An Introduction To Windows Programming
A.1 Overview
A.2 Hello World Windows Application
A.3 Explaining Hello World
A.4 A Better Message Loop
A.5 Summary


26 Good Book, Needs Some Better Explanation On Some Examples
Introduction to 3D Game Programming with DirectX 9.0 is a good book, though some of the code needs better explanation. But that's no reason not to read it, as where if you really are having trouble you can just go to msdn.microsoft.com. Luna uses a nice form in his examples so as to allow the reader to concentrate on the more useful parts of Direct3D. This is by no means a complete and thorough mastering of DirectX, as it only has an introductory style of writing. I'm only through half of the book and already I'm having lots of fun. If you like programming, this book is definately the best choice of introductory DirectX books, though it should certainly not be the only one in your library. If you don't like programming, then you will most likely find this book complicated and boring, and you would have no point in reading this review. DirectX 9 is by no means a simple API, and it will take a certain amount of discipline on your part to stay on when confused, but when you get to the end, you will have a certain amount of satisfaction.

If you have moderate experience with C++ 6 or .NET and want to start off in the graphics programming business, this book is for you. Also check out the site at [website]


27 Fairly ok, but definitely not 5 stars
The book is supposed to be an introduction to 3D programming and therefore meant for beginners. lthough it shows how some things are done,it does not give explanations on why things are done, which is necessary for a beginner to do implement things on his/her own . Although there are examples, it does not include a simple game for example showing how the knowledge he impacts is put together in creating a game, which will help a beginner the more. Intermediate/advanced users wil definitely find it useless. Most of the examples are in the SDK- and are very simple ones. I didn't feel I was been taught at all, and had to return the book. Also the book is very small, like a paperback novel.I advise you browse it in a bookshop before buying it.You will learn a lot more from Lamothe's book Regarding voting buttons, I did not see any option for it while writing the review.
28 This book rocks!
Excellent introduction to DirectX programming. I bought other books such as the Engel book on DirectX programming and was frustrated with how badly put together they were. This one covers the topics concisely and efficiently, building on top of earlier chapters, and has very good sample source code as well. Highly recommended!
29 one of the best
I have read a lot of intro to a subject books and this is one of the best. Learning game programming was made easy by the author as all the chapters are well put together. I would have like to learn about the camera class much sooner then the author wants you too, but I understand his way of progression throughout the book. I am proud to own this book and I feel it was the best [$$] I spent on a gaming book to date.
30 Very well done
Intro to 3d game programming with directx 9.0 was an excellent book to buy after just completing a c++ course. Within a few hours I was up and running making some 3d graphics. The book is readable and organized good and builds in steps which is nice. The examples are well explained too and the author summaries helped. Also, the chapter on making a terrain and how to walk on it was cool and gave me some ideas for how to use that in my own games. My only problem was some underscore printing errors in some of the code segments, but they are mentioned in the errata on the book's website and the source code is correct, so you can easily compare against the source code. If you're interested in learning programming 3D games and graphics with the new directx 9 then this book is a good book to purchase.

Sunday, 07-Sep-2008 03:34:43 CDT
Quote of the Day:


Q:	How many elephants can you fit in a VW Bug?

A: Four. Two in the front, two in the back.

Q: How can you tell if an elephant is in your refrigerator?
A: There's a footprint in the mayo.

Q: How can you tell if two elephants are in your refrigerator?
A: There's two footprints in the mayo.

Q: How can you tell if three elephants are in your refrigerator?
A: The door won't shut.

Q: How can you tell if four elephants are in your refrigerator?
A: There's a VW Bug in your driveway.

Chemistry is applied theology.
-- Augustus Stanley Owsley III