3D Graphics with OpenGL ES and M3G- P15:Mobile phones are the new vehicle for bringing interactive graphics technologies to consumers. Graphics that in the 1980s was only seen in industrial flight simulators and at the turn of the millennium in desktop PCs and game consoles is now in the hands of billions of people. This book is about the technology underpinnings of mobile threedimensional graphics, the newest and most rapidly advancing area of computer graphics. | 124 SCENE MANAGEMENT CHAPTER 5 Figure Some of the features that are available in 3ds Max for meshes left materials middle and animations right . Only a fraction of these can be supported in real-time systems particularly on mobile devices that have no programmable graphics hardware. Images copyright Autodesk. Many exciting authoring tool features are ruled out by technical limitations alone especially when targeting mobile devices. For example it is hardly feasible to animate a subdivision-surface model by free-form deformations and render it with refractions displacement mapping and soft shadows. Technical constraints notwithstanding the mere effort to define and implement such a huge array of techniques is formidable. The definition effort becomes even more difficult if the features need to be standardized so that independent implementations will work the same way. Finally including everything that is nice to have will lead to a bloated system with lots of little-used functionality that mostly just obscures the essential parts. The M3G standardization group settled for relatively few built-in animation and rendering techniques. Beyond what is directly provided by OpenGL ES the key features are hierarchical transformations layered multipass rendering two mesh modifiers vertex morphing and skinning and keyframe animation. These allow surprisingly complex animated scenes to be exported from authoring tools and reproduced at runtime with very little application code. Many sophisticated mesh deformations for example can be exported as suitably keyframed morph targets. Of course almost SECTION SCENE GRAPHS 125 any technique can be written in Java using M3G only for rasterization but then performance might become an issue. EXTENSIBILITY Now that we have a fairly generic rendering-oriented scene graph design we need to decide whether to make it extensible that is to open up the rendering traversal and expose the underlying rendering engine so that the .