OpenGL ES 3.0 Programming Guide

0
(0)

OpenGL ES 3.0 Programming Guide

作者:DanGinsburg/BudirijantoPurnomo/DaveShreiner/AaftabMunshi

出版社:Addison-WesleyProfessional

出版年:2014-3-10

页数:560

定价:USD49.99

装帧:Paperback

ISBN:9780321933881

内容简介
······

Review

“As a graphics technologist and intense OpenGL ES developer, I can honestly say that if you buy only one book on OpenGL ES 3.0 programming, then this should be the book. Dan and Budirijanto have written a book clearly by programmers for programmers. It is simply required reading for anyone interested in OpenGL ES 3.0. It is informative, well organized, and comprehensive, but best of all practical. You will find yourself reaching for this book over and over again instead of the actual OpenGL ES specification during your programming sessions. I give it my highest recommendation.”

–Rick Tewell, Graphics Technology Architect, Freescale

“This book provides outstanding coverage of the latest version of OpenGL ES, with clear, comprehensive explanations and extensive examples. It belongs on the desk of anyone developing mobile applications.”

–Dave Astle, Graphics Tools Lead, Qualcomm Technologies, Inc., and Founder, GameDev.net

“The second edition of OpenGL® ES™ 3.0 Programming Guide provides a solid introduction to OpenGL ES 3.0 specifications, along with a wealth of practical information and examples to help any level of developer begin programming immediately. We’d recommend this guide as a primer on OpenGL ES 3.0 to any of the thousands of developers creating apps for the many mobile and embedded products using our PowerVR Rogue graphics.”

–Kristof Beets, Business Development, Imagination Technologies

“This is a solid OpenGL ES 3.0 reference book. It covers all aspects of the API and will help any developer get familiar with and understand the API, including specifically the new ES 3.0 functionality.”

–Jed Fisher, Managing Partner, 4D Pipeline

“This is a clear and thorough reference for OpenGL ES 3.0, and an excellent presentation of the concepts present in all modern OpenGL programming. This is the guide I’d want by my side when diving into embedded OpenGL.”

–Todd Furlong, President & Principal Engineer, Inv3rsion LLC

作者简介
······

Dan Ginsburg is founder of Upsample Software, LLC, a software consultancy specializing in 3D graphics and GPU computing. In previous roles he has worked on developing OpenGL drivers, desktop and handheld 3D demos, GPU developer tools, 3D medical visualization and games. He coauthored the OpenCL Programming Guide (Addison-Wesley, 2012).

Budi Purnomo is a senior software architect at Advanced Micro Devices, Inc. where he collaborates with many AMD architects to develop software infrastructure across multiple software stacks and to define future hardware architectures for debugging and profiling GPU applications.

Dave Shreiner is one of the World’s foremost authorities on OpenGL. He is the series editor for the Addison-Wesley OpenGL Series.

Aatab Munshi is the spec editor for the OpenGL ES 1.1 and 2.0 specifications.

目录
······

Table of Contents

About This eBook

Title Page

Copyright Page

Praise for OpenGL® ES™ 3.0 Programming Guide, Second Edition

Contents

List of Figures

List of Examples

List of Tables

Foreword

Preface

Intended Audience

Organization of This Book

Example Code and Shaders

Errata

Acknowledgments

About the Authors

Chapter 1. Introduction to OpenGL ES 3.0

OpenGL ES 3.0

What’s New in OpenGL ES 3.0

OpenGL ES 3.0 and Backward Compatibility

EGL

EGL Command Syntax

OpenGL ES Command Syntax

Error Handling

Basic State Management

Further Reading

Chapter 2. Hello Triangle: An OpenGL ES 3.0 Example

Code Framework

Where to Download the Examples

Hello Triangle Example

Using the OpenGL ES 3.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

Summary

Chapter 3. An Introduction to EGL

Communicating with the Windowing System

Checking for Errors

Initializing EGL

Determining the Available Surface Configurations

Querying EGLConfig Attributes

Letting EGL Choose the Configuration

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

Summary

Chapter 4. Shaders and Programs

Shaders and Programs

Uniforms and Attributes

Shader Compiler

Program Binaries

Summary

Chapter 5. OpenGL ES Shading Language

OpenGL ES Shading Language Basics

Shader Version Specification

Variables and Variable Types

Variable Constructors

Vector and Matrix Components

Constants

Structures

Arrays

Operators

Functions

Built-In Functions

Control Flow Statements

Uniforms

Uniform Blocks

Vertex and Fragment Shader Inputs/Outputs

Interpolation Qualifiers

Preprocessor and Directives

Uniform and Interpolator Packing

Precision Qualifiers

Invariance

Summary

Chapter 6. Vertex Attributes, Vertex Arrays, and Buffer Objects

Specifying Vertex Attribute Data

Declaring Vertex Attribute Variables in a Vertex Shader

Vertex Buffer Objects

Vertex Array Objects

Mapping Buffer Objects

Copying Buffer Objects

Summary

Chapter 7. Primitive Assembly and Rasterization

Primitives

Drawing Primitives

Primitive Assembly

Rasterization

Occlusion Queries

Summary

Chapter 8. Vertex Shaders

Vertex Shader Overview

Vertex Shader Examples

Generating Texture Coordinates

Vertex Skinning

Transform Feedback

Vertex Textures

OpenGL ES 1.1 Vertex Pipeline as an ES 3.0 Vertex Shader

Summary

Chapter 9. Texturing

Texturing Basics

Compressed Textures

Texture Subimage Specification

Copying Texture Data from the Color Buffer

Sampler Objects

Immutable Textures

Pixel Unpack Buffer Objects

Summary

Chapter 10. Fragment Shaders

Fixed-Function Fragment Shaders

Fragment Shader Overview

Implementing Fixed-Function Techniques Using Shaders

Summary

Chapter 11. Fragment Operations

Buffers

Fragment Tests and Operations

Blending

Dithering

Multisampled Anti-Aliasing

Reading and Writing Pixels to the Framebuffer

Multiple Render Targets

Summary

Chapter 12. Framebuffer Objects

Why Framebuffer Objects?

Framebuffer and Renderbuffer Objects

Creating Framebuffer and Renderbuffer Objects

Using Renderbuffer Objects

Using Framebuffer Objects

Framebuffer Blits

Framebuffer Invalidation

Deleting Framebuffer and Renderbuffer Objects

Examples

Performance Tips and Tricks

Summary

Chapter 13. Sync Objects and Fences

Flush and Finish

Why Use a Sync Object?

Creating and Deleting a Sync Object

Waiting for and Signaling a Sync Object

Example

Summary

Chapter 14. Advanced Programming with OpenGL ES 3.0

Per-Fragment Lighting

Environment Mapping

Particle System Using Transform Feedback

Image Postprocessing

Projective Texturing

Noise Using a 3D Texture

Procedural Texturing

Rendering Terrain with Vertex Texture Fetch

Shadows Using a Depth Texture

Summary

Chapter 15. State Queries

OpenGL ES 3.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

Sampler Queries

Asynchronous Object Queries

Sync Object Queries

Vertex Buffer Queries

Renderbuffer and Framebuffer State Queries

Summary

Chapter 16. OpenGL ES Platforms

Building for Microsoft Windows with Visual Studio

Building for Ubuntu Linux

Building for Android 4.3+ NDK (C++)

Building for Android 4.3+ SDK (Java)

Building for iOS 7

Summary

Appendix A. GL_HALF_FLOAT

16-Bit Floating-Point Number

Converting a Float to a Half-Float

Appendix B. Built-In Functions

Angle and Trigonometry Functions

Exponential Functions

Common Functions

Floating-Point Pack and Unpack Functions

Geometric Functions

Matrix Functions

Vector Relational Functions

Texture Lookup Functions

Fragment Processing Functions

Appendix C. ES Framework API

Framework Core Functions

Transformation Functions

评论 ······

再次收获

更多的是流程介绍,差点淹没在概念里面。从个人角度来说比较适合入门了解。

gl es入门经典

重api,重example code;轻概念,甚至是confusing。。。。不适合初学者,只适合当手册查

点击星号评分!

平均分 0 / 5. 投票数: 0

还没有投票!请为他投一票。

推荐阅读

评论 抢沙发

评论前必须登录!

 

登录

找回密码

注册