- Prime Student members get £10 off with a spend of £40 or more on Books. Enter code SAVE10 at checkout. Enter code SAVE10 at checkout. Here's how (terms and conditions apply)
3D Game Engine Design: A Practical Approach to Real-Time Computer Graphics (The Morgan Kaufmann Series in Interactive 3d Technology) Hardcover – 3 Nov 2006
|New from||Used from|
Special offers and product promotions
Frequently bought together
Customers who bought this item also bought
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Would you like to tell us about a lower price?
If you are a seller for this product, would you like to suggest updates through seller support?
About the Author
Dave Eberly is the president of Geometric Tools, Inc. (www.geometrictools.com), a company that specializes in software development for computer graphics, image analysis, and numerical methods. Previously, he was the director of engineering at Numerical Design Ltd. (NDL), the company responsible for the real-time 3D game engine, NetImmerse. He also worked for NDL on Gamebryo, which was the next-generation engine after NetImmerse. His background includes a BA degree in mathematics from Bloomsburg University, MS and PhD degrees in mathematics from the University of Colorado at Boulder, and MS and PhD degrees in computer science from the University of North Carolina at ChapelHill. He is the author of 3D Game Engine Design, 2nd Edition (2006), 3D Game Engine Architecture (2005), Game Physics (2004), and coauthor with Philip Schneider of Geometric Tools for Computer Graphics (2003), all published by Morgan Kaufmann. As a mathematician, Dave did research in the mathematics of combustion, signal and image processing, and length-biased distributions in statistics. He was an associate professor at the University of Texas at San Antonio with an adjunct appointment in radiology at the U.T. Health Science Center at San Antonio. In 1991, he gave up his tenured position to re-train in computer science at the University of North Carolina. After graduating in 1994, he remained for one year as a research associate professor in computer science with a joint appointment in the Department of Neurosurgery, working in medical image analysis. His next stop was the SAS Institute, working for a year on SAS/Insight, a statistical graphics package. Finally, deciding that computer graphics and geometry were his real calling, Dave went to work for NDL (which is now Emergent Game Technologies), then to Magic Software, Inc., which later became Geometric Tools, Inc. Dave's participation in the newsgroup comp.graphics.algorit
What other items do customers buy after viewing this item?
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
In addition the book you also get the source code for a full blown game engine. It might not be useful for actual game projects as it is, but it provides an industrial quality reference how to actually make it all work together. And it's certainly more than a run-of-the-mill source code releases usually found in programming books. The WildMagic source code being continuously developed and is already in version 4.
The book is a bit heavy on the math side. David toned down the maths for the second edition but there is no denyining that math is an important factor in making 3D game graphics (and engine). What I would critisize is the layout of the book. It feels more like a reference instead of a coherent book explaining how to start laying out your engine. For example, the hard math is layed on front of you starting from the chapter two after a short introduction. I would have liked a bit more top-down approach where the structure of a game engine is discussed first and then going into the details. Now the infrastructure related stuff comes in starting from chapter 18 (object-oriented infrastructure) after all the math stuff. This is why I didn't give it 5 stars.
Anyway, 3D Game Engine Design is probably the best all-in-one reference book about the subject together with an excellent source code.
The aspects that are strong in this book are:
- Array of mathematical formula relating to 3D.
- In depth conversation about development of his engines.
- Breakdown of various engine modules.
- Hirachy of the overall engine instantly feels like a that of a mainstram console/pc engine.
- Ability to integrate shaders and controllers.
The aspects that are weak:
- Assumption of C++ and i/o steams.
- Overall lack of detailed interfaces and coupling of geometry to rendering system.
- Lack of simple explainations about some underlaying principles.
- Lack of modern API references and test cases.
- Lack of good UML or any other diagrams.
Overall, I would recommend this book, especially if you already have some knowledge of affine and homogeneous points, vectors and matrices. It is the most complete
Most helpful customer reviews on Amazon.com
The good part is that he walks through the entire engine, piece by piece, and explains in detail how it works and why it was built that way.
The bad part is that in some sections, you get a very narrow view of how to build that piece of the engine. There are many alternative ways to do some of these things, and they're not explored as much.
Overall though, I find the book very good.
However, there are some warnings that go along with this book. This book is not intended for those who know nothing about computer graphics. There are a lot of good books out there that cover the basics. Eberly's book assumes you are comfortable with those books and are ready to cross the gap between where they take you and what you see in modern video games. Also, there is a LOT of ADVANCED mathematics in this book. If you are a little shakey with your math skills, then perhaps it would be best to brush-up on that first. Advanced math concepts are talked about briefly, but used very often.
Just take a look at Chapter 2. It covers the algebra behind culling, clipping, and rasterizing, something that you're almost certainly not going to touch in your own career (unless you're building your own software renderer or designing a chip that does the work in hardware, it's something that OpenGL and DirectX handle for you). Yet I'm thrilled that I have a book I can go to that will go over the techniques - why would you want to get into computer graphics and NOT understand this material?
The book just goes on and on, hundreds of pages that will introduce you to the basic (and not so basic) topics of game engine development, and leave you with a complete engine that you can refer to in order to see how it would actually operate in a program.
If I have any complaint about the book - and honestly, I think it's an unfair one - it covers DirectX 9 and old-school OpenGL. To be more specific, the engine and book are designed around a fixed-function pipeline, whereas the industry has moved on to programmable pipelines. I say this is an unfair complaint because it was released in 2006, and was state of the art when it was released, so what do you expect? Technology moves on, but the fixed-function pipeline is perfectly fine for all but the AAA titles in the game industry, and you STILL get to learn how a graphics pipeline works.
(If you want a good book on how to go from fixed-function to programmable states of mind, check out Graphics Shaders: Theory and Practice by Mike Bailey. Chapter 1 teaches fixed-function with programmable-pipeline in mind, and then moves on to the programmable stuff. It would be a great shift in mentality after you finish this book.)
If you're a go-getter and you're studying modern DirectX or OpenGL, then you probably won't have too much difficulty following along. I applaud Mr. Eberly for his recent announcement on his website that he is doing what he can to update the engine and bring it into the programmable pipeline world. Indeed, a 3rd edition of this book, covering DX11 and OGL 3.x+ would be the dominant force in a difficult subject matter.
Oh, and Mr. Eberly, your website seems to make a little joke about crowd-funding the new book. I would like to think in a perfect world that a Kickstarter fund would be just the thing to see a 3rd edition come to pass. I hope you are seriously considering it!
If you are just starting out I would recommend Foley & van Damm, Computer Graphics : Principles and Practice, Second Edition in C or Alan Watt, 3D Computer Graphics 3rd Edition. These books provide a much gentler introduction to the topics, but do not cover 3D game engine design. My favorite 3D game engine text is by Alan Watt and Fabio Policarpo, 3D Games, Volume 1 : Real-time Rendering and Software Technology -- my only complaint about that book is its Windows-centric nature.
One great thing about this book is that the examples work under both Linux and Windows -- and as someone who's completely ditched Windows for Linux, I really appreciate this fact.
This book is an excellent reference for those intermediate to advanced computer scientists with an interest in 3D graphics/game engine design. If this doesn't sound like you, first get up to speed with the books I mentioned above and then come back to this one.