Description

Book Synopsis
Develop graphically sophisticated apps and games today! The smart phone app market is progressively growing, and there is new market gap to fill that requires more graphically sophisticated applications and games. Game and Graphics Programming for iOS and Android with OpenGL ES 2.

Table of Contents

INTRODUCTION xvii

CHAPTER 1: GETTING STARTED 1

Software Requirements 2

For iOS Developers 2

For Android Developers 2

Downloading the Book’s SDK 4

Importing Projects 5

For iOS Developers 5

For Android Developers 5

The Template 7

Summary 8

CHAPTER 2: SETTING UP YOUR GRAPHIC PROJECTIONS 9

The Three Basic Types of Projections 10

Orthographic 2D Projection 11

Program and Project Initialization 12

Vertex and Fragment Shader 14

Linking a Shader Program 17

The Drawing Code 19

Orthographic Projection 23

Getting Orthographic 23

Perspective Projection 26

Summary 27

CHAPTER 3: DEALING WITH COMPLEX GEOMETRY 29

The Wavefront File Format 29

Cube.obj 30

Cube.mtl 31

Preparing the OBJ Viewer Code 31

Loading an OBJ 32

Building the Shaders 35

The Vertex Shader 35

The Fragment Shader 36

Vertex Buffer Object 36

Storing the Vertex Data 37

Building the Vertex Data Array VBO 38

Building the Element Array VBO 39

Building the VAO 40

Rendering Momo 42

Handling Touche 44

Per-Vertex Lighting 46

Vertex Shader Light Calculation 46

Modifying the Fragment Shader 47

More Uniforms 48

Making Momo Furrier 50

Loading the Texture 50

Adjusting the Vertex Data 51

Adding UV Support to the Vertex Shader 52

Adding Texture Support to Your Fragment Shader 53

Binding the Texture 53

Summary 54

CHAPTER 4: BUILDING A SCENE 57

Handling Multiple Objects 58

The Code Structure 58

Loading and Drawing the Scene 59

The Shaders Code 63

The Different Object Types 64

The Drawing Sequence 64

Fixing the Scene 65

Uber Shader 65

Using Your Uber Shader 66

Render Loop Objects Categorization 69

Double-Sided 71

Per-PixelLighting 73

Making the Vertex Shader Even Fatter 73

Getting the Fragment Shader More Uber 74

Wrapping Up the Implementation 76

Summary 79

CHAPTER 5: OPTIMIZATION 81

The Base App 82

Triangles to Triangle Strips 82

Building Triangle Strips 83

Texture Optimization 84

Adding 16-Bit Texture Conversion 85

PVR Texture Compression 86

Faking Details 87

Bump Mapping Implementation 87

Precision Qualifiers Optimization 88

The Normal Map Lighting Calculation 90

Adding Specularity 91

Geometry and Shaders LOD 92

Texture Atlas 93

Managing States in Software 94

Automatic Shader Optimization 94

Summary 95

CHAPTER 6: REAL-TIME PHYSICS 97

Types of Physical Objects 98

Physics Shapes 98

Using Bullet 100

Hello Physics 100

Collision Callbacks, Triggers, and Contacts 105

Contact-Added Callback 105

Near Callback 107

Contact Points 108

2D Physics 110

More Shapes! 110

Building the Physical Objects 113

Camera Tracking 114

User Interactions 116

The Game Logic 117

3D Physics 120

The Bullet File Format 120

3D Pinball Game 122

Summary 127

CHAPTER 7: CAMERA 129

Touch and Go! 130

The Camera Frustum 132

How to Build the Frustum 133

Frustum Clipping Implementation 134

More Clipping Functions 135

Camera Fly Mode 136

First-Person Camera with Collision Detection 140

3D Camera Tracking 143

Third-Person Camera with Collision 145

Summary 149

CHAPTER 8: PATHFINDING 151

Recast and Detour 151

Navigation 152

Creating the Navigation Mesh 153

3D Physics Picking 155

Player’s Auto Drive 159

Visualizing the Way Points 161

Catch Me If You Can! 163

Know Your Enemy 165

Game State Logic 167

Summary 170

CHAPTER 9: AUDIO AND OTHER COOL GAME PROGRAMMING STUFF 171

OpenAL 172

OGG Vorbis 173

Hello World OpenAL Style 174

Initializing OpenAL 174

Static In-Memory Sound Playback 175

Positional Sound Source 176

Piano Game 178

Loading a Static and Streamed Sound 178

Color Picking 182

Piano Game Logic 185

Final Adjustments 188

Rolling Ball Game 190

GFX Shaders 190

Linking the Positional Sound Sources 191

Accelerometer-Driven Camera 195

Cheap FX 198

Game Logic and Tweaks 200

Summary 205

CHAPTER 10: ADVANCED LIGHTING 207

Types of Lamps 208

Let There Be Light 208

Directional Lamp Shader 211

Struct as Uniforms 214

Point Light 217

Point Light Shader Code 218

Light Attenuation 221

Point Light with Attenuation Code 222

The Attenuation Uniforms 223

Spherical Point Light 224

Tweaking the Point Light Code 225

Spot Light 227

Spot Light Shader Code 229

Multiple Lights 231

Making the Shader Program Dynamic 233

Summary 234

CHAPTER 11: ADVANCED FX 237

Render to Texture 238

Post-Processing Effects 238

First Rendering Pass 241

Second Pass 242

Fullscreen Pass and Blur Shader 243

Projected Texture 246

Projector Shader 249

Projected Real-Time Shadows 250

Casting Shadows Using the Depth Texture 253

A Few More Words about the Frame Buffer Object 254

Particles 255

Summary 257

CHAPTER 12: SKELETAL ANIMATION 259

Traditional vs. Modern Animation Systems 260

The MD5 File Format 261

Loading an MD5 Mesh 261

Animating the Mesh 264

LERP 266

SLERP 267

Blending Animation 267

Additive Blending 269

Summary 271

INDEX 273

Game and Graphics Programming for iOS and Android

    Product form

    £23.99

    Includes FREE delivery

    RRP £29.99 – you save £6.00 (20%)

    Order before 4pm today for delivery by Fri 3 Jul 2026.

    A Paperback / softback by Romain Marucchi-Foino

      Trusted by thousands of customers. See 2,385+ Customer Reviews

      View other formats and editions of Game and Graphics Programming for iOS and Android by Romain Marucchi-Foino

      Publisher: John Wiley & Sons Inc
      Publication Date: 20/02/2012
      ISBN13: 9781119975915, 978-1119975915
      ISBN10: 1119975913

      Description

      Book Synopsis
      Develop graphically sophisticated apps and games today! The smart phone app market is progressively growing, and there is new market gap to fill that requires more graphically sophisticated applications and games. Game and Graphics Programming for iOS and Android with OpenGL ES 2.

      Table of Contents

      INTRODUCTION xvii

      CHAPTER 1: GETTING STARTED 1

      Software Requirements 2

      For iOS Developers 2

      For Android Developers 2

      Downloading the Book’s SDK 4

      Importing Projects 5

      For iOS Developers 5

      For Android Developers 5

      The Template 7

      Summary 8

      CHAPTER 2: SETTING UP YOUR GRAPHIC PROJECTIONS 9

      The Three Basic Types of Projections 10

      Orthographic 2D Projection 11

      Program and Project Initialization 12

      Vertex and Fragment Shader 14

      Linking a Shader Program 17

      The Drawing Code 19

      Orthographic Projection 23

      Getting Orthographic 23

      Perspective Projection 26

      Summary 27

      CHAPTER 3: DEALING WITH COMPLEX GEOMETRY 29

      The Wavefront File Format 29

      Cube.obj 30

      Cube.mtl 31

      Preparing the OBJ Viewer Code 31

      Loading an OBJ 32

      Building the Shaders 35

      The Vertex Shader 35

      The Fragment Shader 36

      Vertex Buffer Object 36

      Storing the Vertex Data 37

      Building the Vertex Data Array VBO 38

      Building the Element Array VBO 39

      Building the VAO 40

      Rendering Momo 42

      Handling Touche 44

      Per-Vertex Lighting 46

      Vertex Shader Light Calculation 46

      Modifying the Fragment Shader 47

      More Uniforms 48

      Making Momo Furrier 50

      Loading the Texture 50

      Adjusting the Vertex Data 51

      Adding UV Support to the Vertex Shader 52

      Adding Texture Support to Your Fragment Shader 53

      Binding the Texture 53

      Summary 54

      CHAPTER 4: BUILDING A SCENE 57

      Handling Multiple Objects 58

      The Code Structure 58

      Loading and Drawing the Scene 59

      The Shaders Code 63

      The Different Object Types 64

      The Drawing Sequence 64

      Fixing the Scene 65

      Uber Shader 65

      Using Your Uber Shader 66

      Render Loop Objects Categorization 69

      Double-Sided 71

      Per-PixelLighting 73

      Making the Vertex Shader Even Fatter 73

      Getting the Fragment Shader More Uber 74

      Wrapping Up the Implementation 76

      Summary 79

      CHAPTER 5: OPTIMIZATION 81

      The Base App 82

      Triangles to Triangle Strips 82

      Building Triangle Strips 83

      Texture Optimization 84

      Adding 16-Bit Texture Conversion 85

      PVR Texture Compression 86

      Faking Details 87

      Bump Mapping Implementation 87

      Precision Qualifiers Optimization 88

      The Normal Map Lighting Calculation 90

      Adding Specularity 91

      Geometry and Shaders LOD 92

      Texture Atlas 93

      Managing States in Software 94

      Automatic Shader Optimization 94

      Summary 95

      CHAPTER 6: REAL-TIME PHYSICS 97

      Types of Physical Objects 98

      Physics Shapes 98

      Using Bullet 100

      Hello Physics 100

      Collision Callbacks, Triggers, and Contacts 105

      Contact-Added Callback 105

      Near Callback 107

      Contact Points 108

      2D Physics 110

      More Shapes! 110

      Building the Physical Objects 113

      Camera Tracking 114

      User Interactions 116

      The Game Logic 117

      3D Physics 120

      The Bullet File Format 120

      3D Pinball Game 122

      Summary 127

      CHAPTER 7: CAMERA 129

      Touch and Go! 130

      The Camera Frustum 132

      How to Build the Frustum 133

      Frustum Clipping Implementation 134

      More Clipping Functions 135

      Camera Fly Mode 136

      First-Person Camera with Collision Detection 140

      3D Camera Tracking 143

      Third-Person Camera with Collision 145

      Summary 149

      CHAPTER 8: PATHFINDING 151

      Recast and Detour 151

      Navigation 152

      Creating the Navigation Mesh 153

      3D Physics Picking 155

      Player’s Auto Drive 159

      Visualizing the Way Points 161

      Catch Me If You Can! 163

      Know Your Enemy 165

      Game State Logic 167

      Summary 170

      CHAPTER 9: AUDIO AND OTHER COOL GAME PROGRAMMING STUFF 171

      OpenAL 172

      OGG Vorbis 173

      Hello World OpenAL Style 174

      Initializing OpenAL 174

      Static In-Memory Sound Playback 175

      Positional Sound Source 176

      Piano Game 178

      Loading a Static and Streamed Sound 178

      Color Picking 182

      Piano Game Logic 185

      Final Adjustments 188

      Rolling Ball Game 190

      GFX Shaders 190

      Linking the Positional Sound Sources 191

      Accelerometer-Driven Camera 195

      Cheap FX 198

      Game Logic and Tweaks 200

      Summary 205

      CHAPTER 10: ADVANCED LIGHTING 207

      Types of Lamps 208

      Let There Be Light 208

      Directional Lamp Shader 211

      Struct as Uniforms 214

      Point Light 217

      Point Light Shader Code 218

      Light Attenuation 221

      Point Light with Attenuation Code 222

      The Attenuation Uniforms 223

      Spherical Point Light 224

      Tweaking the Point Light Code 225

      Spot Light 227

      Spot Light Shader Code 229

      Multiple Lights 231

      Making the Shader Program Dynamic 233

      Summary 234

      CHAPTER 11: ADVANCED FX 237

      Render to Texture 238

      Post-Processing Effects 238

      First Rendering Pass 241

      Second Pass 242

      Fullscreen Pass and Blur Shader 243

      Projected Texture 246

      Projector Shader 249

      Projected Real-Time Shadows 250

      Casting Shadows Using the Depth Texture 253

      A Few More Words about the Frame Buffer Object 254

      Particles 255

      Summary 257

      CHAPTER 12: SKELETAL ANIMATION 259

      Traditional vs. Modern Animation Systems 260

      The MD5 File Format 261

      Loading an MD5 Mesh 261

      Animating the Mesh 264

      LERP 266

      SLERP 267

      Blending Animation 267

      Additive Blending 269

      Summary 271

      INDEX 273

      Recently viewed products

      © 2026 Book Curl

        • American Express
        • Apple Pay
        • Diners Club
        • Discover
        • Google Pay
        • Maestro
        • Mastercard
        • PayPal
        • Shop Pay
        • Union Pay
        • Visa

        Login

        Forgot your password?

        Don't have an account yet?
        Create account