Books for the Mobile Developer Community
Books
Page 1 of 1 pages
Programming the Cell Processor: For Games, Graphics, and Computation
IBM’s Cell processor delivers truly stunning computational power: enough to satisfy even the most demanding gamers and graphics developers. That’s why Sony chose the Cell to drive its breakthrough PlayStation 3 and why Cell processors are at the heart of today’s most powerful supercomputers. But many developers have struggled to create high-performance Cell applications: the practical, coherent information they need simply hasn’t existed.
Programming the Cell Processor solves that problem once and for all. Whether you’re a game developer, graphics programmer, or engineer, Matthew Scarpino shows you how to create applications that leverage all the Cell’s extraordinary power. Scarpino covers everything from the Cell’s advanced architecture to its powerful tools and libraries, presenting realistic code examples that help you gain an increasingly deep and intuitive understanding of Cell development.
OpenGL(R) Shading Language (2nd Edition)
OpenGL® Shading Language, Second Edition, extensively updated for OpenGL 2.0, is the experienced application programmer’s guide to writing shaders. Part reference, part tutorial, this book thoroughly explains the shift from fixed-functionality graphics hardware to the new era of programmable graphics hardware and the additions to the OpenGL API that support this programmability. With OpenGL and shaders written in the OpenGL Shading Language, applications can perform better, achieving stunning graphics effects by using the capabilities of both the visual processing unit and the central processing unit.
In this book, you will find a detailed introduction to the OpenGL Shading Language (GLSL) and the new OpenGL function calls that support it. The text begins by describing the syntax and semantics of this high-level programming language. Once this foundation has been established, the book explores the creation and manipulation of shaders using new OpenGL function calls.
OpenGL® Shading Language, Second Edition, includes updated descriptions for the language and all the GLSL entry points added to OpenGL 2.0; new chapters that discuss lighting, shadows, and surface characteristics; and an under-the-hood look at the implementation of RealWorldz, the most ambitious GLSL application to date. The second edition also features 18 extensive new examples of shaders and their underlying algorithms, including
- Image-based lighting
- Lighting with spherical harmonics
- Ambient occlusion
- Shadow mapping
- Volume shadows using deferred lighting
- Ward’s BRDF model
The color plate section illustrates the power and sophistication of the OpenGL Shading Language. The API Function Reference at the end of the book is an excellent guide to the API entry points that support the OpenGL Shading Language. Also included is a convenient Quick Reference Card to GLSL.
OpenGL(R) SuperBible: Comprehensive Tutorial and Reference (4th Edition)
OpenGL ® SuperBible, Fourth Edition, begins by illuminating the core techniques of “classic” OpenGL graphics programming, from drawing in space to geometric transformations, from lighting to texture mapping. The authors cover newer OpenGL capabilities, including OpenGL 2.1’s powerful programmable pipeline, vertex and fragment shaders, and advanced buffers. They also present thorough, up-to-date introductions to OpenGL implementations on multiple platforms, including Windows, Mac OS X, GNU/Linux, UNIX, and embedded systems.
Coverage includes
An entirely new chapter on OpenGL ES programming for handhelds
- Completely rewritten chapters on OpenGL for Mac OS X and GNU/Linux
- Up-to-the-minute coverage of OpenGL on Windows Vista
- New material on floating-point color buffers and off-screen rendering
- In-depth introductions to 3D modeling and object composition
- Expert techniques for utilizing OpenGL’s programmable shading language
- Thorough coverage of curves, surfaces, interactive graphics, textures, shadows, and much more
- A fully updated API reference, and an all-new section of full-color images
You’ll rely on this book constantly–whether you’re learning OpenGL for the first time, deepening your graphics programming expertise, upgrading from older versions of OpenGL, or porting applications from other environments.
Now part of the OpenGL Technical Library–The official knowledge resource for OpenGL developers
The OpenGL Technical Library provides tutorial and reference books for OpenGL. The Library enables programmers to gain a practical understanding of OpenGL and shows them how to unlock its full potential. Originally developed by SGI, the Library continues to evolve under the auspices of the OpenGL Architecture Review Board (ARB) Steering Group (now part of the Khronos Group), an industry consortium responsible for guiding the evolution of OpenGL and related technologies.
OpenGL® Programming on Mac OS® X: Architecture, Performance, and Integration
The Mac has fully embraced OpenGL throughout its visual systems. In fact, Apple's highly efficient, modern OpenGL implementation makes Mac OS X one of today's best platforms for OpenGL development. OpenGL® Programming on Mac OS® X is the first comprehensive resource for every graphics programmer who wants to create, port, or optimize OpenGL applications for this high-volume platform.
Leading OpenGL experts Robert Kuehne and J. D. Sullivan thoroughly explain the Mac's diverse OpenGL APIs, both old and new. They illuminate crucial OpenGL setup, configuration, and performance issues that are unique to the Mac platform. Next, they offer practical, start-to-finish guidance for integrating key Mac-native APIs with OpenGL, and leveraging the full power of the Mac platform in your graphics applications.
Coverage includes
- A thorough review of Mac hardware and software architectures and their performance implications
- In-depth, expert guidance for accessing OpenGL from each of the Mac's core APIs: CGL, AGL, and Cocoa
- Interoperating with other Mac APIs: incorporating video with QuickTime, performing image effects with Core Image, and processing CoreVideo data
- Analyzing Mac OpenGL application performance, resolving bottlenecks, and leveraging optimizations only available on the Mac
- Detecting, integrating, and using OpenGL extensions
- An accompanying Web site (www.macopenglbook.com) contains the book's example code, plus additional OpenGL-related resources.
OpenGL® Programming on Mac OS® X will be valuable to Mac programmers seeking to leverage OpenGL's power, OpenGL developers porting their applications to the Mac platform, and cross-platform graphics developers who want to take advantage of the Mac platform's uniquely intuitive style and efficiency.
OpenGL(r) ES 2.0 Programming Guide
In the OpenGL(r) ES 2.0 Programming Guide, three leading authorities on the Open GL ES 2.0 interface-including the specification’s editor-provide start-to-finish guidance for maximizing the interface’s value in a wide range of high-performance applications. The authors cover the entire API, including Khronos-ratified extensions. Using detailed C-based code examples, they demonstrate how to set up and program every aspect of the graphics pipeline. You’ll move from introductory techniques all the way to advanced per-pixel lighting, particle systems, and performance optimization.
Author Bios
Aaftab Munshi has been architecting GPUs for more than a decade. At ATI (now AMD), he was a Senior Architect in the Handheld Group. He is the spec editor for the OpenGL ES 1.1 and OpenGL ES 2.0 specifications. Affie currently works at Apple.
Dan Ginsburg has been working on video games and computer graphics for more than ten years. Dan is currently a Senior Member of Technical Staff at AMD. He has worked in a variety of roles at AMD, including the development of OpenGL drivers, the creation of desktop and handheld 3D demos, and currently leading the development of handheld GPU developer tools. Before joining AMD, Dan worked for n-Space, Inc., an Orlando-based game development company. He holds a B.S. in Computer Science from Worcester Polytechnic Institute and an M.B.A from Bentley College.
Dave Shreiner has been working with OpenGL for almost two decades, and more recently with OpenGL ES. During that time, he authored the first commercial training course on OpenGL while working at Silicon Graphics Computer Systems (SGI), and has worked as an author on the OpenGL Programming Guide. He's presented introductory and advanced courses on OpenGL programming worldwide at numerous conferences, including SIGGRAPH. Dave is now a Media Systems Architect at ARM, Inc. He holds a B.S. in Mathematics from the University of Delaware.
Table of Contents
- List of Figures
- List of Examples
- List of Tables
- Foreword
- Preface
- Acknowledgments
- About the Authors
Chapter 1. Introduction to OpenGL ES 2.0 1
- What Is OpenGL ES?
- OpenGL ES 2.0
- Vertex Shader
- Primitive Assembly
- Rasterization
- Fragment Shader
- Per-Fragment Operations
- OpenGL ES 2.0 and OpenGL ES 1.x Backward Compatibility
- EGL
- Programming with OpenGL ES 2.0
- Further Reading
Chapter 2. Hello Triangle: An OpenGL ES 2.0 Example 19
- Code Framework
- Where to Download the Examples
- Hello Triangle Example
- Building and Running the Examples
- Using the OpenGL ES 2.0 Framework
- Creating a Simple Vertex and Fragment Shader
- Compiling and Loading the Shaders
- Creating a Program Object and Linking the Shaders
- Setting the Viewport and Clearing the Color Buffer
- Loading the Geometry and Drawing a Primitive
- Displaying the Back Buffer
Chapter 3. An Introduction to EGL 35
- Communicating with the Windowing System
- Checking for Errors
- Initializing EGL
- Determining the Available Surface Configurations
- Querying EGLConfig Attributes
- Letting EGL Choose the Config
- Creating an On-Screen Rendering Area: The EGL Window
- Creating an Off-Screen Rendering Area: EGL Pbuffers
- Creating a Rendering Context
- Making an EGLContext Current
- Putting All Our EGL Knowledge Together
- Synchronizing Rendering
Chapter 4. Shaders and Programs 57
- Shaders and Programs
- Uniforms and Attributes
- Shader Compiler and Shader Binaries
Chapter 5. OpenGL ES Shading Language 77
- OpenGL ES Shading Language Basics
- Variables and Variable Types
- Variable Constructors
- Vector and Matrix Components
- Constants
- Structures
- Arrays
- Operators
- Functions
- Built-In Functions
- Control Flow Statements
- Uniforms
- Attributes
- Varyings
- Preprocessor and Directives
- Uniform and Varying Packing
- Precision Qualifiers
- Invariance
Chapter 6. Vertex Attributes, Vertex Arrays, and Buffer Objects 101
- Specifying Vertex Attribute Data
- Declaring Vertex Attribute Variables in a Vertex Shader
- Vertex Buffer Objects
- Mapping Buffer Objects
Chapter 7. Primitive Assembly and Rasterization 127
- Primitives
- Drawing Primitives
- Primitive Assembly
- Rasterization
Chapter 8. Vertex Shaders 147
- Vertex Shader Overview
- Vertex Shader Examples
- Generating Texture Coordinates
- Vertex Skinning
- OpenGL ES 1.1 Vertex Pipeline as an ES 2.0 Vertex Shader
Chapter 9. Texturing 181
- Texturing Basics
- Compressed Textures
- Texture Subimage Specification
- Copying Texture Data from the Color Buffer
- Optional Extensions
Chapter 10. Fragment Shaders 215
- Fixed Function Fragment Shaders
- Fragment Shader Overview
- Implementing Fixed Function Techniques Using Shaders
Chapter 11. Fragment Operations 233
- Buffers
- Fragment Tests and Operations
- Blending
- Dithering
- Multisampled Antialiasing
- Reading and Writing Pixels to the Framebuffer
Chapter 12. Framebuffer Objects 253
- Why Framebuffer Objects
- Framebuffer and Renderbuffer Objects
- Creating Framebuffer and Renderbuffer Objects
- Using Renderbuffer Objects
- Using Framebuffer Objects
- Deleting Framebuffer and Renderbuffer Objects
- Examples
- Performance Tips and Tricks
Chapter 13. Advanced Programming with OpenGL ES 2.0 279
- Per-Fragment Lighting
- Environment Mapping
- Particle System with Point Sprites
- Image Postprocessing
- Projective Texturing
- Noise Using a 3D Texture
- Procedural Texturing
Chapter 14. State Queries 323
- OpenGL ES 2.0 Implementation String Queries
- Querying Implementation-Dependent Limits
- Querying OpenGL ES State
- Hints
- Entity Name Queries
- Nonprogrammable Operations Control and Queries
- Shader and Program State Queries
- Vertex Attribute Queries
- Texture State Queries
- Vertex Buffer Queries
- Renderbuffer and Framebuffer State Queries
Chapter 15. OpenGL ES and EGL on Handheld Platforms 339
- Handheld Platforms Overview
- C++ Portability
- OpenKODE
- Platform-Specific Shader Binaries
- Targeting Extensions
Appendix A. GL_HALF_FLOAT_OES 353
- 16-Bit Floating-Point Number
- Converting Float to Half-Float
Appendix B. Built-In Functions 357
- Angle and Trigonometry Functions
- Exponential Functions
- Common Functions
- Geometric Functions
- Matrix Functions
- Vector Relational Functions
- Texture Lookup Functions
- Derivative Functions
Appendix C. Shading Language Grammar 375
Appendix D. ES Framework API 385
- Framework Core Functions
- Transformation Functions
Index 395
Game Programming Tricks of the Trade
Game Programming Tricks of the Trade” is a compilation of techniques from today’s leading game programmers. Beginners will get started with invaluable tips, while intermediate game programmers can use these tricks to take their skills to the next level. There are even articles for advanced programmers who are looking for new and amazing effects to incorporate in their games. This book covers many exciting topics including Artificial Intelligence and multiplayer game programming. Plus, the tricks taught are a combination of OpenGL and DirectX to provide something for everyone!
Mobile 3D Graphics: with OpenGL ES and M3G
Shows readers how to create 3D graphics on cell phones, portable game players and other mobile devices. 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.
Advanced Graphics Programming Using OpenGL
This book is about graphics techniques that dont require esoteric hardware or custom graphics libraries, and that are written in a comprehensible style and do useful things. It is relevant to both OpenGL and OpenGL ES. Sophisticated and novel programming techniques are implemented in C using the OpenGL library, including: coverage of color and lighting; texture mapping; blending and compositing; antialiasing; image processing; special effects; natural phenomena; artistic and non-photorealistic techniques, and many others.
OpenGL ES Game Development
An in-depth look into the OpenGL ES standard and what the new embedded systems graphics library will provide for game developers. It covers OpenGL ES, EGL, game development, and platforms that are currently available. It also covers the problems involved in mobile game development with OpenGL ES and includes an overview of fixed point math and other areas of cell phone limitations that must be considered before creating mobile games.
COLLADA: Sailing the Gulf of 3D Digital Content Creation book
This book explains in detail how to use the COLLADA technology in a project utilizing 3D assets, and ultimately how to create an effective content creation pipeline for the most complex development.
It was created as a guide to the COLLADA 1.4 specification with the goal of providing readers with all the information that will help them understand the concepts, learn how the technology is already implemented by various tools, and provide guidance for using COLLADA in their applications.
The book will be useful for content developers interested in exchanging data between several tools, application developers planning to take advantage of COLLADA in their tool chain and tool providers wanting to add COLLADA compatibility.
Mobile 3D Graphics
Mobile 3D Graphics offers an in-depth look at OpenGL ES and teaches fundamental 3D mobile graphics programming with standard APIs. It covers the basic and advanced application program interfaces behind the major wireless and mobile devices supporting 3D graphics applications. It includes: a comprehensive explanation of 3D mobile graphics programming; an extensive range of OpenGL ES code samples; and examples of combining 3D and 2D mobile graphics methods.
Page 1 of 1 pages















