Mobile 3D Graphics: with OpenGL ES and M3G
Kari Pulli, Tomi Aarnio, Ville Miettinen, Kimmo Roimela, Jani Vaarala
- 出版商: Morgan Kaufmann
- 出版日期: 2007-11-19
- 定價: $1,980
- 售價: 5.0 折 $990
- 語言: 英文
- 頁數: 464
- 裝訂: Hardcover
- ISBN: 0123737273
- ISBN-13: 9780123737274
-
相關分類:
OpenGL
立即出貨(限量)
買這商品的人也買了...
-
$836PSP: A Self-Improvement Process for Software Engineers (Hardcover)
-
$880$695 -
$880$695 -
$650$514 -
$780$663 -
$550$468 -
$980$774 -
$620$490 -
$350$298 -
$880$695 -
$990$891 -
$600$480 -
$720$612 -
$1,200$1,020 -
$650$553 -
$1,180$1,003 -
$750$593 -
$980$774 -
$680$530 -
$490$387 -
$620$490 -
$1,584OpenGL ES 2.0 Programming Guide (Paperback)
-
$480$374 -
$690$587 -
$750$593
相關主題
商品描述
Description
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."
- Lincoln Wallen, CTO, Electronic Arts, Mobile
“This book is an escalator, which takes the field to new levels. This is especially true because the text ensures that the topic is easily accessible to everyone with some background in computer science...The foundations of this book are clear, and the authors are extremely knowledgeable about the subject.”
- Tomas Akenine-Möller, bestselling author and Professor of Computer Science at Lund University
"This book is an excellent introduction to M3G. The authors are all experienced M3G users and developers, and they do a great job of conveying that experience, as well as plenty of practical advice that has been proven in the field."
- Sean Ellis, Consultant Graphics Engineer, ARM Ltd
The exploding popularity of mobile computing is undeniable. From cell phones to portable gaming systems, the global demand for multifunctional mobile devices is driving amazing hardware and software developments. 3D graphics are becoming an integral part of these ubiquitous devices, and as a result, Mobile 3D Graphics is arguably the most rapidly advancing area of the computer graphics discipline.
Mobile 3D Graphics is about writing real-time 3D graphics applications for mobile devices. The programming interfaces explained and demonstrated in this must-have reference enable dynamic 3D media on cell phones, GPS systems, portable gaming consoles and media players.
The text begins by providing thorough coverage of background essentials, then presents detailed hands-on examples, including extensive working code in both of the dominant mobile APIs, OpenGL ES and M3G.
C/C++ and Java Developers, graphic artists, students, and enthusiasts would do well to have a programmable mobile phone on hand to try out the techniques described in this book.
The authors, industry experts who helped to develop the OpenGL ES and M3G standards, distill their years of accumulated knowledge within these pages, offering their insights into everything from sound mobile design principles and constraints, to efficient rendering, mixing 2D and 3D, lighting, texture mapping, skinning and morphing.
Along the way, readers will benefit from the hundreds of included tips, tricks and caveats.
Table of Contents
Chapter 1 Introduction
1.1 Mobile phones as graphics platforms
1.2 History of Mobile 3D
- Power consumption, size, price
- Form factors, UI constraints
- Display resolution, size
- CPU, memory, bus bandwidth
- Graphics hardware, FPU
- Many operating systems
- Most phones have no OS
1.3 Two APIs for two environments
- J-Phone, Nokia 3410, etc.
- Current market status
1.4 Design principles
- The low-level rendering pipeline in brief
- OpenGL ES
- Java constraints in brief (details in Section III)
- M3G
- Expand on CG&A paper
- Things common to GL ES and M3G
- API specific issues in Sections II and III
Chapter 2 OpenGL ES
2.1 Design principles
2.2 OpenGL ES API overview
2.3 Windowing / Utility API overview
- Overview of the OpenGL graphics pipeline
- What's in/out
- What was added
- What's new in 1.1?
- What's new in 2.0? (briefly, we won't cover 2.0 programming here)
- Optional extensions
- Vendor specific extensions
2.4 OpenGL ES API walk-through
- EGL API overview
- EGLUT API overview
- Porting from desktop GL
- Hello OpenGL ES example
2.5 Implementation insights
- Controlling state
o Description
o Design principles
o Examples on using
o Implementation insights- Matrix operations, controlling the camera, Viewport
- Vertex Input & Batching, geometry
- Lighting
- Texture mapping: basics, multi-texturing, bump maps
- Tests: depth, alpha, stencil, scissor
- Fog, Blending
- Point Sprites
- Skinning
2.6 How to write efficient code
- Pixel pipeline implementation
- Accuracy
- OS interaction
- Buffer swapping
- What's costly, what's not
- Typical fast paths
2.7 How to write compatible code
- Software implementations
- Hardware implementations
- Batching geometry (VBOs, their use etc.)
- Handling state
- Rendering order
- Tips, tricks, caveats
- Mixing 2D and 3D
2.8 Case studies
- Variance in implementations
- Memory management issues (Symbian as an example)
- Extensions
- Using different API versions (single app, static vs. dynamic linkage)
- CPU versions
Chapter 3 M3G
3.1 Special constraints in Java
3.2 Design principles
- Performance problems in-depth
- GC, JIT, bounds checking, type checking
- Bad bytecode instruction set, no CPU access
- Slow Java-native traffic, native call overhead
- Exception handling, problems with callbacks
- If no OS underneath: no processes, no dynamic memory allocation
- Expand on material from our SIGGRAPH course
3.3 API overview
- Expand on material from our SIGGRAPH course
3.4 M3G API walk-through
- Graphics3D, World, Loader
- Mesh, Sprite3D, Appearance
- SkinnedMesh, MorphingMesh
- Keyframe animation
- Alignment, picking
- Expand on SIGGRAPH material
- What's new in 1.1?
3.5 How to write efficient code
- Feature A
o Description
o Design principles
o Examples on using
o Implementation insights- Feature B
- Features including:
- Scene graph management
- Culling, state sorting, etc.
- Skinning, morphing
- Transformation hierarchies
- Backgrounds and Sprites vs. Textures
3.6 Case studies
- Tips, tricks and caveats
- What's costly, what's not
- Concentrate on things specific to M3G
- Particle systems
- Terrain rendering
- Dynamic meshes in general
- Visibility optimization (BSP, PVS, Octrees)
- Mixing 2D and 3D
- Pivot transformations
- Alignment tricks
- Memory management
- Hardware based implementations
Chapter 4 Conclusion
4.1 Future Development
- Hardware evolution
o Display resolutions, brightness, color gamut
o New display types (external, projected, flexible, stereo, head-mounted)
o Graphics HW becomes programmable, but fillrate remains low
o Software implementations continue to live in the low end
- Java evolution
o Ahead-of-time compilation
o CPU support for bounds checking, exceptions, etc.
- API evolution
o OpenGL ES 2.0
o JSR-239[?]
o M3G 2.0Appendix
A. Required math
Glossary
Index