- Hardcover: 464 pages
- Publisher: Morgan Kaufmann; 1 edition (December 3, 2007)
- Language: English
- ISBN-10: 0123737273
- ISBN-13: 978-0123737274
- Product Dimensions: 7.6 x 1 x 9.4 inches
- Shipping Weight: 2.3 pounds (View shipping rates and policies)
- Average Customer Review: 6 customer reviews
- Amazon Best Sellers Rank: #3,341,751 in Books (See Top 100 in Books)
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.
Mobile 3D Graphics: with OpenGL ES and M3G (The Morgan Kaufmann Series in Computer Graphics) 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
Fulfillment by Amazon (FBA) is a service we offer sellers that lets them store their products in Amazon's fulfillment centers, and we directly pack, ship, and provide customer service for these products. Something we hope you'll especially enjoy: FBA items qualify for FREE Shipping and Amazon Prime.
If you're a seller, Fulfillment by Amazon can help you increase your sales. We invite you to learn more about Fulfillment by Amazon .
"Enlightenment Now: The Case for Reason, Science, Humanism, and Progress"
Is the world really falling apart? Is the ideal of progress obsolete? Cognitive scientist and public intellectual Steven Pinker urges us to step back from the gory headlines and prophecies of doom, and instead, follow the data: In seventy-five jaw-dropping graphs, Pinker shows that life, health, prosperity, safety, peace, knowledge, and happiness are on the rise. Learn more
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
The book consists of three parts: anatomy of a graphics engine, OpenGL ES, and M3G, each divided into chapters. In each chapter, one aspect of the mobile 3D graphics is discussed (e.g. in the first part of the book, chapters include: low-level rendering, animation, scene management, and performance/scalability). Each chapter discusses the important issues, and sample code segments are provided.
The best features of the book include: its in-depth coverage of the mobile graphics techniques; how to start developing OpenGL ES and M3G application; performance tips and pitfalls; and how to accelerate your code using fixed-point arithmetic; and how to increase performance of Java code. The Web site that complements the book([...]) contains code samples and demos.
I found the book to be a good introduction to mobile graphics programming, perhaps the best among mobile 3D graphics programming books. The authors are also among the experts of 3D mobile graphics: they helped to start the OpenGL ES and M3G standardization groups, and actively contributed to development of these standards.
On the flip side, as the other reviewers have said, OpenGL ES 2.0 is not included in this book. But, it will be some time until we will see widespread use of OpenGL ES 2.0 enabled mobile devices. Even then, developers will still be able to use OpenGL 1.x on 2.0 hardware, with appropriate 1.x drivers). So, as of this writing, this is not an outdated book!
Also, a complete case study (e.g. a small OpenGL ES or M3G game, complete with user input, rendering optimization, etc.) would be a very useful addition to the book.
The book comprises of three parts. Part I explains general 3D graphics concepts with attention to the specifics of mobile devices. It begins with a general introduction to mobile device technology. After a chapter on important mathematical concepts for 3D graphics, the low-level concepts of a 3D graphics engine like OpenGL ES are explained (what are fragment and vertex operations, how does lighting work, what is texturing etc.). The two subsequent chapters explain high-level concepts for animation (e.g key-frame interpolation, skinning) as well as scene management (e.g. scene graphs). Here the focus lies on concepts supported by M3G. The last chapter in part I is an excellent intro to performance and scalability issues on mobile devices. It gives practical hints on how to identify performance bottlenecks, how to write compact code, and how to make your application scale to a range of devices.
Part II of the book addresses the low-level mobile 3D graphics API OpenGL ES. It is not a tutorial-like intro to OpenGL ES which would augment a program step-by-step with new features and talk the reader through it. It is rather an excellent reference which explains how all raster-engine concepts introduced in part I can be practically interfaced (OpenGL ES function names and choice of parameters etc.). Also, the authors explain in detail what the differences to OpenGL are and why these differences exist. Again, it comes in very handy that the authors point out potential performance and memory issues and give hints on how to handle them.
Part III of the book focuses on M3G. After a general explanation of M3G features, as well as specifics due to limitations of Java on mobile devices, the book first explains the basic class structure. Thereafter, it illustrates how to interface OpenGL ES concepts with M3G. Subsequently, a detailed explanation of the M3G
scene graph is given (what types of nodes exist, how to do picking etc.). Finally, one chapter is dedicated to the support of basic animation concepts (key-framing, deforming meshes, skinned characters). Overall, part III contains more practical code examples - which makes a lot of sense, since in practice the majority of
developers may want to use M3G as it tremendously simplifies cross-platform development.
In general, I think the book is an excellent introduction to mobile 3D graphics that has a decent mix between explanation of general concepts and actual APIs. What I particularly like is the frequent pointing out of performance issues that developers must be aware of when working on mobile devices. When developing in this domain, one definitely needs to know about limitations imposed by the restricted computational and memory resources. Also one needs to know how the implementation may even influence power consumption. All of this is treated in great detail.
The only minor downside is that the book does not cover OpenGL ES 2.0 and any fragment or vertex shader programming. There are, however, other books which focus solely on shader development.
To summarize, this book is an excellent introduction and reference to mobile 3D graphics that everyone working in the field should own.
So while this book is not a theoretical book expect to have to invest some days in it before you start to get some value. This is a reflection of the complexity of the subject treated. I recommend this book if you are interested by OpenGL (or the java equivalent) in the mobile space.
Everything you would expect from this book is there... from the basic math to the implementation details, and tips on how to design a game/graphics engine. It is a valuable, digestible book on Mobile 3D.
However it does have a negative point, that is: very little coverage of shaders and OpenGL ES 2.0. By 2010 i doubt there will be a fixed function engine being developed, so i am hopeful for a 2nd edition that updates the API to 2.0.
If ES 2.0 is what you are looking for, there is an OpenGl ES 2.0 book coming out in August 08, so learn this book and then move on to that book. Though the problem with shader based engines is that they are destructive (as in break backwards compatibility with fixed function APIs like ES 1.*)
Bottom line: If you are into mobile 3D graphics this is a must have book. Be you a C++ or a Java programmer.