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
  • 立即出貨(限量)

買這商品的人也買了...

商品描述

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. Power consumption, size, price
    2. Form factors, UI constraints
    3. Display resolution, size
    4. CPU, memory, bus bandwidth
    5. Graphics hardware, FPU
    6. Many operating systems
    7. Most phones have no OS
    1.2 History of Mobile 3D
    1. J-Phone, Nokia 3410, etc.
    2. Current market status
    1.3 Two APIs for two environments
    1. The low-level rendering pipeline in brief
    2. OpenGL ES
    3. Java constraints in brief (details in Section III)
    4. M3G
    1.4 Design principles
    1. Expand on CG&A paper
    2. Things common to GL ES and M3G
    3. API specific issues in Sections II and III

Chapter 2 OpenGL ES

    2.1 Design principles
    2.2 OpenGL ES API overview
    1. Overview of the OpenGL graphics pipeline
    2. What's in/out
    3. What was added
    4. What's new in 1.1?
    5. What's new in 2.0? (briefly, we won't cover 2.0 programming here)
    6. Optional extensions
    7. Vendor specific extensions
    2.3 Windowing / Utility API overview
    1. EGL API overview
    2. EGLUT API overview
    3. Porting from desktop GL
    4. Hello OpenGL ES example
    2.4 OpenGL ES API walk-through
    1. Controlling state
        o Description
        o Design principles
        o Examples on using
        o Implementation insights
    2. Matrix operations, controlling the camera, Viewport
    3. Vertex Input & Batching, geometry
    4. Lighting
    5. Texture mapping: basics, multi-texturing, bump maps
    6. Tests: depth, alpha, stencil, scissor
    7. Fog, Blending
    8. Point Sprites
    9. Skinning
    2.5 Implementation insights
    1. Pixel pipeline implementation
    2. Accuracy
    3. OS interaction
    4. Buffer swapping
    5. What's costly, what's not
    6. Typical fast paths
    2.6 How to write efficient code
    1. Software implementations
    2. Hardware implementations
    3. Batching geometry (VBOs, their use etc.)
    4. Handling state
    5. Rendering order
    6. Tips, tricks, caveats
    7. Mixing 2D and 3D
    2.7 How to write compatible code
    1. Variance in implementations
    2. Memory management issues (Symbian as an example)
    3. Extensions
    4. Using different API versions (single app, static vs. dynamic linkage)
    5. CPU versions
    2.8 Case studies

Chapter 3 M3G

    3.1 Special constraints in Java
    1. Performance problems in-depth
    2. GC, JIT, bounds checking, type checking
    3. Bad bytecode instruction set, no CPU access
    4. Slow Java-native traffic, native call overhead
    5. Exception handling, problems with callbacks
    6. If no OS underneath: no processes, no dynamic memory allocation
    7. Expand on material from our SIGGRAPH course
    3.2 Design principles
    1. Expand on material from our SIGGRAPH course
    3.3 API overview
    1. Graphics3D, World, Loader
    2. Mesh, Sprite3D, Appearance
    3. SkinnedMesh, MorphingMesh
    4. Keyframe animation
    5. Alignment, picking
    6. Expand on SIGGRAPH material
    7. What's new in 1.1?
    3.4 M3G API walk-through
    1. Feature A
        o Description
        o Design principles
        o Examples on using
        o Implementation insights
    2. Feature B
    3. Features including:
    4. Scene graph management
    5. Culling, state sorting, etc.
    6. Skinning, morphing
    7. Transformation hierarchies
    8. Backgrounds and Sprites vs. Textures
    3.5 How to write efficient code
    1. Tips, tricks and caveats
    2. What's costly, what's not
    3. Concentrate on things specific to M3G
    4. Particle systems
    5. Terrain rendering
    6. Dynamic meshes in general
    7. Visibility optimization (BSP, PVS, Octrees)
    8. Mixing 2D and 3D
    9. Pivot transformations
    10. Alignment tricks
    11. Memory management
    12. Hardware based implementations
    3.6 Case studies

Chapter 4 Conclusion

    4.1 Future Development
    1. 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
    1. Java evolution
        o Ahead-of-time compilation
        o CPU support for bounds checking, exceptions, etc.
    1. API evolution
        o OpenGL ES 2.0
        o JSR-239[?]
        o M3G 2.0

    Appendix
      A. Required math

Glossary
Index

商品描述(中文翻譯)

描述

圖形和遊戲開發人員必須學習為移動設備進行編程。這本書將教你如何做到這一點。這本書由一些關鍵技術專家撰寫,提供了全面但實用且易於理解的介紹,適合任何軟件工程師希望通過手機為消費者提供豐富的3D互動體驗。就像它所涵蓋的OpenGL ES和M3G標準一樣,這本書注定成為未來多年的持久標準。- Lincoln Wallen,CTO,Electronic Arts,Mobile

這本書是一個扶梯,將這個領域帶到新的水平。這對於該主題對於具有一些計算機科學背景的人來說尤其如此。這本書的基礎很清晰,作者對這個主題非常瞭解。- Tomas Akenine-Möller,暢銷作家,Lund大學計算機科學教授

這本書是M3G的一個很好的入門。作者都是經驗豐富的M3G用戶和開發人員,他們在傳達這種經驗以及在實踐中經過驗證的大量實用建議方面做得很好。- Sean Ellis,顧問圖形工程師,ARM Ltd

移動計算的爆炸性普及是不可否認的。從手機到便攜式遊戲系統,對多功能移動設備的全球需求推動了令人驚嘆的硬件和軟件發展。 3D圖形正在成為這些無處不在的設備的一個重要組成部分,因此,移動3D圖形可以說是計算機圖形學領域中發展最迅速的領域。

移動3D圖形是關於為移動設備編寫實時3D圖形應用程序的書籍。本書中解釋和演示的編程接口使手機、GPS系統、便攜式遊戲機和媒體播放器上實現動態3D媒體成為可能。

本書首先全面介紹了背景基礎知識,然後提供了詳細的實踐示例,包括OpenGL ES和M3G這兩個主要移動API的大量工作代碼。

C/C++和Java開發人員、圖形藝術家、學生和愛好者最好隨身攜帶一部可編程的手機,以嘗試本書中描述的技術。

作者是OpenGL ES和M3G標準的行業專家,他們在這些頁面中融合了多年的累積知識,提供了從聲音移動設計原則和限制到高效渲染、2D和3D混合、照明、紋理映射、蒙皮和變形等方面的見解。

在此過程中,讀者將從數百個包含的技巧、訣竅和注意事項中受益。

目錄

第1章 簡介
1.1 手機作為圖形平台
1.2 移動3D的歷史
1.3 兩個環境的兩個API