tailieunhanh - 3D Graphics with OpenGL ES and M3G- P30

3D Graphics with OpenGL ES and M3G- P30: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. | 274 INTRODUCING M3G CHAPTER 12 Figure The transformation and lighting pipeline of M3G. The back end of the pipeline is the same as in OpenGL ES. The front end provides morphing skinning scaling biasing and the alpha factor. These are described in Chapters 14 through 16. Although not indicated by this diagram morphing and skinning are mutually exclusive. Also the scene graph nodes can have at most one parent . there is no support for instancing at the node level. However all substantial data . textures vertices indices and animations are in the node components and can be shared by arbitrarily many nodes. Node instancing was dropped to keep things simple many scene graph operations are easier to define and implement on a tree as compared to a directed acyclic graph. SECTION OVERVIEW 275 Figure An example scene graph. The gray rounded boxes are scene graph nodes while the square boxes are node components. Note how some of the Appearance components are shared by the . and the regular Mesh. The recommended way of using M3G is to set up a complete scene graph in the beginning and only make relatively minor modifications to it on a per-frame basis. It is possible to render individual objects in the immediate mode but rendering an entire scene graph in one go using the retained mode is far more efficient. Using the retained mode reduces the amount of Java code executed and the number of methods called allows the engine to draw the objects in an optimal order enables the use of hierarchical view frustum culling and so on. In some cases the best approach is to render most of the scene in retained mode adding perhaps a player character and some special effects into the scene using the immediate mode. One of the key features ofM3G is its keyframe animation engine. It can animate any property of any object by sampling a user-specified animation curve. It is conceptually simple yet allows almost any arbitrary animation curve to be exported from DCC tools .