3D Game Engine Design: A Practical Approach to Real-time Computer Graphics (The Morgan Kaufmann Series in Interactive 3d Technology)
|
| Price: |
17 new or used available from £16.38
Average customer review:Product Description
Now considered an essential reference in the game industry, "3D Game Engine Design" is the first book to go beyond basic descriptions of algorithms and accurately demonstrate the complex engineering process required to design and build a real-time graphics engine to support physical realism. Faster algorithms will always win out over faster processors and assembly-language optimization techniques. Implementing those algorithms, however, can be a challenge for even experienced programmers. This book provides rigorous explanations and derivations of all the essential concepts and techniques. Ideas are revealed step by step with numerous code examples and illustrations. Source code implementations are included on the companion CD-ROM to help you understand the full progression from idea, to algorithm, to working code. Since algorithms are not used in isolation, the source code for a complete engine is provided to bring crucial context to the implementations. This book and CD-ROM offer the most comprehensive professional reference available for the development of 3D game engines. Designed for professionals working in game development, simulation, scientific visualization, or virtual worlds, it is written by a respected game engineer and designer of a leading commercial game engine. It thoroughly describes the algorithmsfully implemented in working codethat are the key to writing the fastest, most efficient code possible. It provides source code for Windows 95/98/NT/2000, Linux/Unix, and Macintosh platforms.
Product Details
- Amazon Sales Rank: #701849 in Books
- Published on: 2000-10-09
- Original language: English
- Number of items: 1
- Binding: Hardcover
- 561 pages
Editorial Reviews
Amazon.co.uk Review
Aimed at the working C++ game developer, 3D Game Engine Design provides a tour of mathematical techniques for 3-D graphics and the source code used to implement them in state-of-the-art video game engines. If you work in the game industry (or would like to), this book will serve you well because it delivers excellent best practices for algorithms and programming techniques that will help your software keep up with the competition.
This text is a virtual encyclopaedia of expertise, based on the author's own work and research in the gaming industry. It provides the mathematical notation, algorithms, and C++ code (on the accompanying CD-ROM) needed to build fast and maintainable game engines. Early sections start with the basics, with the math used to work with common 3-D objects (like spheres and boxes). Highlights include a high-powered review of quaternion algebra, the preferred way to transform 3-D data in many cases.
The chapters on graphics pipelines explain the math behind representing and rendering a 3-D world in 2-D with intervening effects like lighting, texture mapping and the like. A variety of current algorithms are provided for representing 3-D scenes, efficient picking (which allows a programmer to determine which object in a 3-D world has been selected) and collision detection (where objects collide virtually). In the game software of today, curves--rather than individual triangles or polygons--are often used to represent 3-D objects. Algorithms that are used to turn curves into rendered surfaces are also provided.
Later sections look at current thinking about animation techniques for characters (including key frames, inverse kinematics and skinning--in which digital skin is fitted over digital bone to create more realistic-looking movement). How to represent terrain inside virtual worlds is also explained. The book closes with excellent material on cutting-edge special effects like lens flare and projected shadows, which can add an extra level of realism to a video game. An appendix examines guidelines for designing object-oriented game software in C++.
Filled with mathematical insight and expert code that puts each principle or algorithm to work, 3-D Game Engine Design provides an expert view of what goes into building a state-of-the-art game engine. --Richard Dragan
Review
I have been baffled by the lackluster quality of past publications targeted specifically at the interactive, real-time engineer and developer, and I am confident that Dr. Eberly's magnum opus will raise the bar for everyone who follows in his footsteps. I expect his work to become to game developers what Foley, Van Dam, et al., was to the graphics community in the late 80s and early 90s: the de facto mirror of the stae of art in research and development in the field. --Andrea Pessino, Blizzard Entertainment This is a great book for someone who is writing his or her first 3D engine and has a reasonable background in math. Even for people who have written game engines before, there is plenty of value in the alternative techniques that Eberaly presents for various parts of the 3D pipeline, which makes for a great reference text. I particularly like the presentation of various alternatives and their pros and cons. He clearly covers performance issues and includes all the important elements of a graphics game engine. He even includes a good introduction to animation techniques and collision detection. The book is not ashamed to delve deep into the technical details and the mathematics behind 3D graphics; I think this is good. 3D Game Engine Design would certainly find a prime place on my bookshelf. --Dominic Mallinson, Director of Technology, Research, and Development, Sony Computer Entertainment America Virtually all the books on building 3D game engines cover the basics: here's a polygon, here's a transformation matrix, here's a perspective projection, and so on. The problem is that you can't make a professional quality game with just the basics. This leaves a large gap between you and your goal of creating a great game engine. With this book, Dave is launching a huge boulder into the gap, helping you scamper to your destination. Managing a generalized 3D environment in real-time is difficult, the book covers a complete set of high-end techniques to do the job. For example, if you want to find collisions between the swept volumes of two oriented bounding volumes as they fly through space go to page 194. I think most game companies would be lucky to come anywhere close to this level of sophistication. I loved Appendix A, "Object-Oriented Infrastructure." It covers many of the software-engineering issues we have had to solve over the years; things like objects with multiple references being managed by a reference count semaphore. --Eric Yiskis, Lead Programmer, Oddworld Inhabitants [3D Game Engine Design] presents an incredible amount of difficult and complex information in a clear and understandable manner. --Ian Ashdown, University of British Columbia Well done...definately a must-have reference for the budding 3D engine developer. --Peter Lipson, Mindscape Before reading the chapters, [the table of contents] engaged me and I said to myself , "I'm going to learn a lot from this book." I'm inclined to recommend this to my undergraduates who want to have a reference for 3D graphics programming. --Jahn Laird, University of Michigan This book will serve as a welcome resource for game programmers who wish to work at the cutting edge of their trade. It is a remarkably comprehensive and elegant guide to the construction of interactive 3D environments at a professional level. Drawing on the latest advances in real-time rendering and software engineering, Eberly astutely brings game engine development into the 21st century. --Sherry McKenna, CEO Oddworld Inhabitants Dave Eberly has written the definitive book on real-time 3D game engine design. It's a must-have for anyone who writes real-time 3D code. --Franz Lanzinger, Actual Entertainment In an industry where quality information is extremely difficult to come by, Dave Eberly has managed to compile a desperately needed perspective for those programming the most critical link in the game production process: the game engine. This book should be mandatory reading for all aspiring game engine designers. --Lorne Lanning, Cofounder and President, Oddworld Inhabitants
From the Author
Reasons for writing this book
A decade ago I made a decision to become a 'retread' by switching from a career as a mathematician to one as a computer scientist. I have always been attracted to the beauty of mathematics and the practicality of computer science, but found a need to demonstrate the usefulness of both in real applications. What better way to do this than in the field of computer graphics! Geometry, algebra, numerical analysis, analytical reasoning, algorithm development, object-oriented programming, hands-on experience with hardware, and more, all wrapped up into one field.
Part of the math-to-cs conversion included learning about the world wide web and news groups. In particular, I discovered comp.graphics.algorithms and found it a place I liked to camp out. Realizing that a lot of folks had a lot of questions about taking ideas and translating them into source code, I started my Magic Software web site (originally hosted by the Computer Science department at the University of North Carolina at Chapel Hill, but now its own separate entity) and made available free source code that solved basic problems in computer graphics, image analysis, and numerical methods.
With the arrival of inexpensive 3D graphics hardware for the PC, the questions in comp.graphics.algorithms quickly became focused on how to solve problems that arise in building components of a game or game engine. This fact and my hiring by Numerical Design Limited to work on a game engine naturally led to my focusing on 3D real-time graphics.
The ultimate conclusion of the journey I started a decade ago is this book. It has been two years in the making and contains a significant amount of source code that I believe simultaneously illustrates the simplicity and complexity of creating a real-time graphics engine. I hope you enjoy reading this book as much as I have enjoyed writing it.
Customer Reviews
Excellent, comprehensive & hard work
This is a good book that covers almost all of the areas that you'll need to program a decent graphics engine. However, the mathematics is rigorous - and unless your up to it you'll have difficulty (but still learn much).
Ignore the people who say it is too much like hard work, if you ever want to have decent understanding of 3d graphics then you will need to learn some serious math. It just goes with the territory.
As an alternative, that focuses more on real world applications and issues at a slightly less heavy level have a look at real time rendering.
Fairly straightforward methods presented in a complex manner
The book covers relatively simple subjects leading up to more meaty and difficult topics. Throughout I found the reading of topics (that I am already familiar with) difficult. The writing style left me feeling baffled, especially with the over use of harsh mathematics notation. This book aspires to old mathematical textt books which have since been presented in a much more friendly manner.
I already most of the topics covered and, yes, the book does cover much more than other games programming books, but it could have been presented in a much more understandable way. I think this book will leave intermediate learners feeling that serious games making is unattainable as a career. It isn't as difficult as this book horribly portrays.
Also, it's not a book for 'this is how to write a great game engine', it seems to be just the maths and techniques involved, fit it together yourself.
I don't think scene graph management has been covered that well either. Shame, I was really hoping this book would be ground breaking in this area.
One last thing though, this means there is a gap for a ground breakign book that covers everything about creating a great game engine. Just in a more friendly and supportive tone.
This is the hebrew bible, someone now needs to write the english translation ;)
Wow - just what i've been waiting for...
Ok - firstly, it's not fair to say this book is bad just because it requires an understanding of maths. I'm no maths genius myself, but I found that by reading the explanations and going through the code one the CD together was the easiest way to grasp topics i didn't fully comprehend.
Secondly - I felt at the start that there were one or two topics that the author glossed over rather quickly, but once you realise the value of having such brilliant examples for everything included on the CD to back up the excellent descriptions in the book then you'll realise why this book gained a rating of 5 stars from me.
The appendices in the book are all very helpfull, especially the one on reference counting using smart pointers. Don't be mislead though - you'll find no reference to DirectX or barely even opengl in this book. If you don't know these - go somewhere else.
Summing up, I don't recommend it for students who haven't studied at least up to GCSE maths, I don't recommend it for real novice programmers, but I do recommend it to anyone who has a solid grasp of c++ programming, the basics of graphics programming and wants to branch out in the the realms of 3D computer graphics and is prepared to learn hard and fast.



