amazon.co.uk:
*CD-ROM with extensive C++ source code that supports physical simulation. Operating Systems and compilers that are supported: Windows 2000/XP (Visual C++ versions 6, 7.0, and 7.1), Linux (g++ 3.x), Macintosh OS 10.3 (Xcode, CodeWarrior 9), SGI IRIX (Mips Pro 7.x), HP-UX (aCC), and Sun Solaris (g++ 3.x). The source is compatible with many game enginesincluding the Wild Magic engine, for which the complete source code is included. *Contains sample applications for shader programs (OpenGL and DirectX), including deformation by vertex displacement, skin and bones for smooth object animation, rippling ocean waves with realistic lighting, refraction effects, Fresnel reflectance, and iridescence. *Covers special topics not found elsewhere, such as linear complementarity problems and Lagrangian dynamics. *Includes exercises for instructional use and a review of essential mathematics.
amazon.co.uk:
"I keep at most a dozen reference texts within easy reach of my workstation computer. This book will replace two of them."Ian Ashdown, President, byHeart Consultants Limited
"Implementing physical simulations for real-time games is a complex task that requires a solid understanding of a wide range of concepts from the fields of mathematics and physics. Previously, the relevant information could only be gleaned through obscure research papers. Thanks to
Game Physics, all this information is now available in a single, easily accessible volume. Dave has yet again produced a must-have book for game technology programmers everywhere." Christer Ericson, Technology Lead, Sony Computer Entertainment
"
Game Physics is a comprehensive reference of physical simulation techniques relevant to games and also contains a clear presentation of the mathematical background concepts fundamental to most types of game programming. I wish I had this book years ago." Naty Hoffman, Senior Software Engineer, Naughty Dog, Inc.
"Eppur si muove . . . and yet it moves. From Galileo to game development, this book will surely become a standard reference for modeling movement." Ian Ashdown, President, byHeart Consultants Limited
"This is an excellent companion volume to Dave’s earlier
3D Game Engine Design. It shares the approach and strengths of his previous book. He doesn’t try to pare down to the minimum necessary information that would allow you to build something with no more than basic functionality. Instead, he gives you all you need to begin working on a professional-caliber system. He puts the concepts firmly in context with current, ongoing research, so you have plenty of guidance on where to go if you are inclined to add even more features on your own. This is not a cookbookit’s a concise presentation of all the basic concepts needed to understand and use physics in a modern game engine. It gives you a firm foundation you can use either to build a complete engine of your own or to understand what’s going on inside the new powerful middleware physics engines available today. This book, especially when coupled with Dave’s
3D Game Engine Design, provides the most complete resource of the mathematics relevant to modern 3D games that I can imagine. Along with clear descriptions of the mathematics and algorithms needed to create a powerful physics engine are sections covering pretty much all of the math you will encounter anywhere in the gamequaternions, linear algebra, and calculus." Peter Lipson, Senior Programmer, Toys For Bob
"This comprehensive introduction to the field of game physics will be invaluable to anyone interested in the increasingly more important aspect of video game production, namely, striving to achieve realism. Drawing from areas such as robotics, dynamic simulation, mathematical modeling, and control theory, this book succeeds in presenting the material in a concise and cohesive way. As a matter of fact, it can be recommended not only to video game professionals but also to students and practitioners of the above-mentioned disciplines." Pål-Kristian Engstad, Senior Software Engineer, Naughty Dog, Inc.
"Increases in processor power now make it feasible to run complex physical simulations in real time, which greatly increases their practical importance. Thus there is an increasing need for books like David Eberly’s
Game Physics that can give graphics programmers a grounding in the physical principles that underlie realistic computer animation." - W.Lewis Johnson --Physics Today
amazon.co.uk:
"Game Physics" is an introduction to the ideas and techniques needed to create physically realistic 3D graphic environments. As a companion volume to Dave Eberly’s industry standard "3D Game Engine Design", "Game Physics" shares a similar practical approach and format. Dave includes simulations to introduce the key problems involved and then gradually reveals the mathematical and physical concepts needed to solve them. He then describes all the algorithmic foundations and uses code examples and working source code to show how they are implemented, culminating in a large collection of physical simulations. This book tackles the complex, challenging issues that other books avoid, including Lagrangian dynamics, rigid body dynamics, impulse methods, resting contact, linear complementarity problems, deformable bodies, mass-spring systems, friction, numerical solution of differential equations, numerical stability and its relationship to physical stability, and Verlet integration methods. Dave even describes when real physics isn’t necessary and hacked physics will do. It also includes a CD-ROM with extensive C++ source code that supports physical simulation.
Operating Systems and compilers that are supported are: Windows 2000/XP (Visual C++ versions 6, 7.0, and 7.1), Linux (g++ 3.x), Macintosh OS 10.3 (Xcode, CodeWarrior 9), SGI IRIX (Mips Pro 7.x), HP-UX (aCC), and Sun Solaris (g++ 3.x). The source is compatible with many game engines including the Wild Magic engine, for which the complete source code is included. This book also contains sample applications for shader programs (OpenGL and DirectX), including deformation by vertex displacement, skin and bones for smooth object animation, rippling ocean waves with realistic lighting, refraction effects, Fresnel reflectance, and iridescence.
amazon.co.uk:
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. Daves participation in the newsgroup comp.graphics.algorithms and his desire to make 3D graphics technology available to all are what has led to the creation of his company’s website and his books.
amazon.co.uk:
Game Physics is an introduction to the ideas and techniques needed to create physically realistic 3D graphic environments. As a companion volume to Dave Eberly’s industry standard
3D Game Engine Design,
Game Physics shares a similar practical approach and format. Dave includes simulations to introduce the key problems involved and then gradually reveals the mathematical and physical concepts needed to solve them. He then describes all the algorithmic foundations and uses code examples and working source code to show how they are implemented, culminating in a large collection of physical simulations. This book tackles the complex, challenging issues that other books avoid, including Lagrangian dynamics, rigid body dynamics, impulse methods, resting contact, linear complementarity problems, deformable bodies, mass-spring systems, friction, numerical solution of differential equations, numerical stability and its relationship to physical stability, and Verlet integration methods. Dave even describes when real physics isn’t necessaryand hacked physics will do.
*CD-ROM with extensive C++ source code that supports physical simulation. Operating Systems and compilers that are supported: Windows 2000/XP (Visual C++ versions 6, 7.0, and 7.1), Linux (g++ 3.x), Macintosh OS 10.3 (Xcode, CodeWarrior 9), SGI IRIX (Mips Pro 7.x), HP-UX (aCC), and Sun Solaris (g++ 3.x). The source is compatible with many game enginesincluding the Wild Magic engine, for which the complete source code is included.
*Contains sample applications for shader programs (OpenGL and DirectX), including deformation by vertex displacement, skin and bones for smooth object animation, rippling ocean waves with realistic lighting, refraction effects, Fresnel reflectance, and iridescence.
*Covers special topics not found elsewhere, such as linear complementarity problems and Lagrangian dynamics.
*Includes exercises for instructional use and a review of essential mathematics.
Hides or glosses over essential details
30 Jul 2006 @ amazon.co.uk
This book has much good information if you know exactly what you are looking for. However, its tone is very dry and academic and lacks a big picture perspective. It glosses over essential information on mechanics and in just 200 pages covers Newtonian and Lagrangian concepts. There are lots of equations, but the examples all use variables, thus making the examples no clearer than the equations they are supposed to be illustrating. There are no numerical examples at all.
Chapter 5, on physics engines, which the author himself says is the heart of the book, is woefully inadequate. He talks about the equations and features he wants to implement, and shows code snippets for the features, but there is one essential component that is missing - block diagrams and accompanying discussions that illustrate how all of these pieces fit together. A crate full of clearly labeled mechanical parts does not an automobile make.
Next we come to one of my areas of interest and one of the main reasons I bought this book in the first place - Chapter 6, "Physics and Shader Programs". The author certainly hits some fascinating topics - ocean waves, skin and bones animation, etc. However, once again the author skips what is between the basic physics equations that comprise these effects and the implementation of these equations and effects in code. The code that he does show is in NVidia’s Cg language. So if you don’t know Cg, the code is undecipherable. I would have preferred algorithmic pseudocode. Then I could implement the effects in the language of my choice.
The last four chapters of the book take an uptick in quality. These chapters are strictly on numerical methods, and I can’t believe they are written by the same author that wrote the first six chapters. There are fairly good discussions and examples on the subjects of linear and mathematical programming, ordinary differential equations, numerical methods, and quaternions, and also how these mathematical methods fit into solving problems in physics. They are not self-contained tutorials, but they are a good summary and review for the physics student who has already had some exposure.
I really can’t recommend this book as anything but a reference. Its merits are mainly the tying of mathematical methods to physics and good basic discussions on some topics. But where the rubber meets the road - answering the questions of "How does one go about building a physics engine?" and "How do I implement physics within the confines of a computer game?" I think that this book is a failure. I give it three stars only because the author obviously put a lot of effort into the work, and what he does write is not incorrect.
If you are interested in game physics I recommend "Physics for Game Programmers" by Grant Palmer. It takes an engineer’s viewpoint of the subject and features plenty of examples in Java of how to simulate explosions, lasers, and the motion of various classes of vehicles. There is no discussion of game engines, though. A good reference on college level physics can be found in the most recent edition of Schaum’s Outline of College Physics.
Hides or glosses over essential details
30 Jul 2006 @ amazon.com
This book has much good information if you know exactly what you are looking for. However, its tone is very dry and academic and lacks a big picture perspective. It glosses over essential information on mechanics and in just 200 pages covers Newtonian and Lagrangian concepts. There are lots of equations, but the examples all use variables, thus making the examples no clearer than the equations they are supposed to be illustrating. There are no numerical examples at all.
Chapter 5, on physics engines, which the author himself says is the heart of the book, is woefully inadequate. He talks about the equations and features he wants to implement, and shows code snippets for the features, but there is one essential component that is missing - block diagrams and accompanying discussions that illustrate how all of these pieces fit together. A crate full of clearly labeled mechanical parts does not an automobile make.
Next we come to one of my areas of interest and one of the main reasons I bought this book in the first place - Chapter 6, "Physics and Shader Programs". The author certainly hits some fascinating topics - ocean waves, skin and bones animation, etc. However, once again the author skips what is between the basic physics equations that comprise these effects and the implementation of these equations and effects in code. The code that he does show is in NVidia’s Cg language. So if you don’t know Cg, the code is undecipherable. I would have preferred algorithmic pseudocode. Then I could implement the effects in the language of my choice.
The last four chapters of the book take an uptick in quality. These chapters are strictly on numerical methods, and I can’t believe they are written by the same author that wrote the first six chapters. There are fairly good discussions and examples on the subjects of linear and mathematical programming, ordinary differential equations, numerical methods, and quaternions, and also how these mathematical methods fit into solving problems in physics. They are not self-contained tutorials, but they are a good summary and review for the physics student who has already had some exposure.
I really can’t recommend this book as anything but a reference. Its merits are mainly the tying of mathematical methods to physics and good basic discussions on some topics. But where the rubber meets the road - answering the questions of "How does one go about building a physics engine?" and "How do I implement physics within the confines of a computer game?" I think that this book is a failure. I give it three stars only because the author obviously put a lot of effort into the work, and what he does write is not incorrect.
If you are interested in game physics I recommend "Physics for Game Programmers" by Grant Palmer. It takes an engineer’s viewpoint of the subject and features plenty of examples in Java of how to simulate explosions, lasers, and the motion of various classes of vehicles. There is no discussion of game engines, though. A good reference on college level physics can be found in the most recent edition of Schaum’s Outline of College Physics.
GREAT book, if you don’t fear math
02 Jan 2006 @ amazon.co.uk
This is a great book on physics simulation, covering most of the mathematical methods and tricks. Some people would complain that’s very mathematically intensive, but I don’t see another way to do it without being superficial. This book, however, goes very deep in almost every aspect of rigid body simulation, and covers some aspects of non-rigid body simulation as well, which is an emerging trend.
I would suggest only one change to it: there’s a chapter on shaders which is pretty much useless - it’s very superficial as it doesn’t teach shader writing, and doesn’t teach hwo to use shaders for physics - I’d suggest that it be changed to include GPGPU methods for physics instead.
Other than that, the book is great, and the only one I’ve seen that actually covers heavy-duty, real-world simulation and not just silly approximations for special cases.
GREAT book, if you don’t fear math
02 Jan 2006 @ amazon.com
This is a great book on physics simulation, covering most of the mathematical methods and tricks. Some people would complain that’s very mathematically intensive, but I don’t see another way to do it without being superficial. This book, however, goes very deep in almost every aspect of rigid body simulation, and covers some aspects of non-rigid body simulation as well, which is an emerging trend.
I would suggest only one change to it: there’s a chapter on shaders which is pretty much useless - it’s very superficial as it doesn’t teach shader writing, and doesn’t teach hwo to use shaders for physics - I’d suggest that it be changed to include GPGPU methods for physics instead.
Other than that, the book is great, and the only one I’ve seen that actually covers heavy-duty, real-world simulation and not just silly approximations for special cases.
Download it for free!
11 Feb 2005 @ amazon.co.uk
A few days ago, I found David Baraff’s ’97 Siggraph course notes - they’re available for free download from his website (search Baraff on Google). I realised, as I leafed through them, that much of this book is just a complete rip-off of these notes. All the author has really added is a load of typos and some *seriously* bad explanations... this really deserves a paragraph of its own...
Now it’s not often that a mathematical mind capable of this sort of explanation comes into being. I really don’t know how he does it! But honestly, Dave is undeniably the worst maths writer I have *ever* come across, and this is after doing a maths degree. Now I know that maths can be hard to explain, but this is a disaster - there is sooo much irrelevant information, but you can’t skip any of it because it’s always mixed with important stuff (which is impossible to find without reading everything). This is made particularly poignant by the fact that Baraff is Eberly’s very antithesis - his explanations are lucid and crystal clear. Note that I make these criticisms not only on the basis of this book, but also after reading Eberly’s "Geometric Tools for Computer Graphics", for which I notice there are already some slightly scathing reviews in existence.
One thing that particularly gets my goat with this book is that the physics engine Eberly develops, he claims, guarantees non-penetration of objects (p280). But then he goes and makes approximations in the collision detection phase which violate this!!! Specifically, the collision detection he describes only takes account of linear velocity - rotational movements during a time step are applied as an afterthought (see p343), and allow for objects to becomes locked together. Also, throughout the book he analyses in terms of real numbers (rather than floating point numbers) including testing for "boundary intersection" (i.e. when two objects intersect *only* at their boundaries) as a separate event from interpenetration. But obviously, when time is discretised and numbers are floating point, one simply cannot deal with things in this way - it’s like testing one f.p. number being exactly equal to another. I really can’t believe this oversight! Overall, the book has a feel of each chapter being completely independent and unaware of the others, as though they’re all plagarised from different papers without any consideration of continuity or interdependence.
To be fair, there are one or two things that this book has going for it. There’s a chapter which explains the absolute basics of pixel shading (albeit now out-of-date) and mentions a few examples of how to use it for some optical effects, but no real explanations are given - you’re left to read the source on the CD. And there’s enough about collision detection to get you started, but if you’re serious about it you’ll need to (guess what?!) buy another book in his Series in Interactive 3D Technology (specifically "Collision Detection in Interactive 3D Environments").
Anyway, when I bought this book a few months ago, it was because I wanted to know about how to do collision detection and response in games. I write this review because I *wish* I had known that the relevant information was available on the web for free before I forked out over £30. Take a look at Baraff’s papers, and their references (which you’ll mostly be able to download for free from ACM or CiteSeer - search for these sites on Google). Not only will you get the info you need, you’ll also get a feel for how to read research papers, if you don’t already (it’s no harder than reading books, just slightly more focussed). Eberly has literally contributed less-than-nothing with this book - the only section worth reading is the bibliography.
Good stuff
10 Feb 2005 @ amazon.co.uk
I always love it when scientists and engineers, and mathematicians come along and review a game programming book. They go "oh! This is just ALL WRONG!!! AHHH!!!"
Please keep in mind this book is for physics simulations for video games. We can’t yet simulate the universe on an atomic scale in a PC game and expect a frame rate of more than 1 frame per millenium at this point in time.
I own all all of Dr. Eberly’s books and I find them all my most useful books. The only other graphics book I use alot is my Graphics programming by James Foley. The nice thing about Dr. Eberly’s book is that the code for most of this is on his website, so if you get stuck on how to implement something looking at the source code can help you further understand the maths and equations. I recommend to buy this if you are willing to put in the effort to understand the maths, but if you have a phd already you might not need it than.
Good stuff
10 Feb 2005 @ amazon.com
I always love it when scientists and engineers, and mathematicians come along and review a game programming book. They go "oh! This is just ALL WRONG!!! AHHH!!!"
Please keep in mind this book is for physics simulations for video games. We can’t yet simulate the universe on an atomic scale in a PC game and expect a frame rate of more than 1 frame per millenium at this point in time.
I own all all of Dr. Eberly’s books and I find them all my most useful books. The only other graphics book I use alot is my Graphics programming by James Foley. The nice thing about Dr. Eberly’s book is that the code for most of this is on his website, so if you get stuck on how to implement something looking at the source code can help you further understand the maths and equations. I recommend to buy this if you are willing to put in the effort to understand the maths, but if you have a phd already you might not need it than.
Good, but a lot of chaff
30 Sep 2004 @ amazon.co.uk
I’ve just finished a maths and computer science course, and have been programming in C, C++ and Java for the last 5-10 years. I wanted to learn about collision detection and response, so I bought this book.
Firstly, I was certainly not disappointed. This book covers these topics very well, and giving enough detail for you to go away and start implementing. It opens up plenty of avenues for thought as well.
However, there are a few criticisms. Even with a maths degree (I didn’t do much mechanics, though) I found the maths pretty hard going. To make matters worse, there is a lot of physics information that’s pretty much irrelevant, or could have been covered much more concisely. Also, there are quite a few mistakes (usually just typos) in explanations and formulas. If you’re paying attention, you’ll spot them, and there is an errata list on the website.
The book contains a token chapter on optics (i.e. physically realistic graphics effects) but the explanations are weak and rushed, covering only the bare minimum, and leaving you to investigate the source on the CD.
However, I don’t want to give the impression that this is a bad book. Overall, I’m proud to own it, and truly cherish it’s advice. Once you’ve worked your way through the unnecessary preliminaries, it’s an enthralling and inspiring read, and contains enough detail for you to go away and code. I would highly recommend this book to anyone with a strong mathematical background who is interested in physics modelling in games.
Falls short of its title
17 Mar 2004 @ amazon.co.uk
My interest is physics and physics simulations, not gaming per se...so my observations should be viewed in that light.
The main problem with this book is the treatment is incomplete, superficial, or just wrong (from a physics/math point of view), and the typical programmer/computer scientist is not likely to know it. I am reminded of the great fluid dynamicist von Karmen’s definition of an engineer as that person who perpetuates the mistakes made by the previous generation. The REASON a game programmer can get away with this is that he is not testing his results by real experiment...his world is a computer generated simulation with arbitrary approximations to physical laws that the programmer deems to impose.
The other problem is that there are usually a multitude of techniques that one can pick to solve a given mechanics problem...and what would have been really valuable is if the author had shown why a particular method is better (for example, Newton’s Laws vs. Lagrange’s Equations) when the time comes to code the algorithm. We are not looking for Eberly primarily to teach us physics (but if he makes the attempt, it should be correct!)-that is always going to be the job of physics courses. Instead, he needs to tell us which method is useful for coding and why-this, sadly, he has not done.
As an illustration of what I mean...look at how Petzold in `Programming Windows with C#’ discuss the elementary process of using GDI+ to draw a curve. There are two approaches, using rectangular coordinates, or using parametric equations (polar coordinates). Petzold explains WHY the parametric approach is superior from a programming point of view.
Any advanced sophomore or junior physics student will know most of the physics presented here (classical mechanics)...but in addition, they will also know the CORRECT statement of conservation of angular momentum (the author got it wrong) ...AND they will have a deeper understanding, because they will have likely studied something like Marion’s Classical Dynamics which is rigorous and physical. Especially egregious is Eberly’s twice incorrectly defining an inertial reference frame. In classical mechanics, an inertial reference frame is one in which Newton’s laws are valid.
Same comment for the math...The math is maybe sophomore/junior level (except for the Quaternions)...but it is not rigorous nor is it motivated, and sometimes it is wrong. Compare Eberly’s terse treatment of the delta function with Marion’s motivated and physical discussion. Also, we see things like interchange of limits and integration, without explaining when this is mathematically legal. Then there is the unmotivated vector spaces treatment. Eberly goes to the effort to define a field, but then restricts his definition of a vector space to having real coefficients...Then why bother defining fields if you are not going to use them. We are given the mathematician’s definition of the determinant (i.e., the unique, alternating, n-linear function with identity) but this is completely useless from a computational view! If Eberly wants to present some advanced linear algebra, then some tensor analysis would have served the game programmer better, as it is often used in continuum mechanics and fluids, neither of which are discussed by the author. He had a perfect opportunity in the Affine Algebra chapter when he stumbles upon the Levi-Civita tensor, which he then dismisses as unimportant! The Affine Algebra chapter is really bad from both a physics and a geometry view. First, a physicist does not think of a vector as something with direction and magnitude, and a geometer is more inclined to think of them as a derivation. Second, affine spaces are too weak a tool to use to distinuish points from vectors, though we do mod out the origin..this really needs a manifold with vector fields and parallel translation. Third, linear algebra is the study of vector spaces and isomorphism.
There is a chapter on numerical methods, but again incomplete! We should have at least got Numerov’s method and some Monte Carlo techniques.
The chapter on shading is ridiculous from a physics point of view. Essentially we have Snell’s law, and a cursory reference to Fresnel and that’s it...Evidently, the author was not up to discussing some real physics ala Maxwell. Why spend so much time on classical mechanics, and then almost totally dismiss optics with a non-physical discussion? We don’t even get Huygens principal. But we do get a wrong definition of polarization of light.Thankfully, he did not try to define helicity.
In summary, this book has two uses:
1) It presents a list of physics and some numerical methods which the game programmer will find useful, and which he will then go ELSEWHERE to actually learn. (I can recommend Landau (of OSU, not Russia) "Computational Physics" and also the CUPS Physics Simulations books for excellent starters.)
2) There is the happy possibility that a budding game programmer, in his pursuit of the knowledge to build a better computer game, will discover the much more interesting game called Physics.
Falls short of its title
17 Mar 2004 @ amazon.com
My interest is physics and physics simulations, not gaming per se...so my observations should be viewed in that light.
The main problem with this book is the treatment is incomplete, superficial, or just wrong (from a physics/math point of view), and the typical programmer/computer scientist is not likely to know it. I am reminded of the great fluid dynamicist von Karmen’s definition of an engineer as that person who perpetuates the mistakes made by the previous generation. The REASON a game programmer can get away with this is that he is not testing his results by real experiment...his world is a computer generated simulation with arbitrary approximations to physical laws that the programmer deems to impose.
The other problem is that there are usually a multitude of techniques that one can pick to solve a given mechanics problem...and what would have been really valuable is if the author had shown why a particular method is better (for example, Newton’s Laws vs. Lagrange’s Equations) when the time comes to code the algorithm. We are not looking for Eberly primarily to teach us physics (but if he makes the attempt, it should be correct!)-that is always going to be the job of physics courses. Instead, he needs to tell us which method is useful for coding and why-this, sadly, he has not done.
As an illustration of what I mean...look at how Petzold in `Programming Windows with C#’ discuss the elementary process of using GDI+ to draw a curve. There are two approaches, using rectangular coordinates, or using parametric equations (polar coordinates). Petzold explains WHY the parametric approach is superior from a programming point of view.
Any advanced sophomore or junior physics student will know most of the physics presented here (classical mechanics)...but in addition, they will also know the CORRECT statement of conservation of angular momentum (the author got it wrong) ...AND they will have a deeper understanding, because they will have likely studied something like Marion’s Classical Dynamics which is rigorous and physical. Especially egregious is Eberly’s twice incorrectly defining an inertial reference frame. In classical mechanics, an inertial reference frame is one in which Newton’s laws are valid.
Same comment for the math...The math is maybe sophomore/junior level (except for the Quaternions)...but it is not rigorous nor is it motivated, and sometimes it is wrong. Compare Eberly’s terse treatment of the delta function with Marion’s motivated and physical discussion. Also, we see things like interchange of limits and integration, without explaining when this is mathematically legal. Then there is the unmotivated vector spaces treatment. Eberly goes to the effort to define a field, but then restricts his definition of a vector space to having real coefficients...Then why bother defining fields if you are not going to use them. We are given the mathematician’s definition of the determinant (i.e., the unique, alternating, n-linear function with identity) but this is completely useless from a computational view! If Eberly wants to present some advanced linear algebra, then some tensor analysis would have served the game programmer better, as it is often used in continuum mechanics and fluids, neither of which are discussed by the author. He had a perfect opportunity in the Affine Algebra chapter when he stumbles upon the Levi-Civita tensor, which he then dismisses as unimportant! The Affine Algebra chapter is really bad from both a physics and a geometry view. First, a physicist does not think of a vector as something with direction and magnitude, and a geometer is more inclined to think of them as a derivation. Second, affine spaces are too weak a tool to use to distinuish points from vectors, though we do mod out the origin..this really needs a manifold with vector fields and parallel translation. Third, linear algebra is the study of vector spaces and isomorphism.
There is a chapter on numerical methods, but again incomplete! We should have at least got Numerov’s method and some Monte Carlo techniques.
The chapter on shading is ridiculous from a physics point of view. Essentially we have Snell’s law, and a cursory reference to Fresnel and that’s it...Evidently, the author was not up to discussing some real physics ala Maxwell. Why spend so much time on classical mechanics, and then almost totally dismiss optics with a non-physical discussion? We don’t even get Huygens principal. But we do get a wrong definition of polarization of light.Thankfully, he did not try to define helicity.
In summary, this book has two uses:
1) It presents a list of physics and some numerical methods which the game programmer will find useful, and which he will then go ELSEWHERE to actually learn. (I can recommend Landau (of OSU, not Russia) "Computational Physics" and also the CUPS Physics Simulations books for excellent starters.)
2) There is the happy possibility that a budding game programmer, in his pursuit of the knowledge to build a better computer game, will discover the much more interesting game called Physics.
The best of Physics for Real-Time Computer Graphics
08 Mar 2004 @ amazon.co.uk
Undoubtedly this is a must-have for people who are serious about developing real-time computer graphics simulations with physically based modeling.
This book can be compared with Coutinho’s "Dynamic Simulations of Multibody Systems". I believe the latter covers more materials, but Eberly’s is easier to read. The book would be almost sufficient if you also have his previous book "3D Game Engine Design".
I am not sure why the author wrote chapter 4 and 6. I suppose these can be left out. It would have been more compact.
The best of Physics for Real-Time Computer Graphics
08 Mar 2004 @ amazon.com
Undoubtedly this is a must-have for people who are serious about developing real-time computer graphics simulations with physically based modeling.
This book can be compared with Coutinho’s "Dynamic Simulations of Multibody Systems". I believe the latter covers more materials, but Eberly’s is easier to read. The book would be almost sufficient if you also have his previous book "3D Game Engine Design".
I am not sure why the author wrote chapter 4 and 6. I suppose these can be left out. It would have been more compact.
Dave’s Done it Again
02 Mar 2004 @ amazon.co.uk
Dave Eberly has carved out a reputation as an author of serious books for the serious business of game development. None of his titles fall into the trap of being really simple (and therefore wrong), but they give a solid grounding in the maths and coding of the subject.
This book is no different. Real-time physics is hard, and Dave’s book is the first time I’ve seen many of the techniques brought down to the level of mere mortal understanding.
Having said all this, the math is hard. You’ll not get far with this book if you aren’t reasonably comfortable with linear algebra, matrices and calculus (but you’ll get nowhere writing a physics engine without those things either). The diagrams help understanding, and Dave’s text is as readable as ever. The equations and source code are up to an extremely high standard, which is so rare in game development texts.
Dave covers a range of different physics solutions, and here is my only criticism. To my knowledge only a couple of his approaches are used by developers to build games. In particular only about 25% of the book covers material that I have seen in used in real game projects. Maybe he is trying to introduce the other 75% to developers, I don’t know but it didn’t strike me as stuff I’m going to need. But while the practical 25% would be worth the cover price (it isn’t covered in any other book), it is a shame that the other 75% didn’t get slimmed in its favour.
Working in the industry, I know Dave’s books are respected and find their way onto many programmers desks. This will join his graphics texts, despite its minor shortcoming.
not for beginners
28 Feb 2004 @ amazon.co.uk
Escrito para prefesores !
No es un libro que explique las cosas "con manzanitas".
Keeps Physicists Busy
03 Jan 2004 @ amazon.co.uk
For many videogames that emulate the real world, an accurate use of physics has become essential to take advantage of players’ intuition. In some ways, this is the next natural step beyond a realistic, real time rendition of images, as in Doom or Quake. Those and other games used simple optics and trigonometry to derive accurate images.
But as computers get more powerful, and players might find themselves driving cars, for example, then having these vehicles respond accurately when driven became the next logical step in simulation.
The book covers Newtonian mechanics, because that is what we are typically familiar with. If you are a physicist, you should recall that historically there were 2 great advances within this - Hamiltonian and Lagrangian methods. (Cf. Goldstein’s "Classical Mechanics".) A little ironic, wouldn’t you say, that now some jobs in applying these are for games?! Who would have thought it, some twenty years ago.
The book is good for helping you focus on what objects in the system you should be modelling. Part of your experience comes in deciding this level of detail. Actually, this is not restricted to games, but to any physical system that you are analysing.
The graphics in this book are really a secondary consideration. Stay focused. Model the system FIRST. Then attend to the views. Even though the views are what the player sees.
To this end, you should be pleased to know that the author sticks to graphics standards like OpenGL, which can be ported to most current computers. So you don’t have to invest your time in learning some restricted graphics language.