Game and Graphics Programming for iOS and Android with OpenGL ES 2.0
Wrox Press (Verlag)
978-1-119-97591-5 (ISBN)
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? |
aus dem Bereich