Mobile 3D Graphics: Learning 3D Graphics with the Java Micro Edition by Claus Höfele (464 pages)
Publisher: Thomson Course Technology PTR
Free sample chapter: Chapter 2, Hello, World!
Order it: Directly from the publisher or your favorite book store such as Amazon.com (CA, UK, DE, FR, JP) or Barnes & Noble.com.
What Others Say
“His descriptions and examples of how the API works have been most helpful - something the official documentation could do with.” Read the entire 5-star book review on Amazon.co.uk by reader C. Woffenden.
“I definitely recommend this book not only to people interested in learning about programming 3D graphics for embedded devices, but also for anyone who wants to learn about 3D graphics programming in general.” - Jason van Gumster. Read the entire book review on BlenderNation.
In this book, you'll learn about 3D graphics by using the Mobile 3D Graphics API (M3G), which is standardized as part of the Java Community Process in Java Specification Request 184. This API addresses the needs of developers who want to use Java for 3D graphics programming on devices with little memory and processing power.
These devices are the domain of the Java Platform, Micro Edition (previously known as the Java 2 Platform, Micro Edition, or J2ME). More specifically, this book focuses on the Connected, Limited Device Configuration (CLDC) and the Mobile Information Device Profile (MIDP). Both are part of the Java Micro Edition and together provide the application environment that's used in this book. If you buy a mobile phone today, the chances are high that it will include such a Java environment and that you can use it for 3D graphics programming.
While the mobile game market is attractive due to the low entry barriers of developing in Java, the basics of 3D graphics can be complex. Mobile 3D Graphics teaches the skills necessary for 3D programming. The book assumes no knowledge of 3D graphics, but does assume a working knowledge of Java programming. You will learn skills that can be applied to the Java Micro Edition, but also to any other 3D platform. While the competition for game programming jobs is high, many opportunities exist within the mobile game market. Mobile 3D Graphics is the ideal guide for anyone hoping to jump into that segment of the industry, including mobile game programmers hoping to expand their skills to 3D, students searching for an inexpensive programming environment for conquering 3D graphics, and hobbyists interested in seeing their ideas through to creation.
Part I: Overview
- Chapter 1, The Mobile 3D Graphics API, contains an overview of the Java Micro Edition and the Mobile 3D Graphics API.
- Chapter 2, Hello, World!, explains more about CLDC and MIDP. In this chapter you'll develop your first 3D application and get a review of the CLDC/MIDP tool chain.
- Chapter 3, Before You Start, tells you how to find out more about a device and the challenges you will face when programming for the many devices that exist in the mobile space.
Part II: 3D Fundamentals
- Chapter 4, Rendering Geometric Objects, explains how you construct meshes and render them in immediate mode. You'll create a library of 3D shapes that will come in handy throughout the book.
- Chapter 5, Transformations, shows you how to position a mesh in a scene. It also covers all other transformations in the geometry pipeline that your mesh will go through until it ends up on the screen, including viewing, projection, and viewport transformations.
- Chapter 6, Textures, describes how you can wrap an image around a mesh to create realistically looking models.
- Chapter 7, Blending and Transparency, gives you the tools to create composites of different rendering sources. It also includes descriptions how you can layer several textures on top of each other and create fog.
- Chapter 8, Lighting, shows you how to shade your scene. Lighting adds depth and realism.
Part III: Advanced Topics
- Chapter 9, Scene Graphs, introduces a data structure that you can use to organize your scene. It will also introduce an alternate rendering mode that's closely related to scene graphs: retained mode.
- Chapter 10, M3G's File Format, talks about creating and using files with serialized scene data. You'll see how you can export such files from Blender, an open-source 3D content-creation tool, and import the data into your own applications.
- Chapter 11, Keyframe Animations, discusses how the Mobile 3D Graphics API helps you create animations and control the playback.
- Chapter 12, Dynamic Meshes, describes two advanced features relating to meshes: morphing, which blends one mesh into another, and skinning, which is a technique to animate vertebrates such as humans and animals. Both features help you create articulated characters.
- Appendix A, Reference Geometry and Fragment Pipelines, shows M3G's official order of operation. You can use this as a handy index to the classes used in this book.
- Appendix B, MascotCapsule V3 API, compares M3G with an alternate Java API by Japan based HI Corporation. This API is successful for low-end devices.
- Appendix C, Java Binding for the OpenGL ES API, provides an example using JSR 239. This API defines a Java mapping that resembles OpenGL ES's C interface, making it easy to port existing OpenGL content.
- Appendix D, What's on the CD-ROM, outlines in detail what you'll find on the book's CD and describes how the CD is laid out.