Game and Graphics Programming for iOS and Android with OpenGL ES 2.0 - Romain Marucchi-Foino

Game and Graphics Programming for iOS and Android with OpenGL ES 2.0

Buch | Softcover
320 Seiten
2012
Wrox Press (Verlag)
978-1-119-97591-5 (ISBN)
38,63 inkl. MwSt
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.
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.0 quickly gets you up to speed on understanding how powerful OpenGL ES 2.0 technology is in creating apps and games for amusement and effectiveness. Leading you through the development of a real-world mobile app with live code, this text lets you work with all the best features and tools that Open GL ES 2.0 has to offer.



Provides a project template for iOS and Android platforms
Delves into OpenGL features including drawing canvas, geometry, lighting effects, character animation, and more
Offers explanation of full-function 2D and 3D graphics on embedded systems
Addresses the principal technology for hardware-accelerated graphical rendering

Game and Graphics Programming for iOS and Android with OpenGL ES 2.0 offers important, need-to-know information if you're interested in striking a perfect balance between aesthetics and functionality in apps.

Romain Marucchi-Foino is the original author and founder of the popular mobile game engine SIO2. Formerly a desktop game engine developer, Romain is currently the lead 3D engine programmer for sio2interactive.com, the official developer of the SIO2 Engine, which powers thousands of games and 3D applications throughout the App Store and the Android market. Wrox guides are crafted to make learning programming languages and technologies easier than you think. Written by programmers for programmers, they provide a structured, tutorial format that guides you through all the techniques involved.

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

 

Sprache englisch
Maße 188 x 234 mm
Gewicht 526 g
Themenwelt Mathematik / Informatik Informatik Programmiersprachen / -werkzeuge
Informatik Software Entwicklung Mobile- / App-Entwicklung
Informatik Weitere Themen Smartphones / Tablets
ISBN-10 1-119-97591-3 / 1119975913
ISBN-13 978-1-119-97591-5 / 9781119975915
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich
Das umfassende Handbuch

von Jürgen Sieben

Buch | Hardcover (2023)
Rheinwerk (Verlag)
89,90
Das große Handbuch zum JavaScript-Framework

von Christoph Höller

Buch | Hardcover (2022)
Rheinwerk (Verlag)
39,90