- Hardcover: 1040 pages
- Publisher: CRC Press; 2 edition (3 Nov. 2006)
- Language: English
- ISBN-10: 0122290631
- ISBN-13: 978-0122290633
- Product Dimensions: 19.8 x 5.2 x 24.1 cm
- Average Customer Review: 4.0 out of 5 stars See all reviews (2 customer reviews)
- Amazon Bestsellers Rank: 1,137,896 in Books (See Top 100 in Books)
- See Complete Table of Contents
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|
Frequently bought together
Customers who viewed this item also viewed
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.
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
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 (beta)
Imagine you walk into a restaurant and sit down with a friend. After several minutes of thought, you decide to order a steak. The waiter comes, takes your order, and about 15 minutes later returns with a plate. Except when you go to eat, you realize he has brought you a grilled chicken instead. It’s not that grilled chicken tastes bad, it’s just not what you ordered. I feel the same way about this book. The title says: 3D Game Engine Design: A Practical Approach to Real-Time Computer Graphics, however there is very little to no design in the book, it’s not very practical, and there is not much coverage of computer graphics itself.
But at 1,000+ pages there must be some information in there, and indeed there is. However, it is almost 99% math. I don’t have a problem with math. What I do have a problem with is pages and pages of mathematical proofs, when an explanation of an algorithm would have sufficed. The math is just really heavy, and made even harder to follow due to formatting errors on the Kindle e-book. For example, some symbols would be replaced by squares, making them almost impossible to decipher. In addition, most of the equations and formula were images, but some were too small to read and difficult to click on. Again, making it hard to follow. For a technical book this is all but unacceptable, and makes it next to useless to base an implementation on. I found many times I was reading 2 or 3 pages into a proof and I just would forget what the formula was even calculating. It’s not that I am slow. I have read other 3D math books and had a good time. The explanations here are just somewhat lacking and dry.
The main gripe I have is that the design of a game engine is nowhere to be found. You would expect overviews of class structures, game loops, how to communicate between objects, event systems, scene graphs, encapsulation of graphical APIs, input abstraction, etc. Nope, not here. It’s not even until the end of the book, in chapter 18, that he even mentions OOP. Most of that chapter is general OOP concepts (that you expect anyone that made it that far into a book like this already knows) and at the end sub-chapter the author goes into some topics that I would consider game engine design focused.
Fine, but surely there is something to like. I will say that the coverage of certain aspects of core math of an engine were covered in-depth. Specifically, bounding volumes, collision/intersection detection, and distance testing were given good coverage. Just looking at the table of contents is deceiving because it appears that much more is covered. For example, there is a chapter on physics, yet it is only about 20 pages and is not very helpful at all. Only in the last chapter was really any graphical concepts covered and, again, it was brief and only scratched the surface.
I’m not sure what David Eberly, the author, is trying to do here. This is the second book of his I read, and I had the same complaints about that. The book was mislabeled and deceptive. Had he just titled it “Game Engine Mathematics” I would have been a lot happier. Granted, I may have purchased the book anyway, but at least I would have known what I was getting into. I wanted a design book, I purchased what I thought was a design book, and all I got were a bunch of mathematical proofs. Sorry, I am disappointed.
If you are looking do research on 3D math then there are better, more approachable, books out there. See 3D Math Primer for Graphics and Game Development, by Fletcher Dunn and Ian Parberry or Mathematics for 3D Game Programming and Computer Graphics, by Eric Lengyel. If you want a game engine design book then Game Engine Architecture by Jason Gregory has a great overview and 3D Game Engine Programming by Stefan Zerbst is better for implementation. Honestly, there could be more books in this field. Unfortunately, 3D Game Engine Design doesn’t fill it’s own shoes.
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!
Look for similar items by category
- Books > Art, Architecture & Photography > Design Studies > Graphic Design
- Books > Computing & Internet > PC & Video Games
- Books > Computing & Internet > Programming > Games
- Books > Computing & Internet > Programming > Graphics & Multimedia
- Books > Computing & Internet > Software & Graphics > Graphics & Multimedia > 3-D Graphics
- Books > Computing & Internet > Software & Graphics > Graphics & Multimedia > Animation & Multimedia
- Books > Computing & Internet > Software & Graphics > Graphics & Multimedia > Image Manipulation & Creation