Product Cover Image

OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.3, CourseSmart eTextbook, 8th Edition

By Dave Shreiner, Graham Sellers, John M. Kessenich, Bill M. Licea-Kane

Published by Addison-Wesley Professional

Published Date: May 28, 2013

More Product Info

Description

With the rapid growth of new platforms, OpenGL is enjoying a resurgence throughout the graphics industry. This "Red Book" is the essential, authoritative reference to the current OpenGL 4.1 and 4.0 standards for graphics programmers at all levels of experience, working in any OpenGL environment, using any OpenGL-compatible platform. This edition has been thoroughly rewritten to reflect OpenGL 4.1 and 4.0 core features. For the first time, it includes extensive coverage of shaders and the shading pipeline (tessellation shaders). Shaders are the most dynamic, fastest changing part of the OpenGL specification, and this coverage - which includes extensive material drawn from OpenGL Shading Language (the "Orange Book", 0321637631) - has been specifically requested by many graphics programmers. OpenGL Programming Guide, Eighth Edition is written by OpenGL Series editor Dave Shreiner and a team of experts from Khronos, the organization driving the OpenGL standard. These expert authors offer example-rich, up-to-date introductions to a wide range of essential OpenGL 4.x topics, including drawing, color, texture, viewing, transformations, clipping, framebuffers, light and shadow, curves, surfaces, geometry, and more.

Table of Contents

Figures xxiii

Tables xxix

Examples xxxiii

About This Guide xli

 

Chapter 1: Introduction to OpenGL 1

What Is OpenGL? 2

Your First Look at an OpenGL Program 3

OpenGL Syntax 8

OpenGL’s Rendering Pipeline 10

Our First Program: A Detailed Discussion 14

 

Chapter 2: Shader Fundamentals 33

Shaders and OpenGL 34

OpenGL’s Programmable Pipeline 35

An Overview of the OpenGL Shading Language 37

Interface Blocks 60

Compiling Shaders 70

Shader Subroutines 76

Separate Shader Objects 81

 

Chapter 3: Drawing with OpenGL 85

OpenGL Graphics Primitives 86

Data in OpenGL Buffers 92

Vertex Specification 108

OpenGL Drawing Commands 115

Instanced Rendering 128

 

Chapter 4: Color, Pixels, and Framebuffers 141

Basic Color Theory 142

Buffers and Their Uses 144

Color and OpenGL 148

Multisampling 153

Testing and Operating on Fragments 156

Per-Primitive Antialiasing 178

Framebuffer Objects 180

Writing to Multiple Renderbuffers Simultaneously 193

Reading and Copying Pixel Data 200

Copying Pixel Rectangles 203

 

Chapter 5: Viewing Transformations, Clipping, and Feedback 205

Viewing 206

User Transformations 212

OpenGL Transformations 236

Transform Feedback 239

 

Chapter 6: Textures 259

Texture Mapping 261

Basic Texture Types 262

Creating and Initializing Textures 263

Proxy Textures 276

Specifying Texture Data 277

Sampler Objects 292

Using Textures 295

Complex Texture Types 306

Texture Views 321

Compressed Textures 326

Filtering 329

Advanced Texture Lookup Functions 340

Point Sprites 346

Rendering to Texture Maps 351

Chapter Summary 356

 

Chapter 7: Light and Shadow 359

Lighting Introduction 360

Classic Lighting Model 361

Advanced Lighting Models 384

Shadow Mapping 400

 

Chapter 8: Procedural Texturing 411

Procedural Texturing 412

Bump Mapping 433

Antialiasing Procedural Textures 442

Noise 460

Further Information 483

 

Chapter 9: Tessellation Shaders 485

Tessellation Shaders 486

Tessellation Patches 487

Tessellation Control Shaders 488

Tessellation Evaluation Shaders 496

A Tessellation Example: The Teapot 500

Additional Tessellation Techniques 504

 

Chapter 10: Geometry Shaders 509

Creating a Geometry Shader 510

Geometry Shader Inputs and Outputs 514

Producing Primitives 525

Advanced Transform Feedback 532

Geometry Shader Instancing 549

Multiple Viewports and Layered Rendering 550

Chapter Summary 559

 

Chapter 11: Memory 563

Using Textures for Generic Data Storage 564

Shader Storage Buffer Objects 576

Atomic Operations and Synchronization 578

Example 609

 

Chapter 12: Compute Shaders 623

Overview 624

Workgroups and Dispatch 625

Communication and Synchronization 632

Examples 636

Chapter Summary 647

 

Appendix A: Basics of GLUT: The OpenGL Utility Toolkit 651

Initializing and Creating a Window 652

Accessing Functions 654

Handling Window and Input Events 655

Managing a Background Process 658

Running the Program 658

 

Appendix B: OpenGL ES and WebGL 659

OpenGL ES 660

WebGL 662

 

Appendix C: Built-in GLSL Variables and Functions 673

Built-in Variables 674

Built-in Constants 684

Built-in Functions 686

 

Appendix D: State Variables 737

The Query Commands 738

OpenGL State Variables 745

 

Appendix E: Homogeneous Coordinates and Transformation Matrices 829

Homogeneous Coordinates 830

Transformation Matrices 831

 

Appendix F: OpenGL and Window Systems 835

Accessing New OpenGL Functions 836

GLX: OpenGL Extension for the X Window System 838

WGL: OpenGL Extensions for Microsoft Windows 845

OpenGL in MacOSX: The Core OpenGL (CGL) API and the NSOpenGL Mac OS X’s Core OpenGL Library . 851

The NSOpenGL Classes 854

 

Appendix G: Floating-Point Formats for Textures, Framebuffers, and Renderbuffers 857

Reduced-Precision Floating-Point Values 858

16-bit Floating-Point Values 858

10- and 11-bit Unsigned Floating-Point Values 860

 

Appendix H: Debugging and Profiling OpenGL 865

Creating a Debug Context 866

Debug Output 868

Debug Groups 875

Profiling 879

 

Appendix I: Buffer Object Layouts 885

Using Standard Layout Qualifiers 886

The std140 Layout Rules. 886

The std430 Layout Rules 887

 

Glossary 889

Index 919

Purchase Info ?

With CourseSmart eTextbooks and eResources, you save up to 60% off the price of new print textbooks, and can switch between studying online or offline to suit your needs.

Once you have purchased your eTextbooks and added them to your CourseSmart bookshelf, you can access them anytime, anywhere.

Buy Access

OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.3, CourseSmart eTextbook, 8th Edition
Format: Safari Book

$29.99 | ISBN-13: 978-0-13-274847-6