- 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,418,670 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 .
"Children of Blood and Bone"
Tomi Adeyemi conjures a stunning world of dark magic and danger in her West African-inspired fantasy debut. Learn more
Author interviews, book reviews, editors picks, and more. Read it now
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
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.
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.