3D Game Engine Design: A Practical Approach to Real-Time Computer Graphics (The Morgan Kaufmann Series in Interactive 3d Technology) (英語) ハードカバー – 2006/11/3
Kindle 端末は必要ありません。無料 Kindle アプリのいずれかをダウンロードすると、スマートフォン、タブレットPCで Kindle 本をお読みいただけます。
The first edition of 3D Game Engine Design was an international bestseller that sold over 17,000 copies and became an industry standard. In the six years since that book was published, graphics hardware has evolved enormously. Hardware can now be directly controlled through techniques such as shader programming, which requires an entirely new thought process of a programmer.
In a way that no other book can do, this new edition shows step by step how to make a shader-based graphics engine and how to tame this new technology. Much new material has been added, including more than twice the coverage of the essential techniques of scene graph management, as well as new methods for managing memory usage in the new generation of game consoles and portable game players. There are expanded discussions of collision detection, collision avoidance, and physics―all challenging subjects for developers. The mathematics coverage is now focused towards the end of the book to separate it from the general discussion.
As with the first edition, one of the most valuable features of this book is the inclusion of Wild Magic, a commercial quality game engine in source code that illustrates how to build a real-time rendering system from the lowest-level details all the way to a working game. Wild Magic Version 4 consists of over 300,000 lines of code that allows the results of programming experiments to be seen immediately. This new version of the engine is fully shader-based, runs on Windows XP, Mac OS X, and Linux, and is only available with the purchase of the book.
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
Amazon.com で最も参考になったカスタマーレビュー (beta)
What it does do though, is expose a glaring hole in all the books relating to graphics programming and games in particular. There still is no good book on designing a game engine. I work in the industry, and while I've seen some briliant ideas on visual effects and performance gains, I have never seen an architecture that wouldn't have the lead programmer fired from any other industry. There is a need for what the title indicates, but the subject is contained in appendix A. The rest of the book is about culling and collisions and ray tracing and every other low level library function I could have gotten from a dozen books. There is massive amounts of source code. And while reasonably well written as a library, the whole is woefully lacking as a framework. This book should have been the other way around. We all have the libraries, how about a little discussion on the framework to hang them in.
1. Dr. Eberly is writing about a subject which has never really been dealt with at an intermediate or advanced level. "Game Programming For Dummies" this ain't.
2. The discussions and subjects tackled are top-notch. If you really want to know how a solid graphics engine works, aside from stealing the code to Quake 2 and sifting through it (not an easy read, I'm sure), this is the best place to begin. All sorts of advanced topics are touched upon, things you won't find in any other book.
3. The writing itself is quite good, especially considering the technical discussions involved.
Sad to say, however, the book gets only rates average for the following reasons:
1. The mathematical understanding needed to make sense of much of the text is considerably more than the preface and some reviewers would have you think, and
2. For a 3D "Game Programming" book, there are damn few illustrations in parts.
The math used in this book requires you to know a fair amount of later-semester calculus, to be very fresh on your advanced linear algebra, and to even know some statistics. Covariance matrices? They're in there.
Those of you who took calculus a few years back and forgot some of it, or maybe had linear algebra as a freshman, are in for quite a surprise. And those who haven't taken many math classes, period, can save your $60 and just forget it.
I don't disagree with anyone who says you need to know a lot of math in order to work with computer graphics, and 3D in general. Anyone tackling the subjects Dr. Eberly does had better know their stuff. It's just that a shameless plug by the author for his favorite math texts (or a better primer) might have helped a lot of readers get up to speed.
Even if you've got enough of a math background to follow the technical discussions, the bigger problem is the lack of diagrams in the book.
When you're talking about bounding volumes or collision detection, it really helps to be able to see a sample of what the author is talking about. Instead, all we get for much of the book is equation after equation, with no images to try and place things against.
Whether this was Dr. Eberly's oversight, or the fault of the publisher is unimportant. The book in it's present form just won't do for any but those looking for a code tidbit, or your run-of-the mill PhD who likes to sketch out his own illustrations as he reads the text. The rest of us will have a hard time making use of it. It's too bad, considering it's strengths.
This book is well-written and contains a lot of useful information. The author is one of the few people qualified to write a book of this nature, and he has done an admirable job. That said, the title is pretty misleading, since the book has very little to say about the design of a game engine. Instead, it focuses on implementation details and the math involved with them. Topics covered include geometrical methods, the graphics pipeline, tree-based scene graphics, intersections, collision detection, curves and surfaces, animation, terrain, spatial sorting (quad/octrees, portals, BSPs), special effects, object-oriented infrastructure, and numerical methods. The author doesn't gloss over anything, providing detailed mathematical derivations of how things work.
Unfortunately, the math is so heavy that unless you're already pretty familiar with the subject matter, you'll probably have a hard time with the book. Therefore, I think that the target audience is much smaller that the group that would be attracted by the title.
If you're involved in game engine development or just want to deepen your knowledge, I think you'll appreciate the fact that the author doesn't pull any punches. Otherwise, you'll probably be more interested in the author's new book 3D Game Engine Architecture, which was recently released.
As others have noted, he's "heavy on the math." For me, this is a good thing, since I intend to use the book as a reference, not as a primer. While he is "heavy on the math" he is "light on the diagrams," really the only negative about this book at all.
I found the coverage of intersection and collision tests, and the section on numerical methods in the end, both to be especially good compared to other books.
In general, this book is an excellent reference for experienced readers, not a how-to for beginners. Very thorough, well written. The book feels academic and authoritative - however, the author has the in-the-trenches experience which lends him creditibility. Once you know the basics, this book is a must-have reference book.