Mobile 3D Graphics: with OpenGL ES and M3G (The Morgan Kaufmann Series in Computer Graphics)

Mobile 3D Graphics: with OpenGL ES and M3G (The Morgan Kaufmann Series in Computer Graphics)
Authors
Kari Pulli, Jani Vaarala, Ville Miettinen, Tomi Aarnio, Kimmo Roimela
ISBN
0123737273
Published
01 Nov 2007
Purchase online
amazon.com

Graphics and game developers must learn to program for mobility. This book will teach you how. "This book - written by some of the key technical experts...provides a comprehensive but practical and easily understood introduction for any software engineer seeking to delight the consumer with rich 3D interactive experiences on their phone. Like the OpenGL ES and M3G standards it covers, this book is destined to become an enduring standard for many years to come.

Page 2 of 2
  1. Editorial Reviews
  2. Customer Reviews

Customer Reviews

Trent Buckingham said
As an OpenGL starter, someone recommended this book to me. I would not, however, recommend it to someone who is a beginner in OpenGL. This is one of those texts that start with a really long discussion about the theory, and then teach the applications at the end. They could have mixed the math stuff along with using the API instead of going through all these math explanations first. In the end, you have already forgotten about the math stuff anyway. They could have also just focused on the differences between ES and the desktop version and leave the theory stuff to other books.

Tolga Capin said

The Mobile 3D Graphics book is a tutorial-type book that helps to understand Mobile 3D APIs, OpenGL ES and M3G. The book was written for graphics application developers, game developers, Java developers, and students.

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(http://www.graphicsformasses.com) 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.

M. Seritan said
I purchased this book primarily for OpenGL on mobile devices. I needed something more specific to Apple's iPhone SDK, however I am glad I went with this more generic book instead. OpenGL is a complex standard and has a long history. After reading this book I understand better what are the various forces at play in the evolution of the standard, the various layers of the system and how they play between themselves. A big relief is that you do not have to understand all of the standard and certainly not use it all. The down side is that you need lots of information to be able to zoom into the specific APIs that make sense for your application.

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.

c_theobalt said
This book is a must-have for anyone planning to develop interactive 3D graphics applications on mobile devices. The authors are known experts in the field and greatly contributed to the OpenGL ES and M3G standards. Overall, I think the book is a very valuable reference for 3D graphics practitioners who want to get a start on implementing applications for mobile devices. At the same time the book is also well-suited as a text-book accompanying a course on mobile graphics.

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.

Daniel Mendes said
The book is well written and is quite informative. It has an obligation to be because the authors pretty much created OpenGL ES or helped shape the specs.

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.

You might also like...

Comments

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“Beware of bugs in the above code; I have only proved it correct, not tried it.” - Donald Knuth