O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

OpenGL Insights

Book Description

Get Real-World Insight from Experienced Professionals in the OpenGL Community
With OpenGL, OpenGL ES, and WebGL, real-time rendering is becoming available everywhere, from AAA games to mobile phones to web pages. Assembling contributions from experienced developers, vendors, researchers, and educators, OpenGL Insights presents real-world techniques for intermediate and advanced OpenGL, OpenGL ES, and WebGL developers.

Go Beyond the Basics
The book thoroughly covers a range of topics, including OpenGL 4.2 and recent extensions. It explains how to optimize for mobile devices, explores the design of WebGL libraries, and discusses OpenGL in the classroom. The contributors also examine asynchronous buffer and texture transfers, performance state tracking, and programmable vertex pulling.

Sharpen Your Skills
Focusing on current and emerging techniques for the OpenGL family of APIs, this book demonstrates the breadth and depth of OpenGL. Readers will gain practical skills to solve problems related to performance, rendering, profiling, framework design, and more.

Table of Contents

  1. Front Cover
  2. Dedication
  3. Contents (1/3)
  4. Contents (2/3)
  5. Contents (3/3)
  6. Foreword
  7. Preface
  8. Tips (1/2)
  9. Tips (2/2)
  10. I. Discovering
    1. 1. Teaching Computer Graphics Starting with Shader-Based OpenGL (1/3)
    2. 1. Teaching Computer Graphics Starting with Shader-Based OpenGL (2/3)
    3. 1. Teaching Computer Graphics Starting with Shader-Based OpenGL (3/3)
    4. 2. Transitioning Students to Post-Deprecation OpenGL (1/2)
    5. 2. Transitioning Students to Post-Deprecation OpenGL (2/2)
    6. 3. WebGL for OpenGL Developers (1/4)
    7. 3. WebGL for OpenGL Developers (2/4)
    8. 3. WebGL for OpenGL Developers (3/4)
    9. 3. WebGL for OpenGL Developers (4/4)
    10. 4. Porting Mobile Apps to WebGL (1/3)
    11. 4. Porting Mobile Apps to WebGL (2/3)
    12. 4. Porting Mobile Apps to WebGL (3/3)
    13. 5. The GLSL Shader Interfaces (1/6)
    14. 5. The GLSL Shader Interfaces (2/6)
    15. 5. The GLSL Shader Interfaces (3/6)
    16. 5. The GLSL Shader Interfaces (4/6)
    17. 5. The GLSL Shader Interfaces (5/6)
    18. 5. The GLSL Shader Interfaces (6/6)
    19. 6. An Introduction to Tessellation Shaders (1/4)
    20. 6. An Introduction to Tessellation Shaders (2/4)
    21. 6. An Introduction to Tessellation Shaders (3/4)
    22. 6. An Introduction to Tessellation Shaders (4/4)
    23. 7. Procedural Textures in GLSL (1/4)
    24. 7. Procedural Textures in GLSL (2/4)
    25. 7. Procedural Textures in GLSL (3/4)
    26. 7. Procedural Textures in GLSL (4/4)
    27. 8. OpenGL SC Emulation Based on OpenGL and OpenGL ES (1/3)
    28. 8. OpenGL SC Emulation Based on OpenGL and OpenGL ES (2/3)
    29. 8. OpenGL SC Emulation Based on OpenGL and OpenGL ES (3/3)
    30. 9. Mixing Graphics and Compute with Multiple GPUs (1/2)
    31. 9. Mixing Graphics and Compute with Multiple GPUs (2/2)
  11. II. Rendering Techniques
    1. 10. GPU Tessellation: We Still Have a LOD of Terrain to Cover (1/4)
    2. 10. GPU Tessellation: We Still Have a LOD of Terrain to Cover (2/4)
    3. 10. GPU Tessellation: We Still Have a LOD of Terrain to Cover (3/4)
    4. 10. GPU Tessellation: We Still Have a LOD of Terrain to Cover (4/4)
    5. 11. Antialiased Volumetric Lines Using Shader-Based Extrusion (1/2)
    6. 11. Antialiased Volumetric Lines Using Shader-Based Extrusion (2/2)
    7. 12. 2D Shape Rendering by Distance Fields (1/2)
    8. 12. 2D Shape Rendering by Distance Fields (2/2)
    9. 13. Efficient Text Rendering in WebGL (1/3)
    10. 13. Efficient Text Rendering in WebGL (2/3)
    11. 13. Efficient Text Rendering in WebGL (3/3)
    12. 14. Layered Textures Rendering Pipeline (1/2)
    13. 14. Layered Textures Rendering Pipeline (2/2)
    14. 15. Depth of Field with Bokeh Rendering (1/3)
    15. 15. Depth of Field with Bokeh Rendering (2/3)
    16. 15. Depth of Field with Bokeh Rendering (3/3)
    17. 16. Shadow Proxies (1/2)
    18. 16. Shadow Proxies (2/2)
  12. III. Bending the Pipeline
    1. 17. Real-Time Physically Based Deformation Using Transform Feedback (1/4)
    2. 17. Real-Time Physically Based Deformation Using Transform Feedback (2/4)
    3. 17. Real-Time Physically Based Deformation Using Transform Feedback (3/4)
    4. 17. Real-Time Physically Based Deformation Using Transform Feedback (4/4)
    5. 18. Hierarchical Depth Culling and Bounding-BoxManagement on the GPU (1/3)
    6. 18. Hierarchical Depth Culling and Bounding-BoxManagement on the GPU (2/3)
    7. 18. Hierarchical Depth Culling and Bounding-BoxManagement on the GPU (3/3)
    8. 19. Massive Number of Shadow-Casting Lights with Layered Rendering (1/4)
    9. 19. Massive Number of Shadow-Casting Lights with Layered Rendering (2/4)
    10. 19. Massive Number of Shadow-Casting Lights with Layered Rendering (3/4)
    11. 19. Massive Number of Shadow-Casting Lights with Layered Rendering (4/4)
    12. 20. Efficient Layered Fragment Buffer Techniques (1/3)
    13. 20. Efficient Layered Fragment Buffer Techniques (2/3)
    14. 20. Efficient Layered Fragment Buffer Techniques (3/3)
    15. 21. Programmable Vertex Pulling (1/2)
    16. 21. Programmable Vertex Pulling (2/2)
    17. 22. Octree-Based Sparse Voxelization Using the GPU Hardware Rasterizer (1/4)
    18. 22. Octree-Based Sparse Voxelization Using the GPU Hardware Rasterizer (2/4)
    19. 22. Octree-Based Sparse Voxelization Using the GPU Hardware Rasterizer (3/4)
    20. 22. Octree-Based Sparse Voxelization Using the GPU Hardware Rasterizer (4/4)
  13. IV. Performance
    1. 23. Performance Tuning for Tile-Based Architectures (1/3)
    2. 23. Performance Tuning for Tile-Based Architectures (2/3)
    3. 23. Performance Tuning for Tile-Based Architectures (3/3)
    4. 24. Exploring Mobile vs. Desktop OpenGL Performance (1/4)
    5. 24. Exploring Mobile vs. Desktop OpenGL Performance (2/4)
    6. 24. Exploring Mobile vs. Desktop OpenGL Performance (3/4)
    7. 24. Exploring Mobile vs. Desktop OpenGL Performance (4/4)
    8. 25. Improving Performance by Reducing Calls to the Driver (1/3)
    9. 25. Improving Performance by Reducing Calls to the Driver (2/3)
    10. 25. Improving Performance by Reducing Calls to the Driver (3/3)
    11. 26. Indexing Multiple Vertex Arrays (1/2)
    12. 26. Indexing Multiple Vertex Arrays (2/2)
    13. 27. Multi-GPU Rendering on NVIDIA Quadro (1/3)
    14. 27. Multi-GPU Rendering on NVIDIA Quadro (2/3)
    15. 27. Multi-GPU Rendering on NVIDIA Quadro (3/3)
  14. V. Transfers
    1. 28. Asynchronous Buffer Transfers (1/5)
    2. 28. Asynchronous Buffer Transfers (2/5)
    3. 28. Asynchronous Buffer Transfers (3/5)
    4. 28. Asynchronous Buffer Transfers (4/5)
    5. 28. Asynchronous Buffer Transfers (5/5)
    6. 29. Fermi Asynchronous Texture Transfers (1/4)
    7. 29. Fermi Asynchronous Texture Transfers (2/4)
    8. 29. Fermi Asynchronous Texture Transfers (3/4)
    9. 29. Fermi Asynchronous Texture Transfers (4/4)
    10. 30. WebGL Models: End-to-End (1/5)
    11. 30. WebGL Models: End-to-End (2/5)
    12. 30. WebGL Models: End-to-End (3/5)
    13. 30. WebGL Models: End-to-End (4/5)
    14. 30. WebGL Models: End-to-End (5/5)
    15. 31. In-Game Video Capture with Real-Time Texture Compression (1/3)
    16. 31. In-Game Video Capture with Real-Time Texture Compression (2/3)
    17. 31. In-Game Video Capture with Real-Time Texture Compression (3/3)
    18. 32. An OpenGL-Friendly Geometry File Format and Its Maya Exporter (1/3)
    19. 32. An OpenGL-Friendly Geometry File Format and Its Maya Exporter (2/3)
    20. 32. An OpenGL-Friendly Geometry File Format and Its Maya Exporter (3/3)
  15. VI. Debugging and Profiling
    1. 33. ARB debug output: A Helping Hand for Desperate Developers (1/2)
    2. 33. ARB debug output: A Helping Hand for Desperate Developers (2/2)
    3. 34. The OpenGL Timer Query (1/2)
    4. 34. The OpenGL Timer Query (2/2)
    5. 35. A Real-Time Profiling Tool (1/2)
    6. 35. A Real-Time Profiling Tool (2/2)
    7. 36. Browser Graphics Analysis and Optimizations (1/3)
    8. 36. Browser Graphics Analysis and Optimizations (2/3)
    9. 36. Browser Graphics Analysis and Optimizations (3/3)
    10. 37. Performance State Tracking (1/2)
    11. 37. Performance State Tracking (2/2)
    12. 38. Monitoring Graphics Memory Usage (1/2)
    13. 38. Monitoring Graphics Memory Usage (2/2)
  16. VII. Software Design
    1. 39. The ANGLE Project: Implementing OpenGL ES 2.0 on Direct3D (1/6)
    2. 39. The ANGLE Project: Implementing OpenGL ES 2.0 on Direct3D (2/6)
    3. 39. The ANGLE Project: Implementing OpenGL ES 2.0 on Direct3D (3/6)
    4. 39. The ANGLE Project: Implementing OpenGL ES 2.0 on Direct3D (4/6)
    5. 39. The ANGLE Project: Implementing OpenGL ES 2.0 on Direct3D (5/6)
    6. 39. The ANGLE Project: Implementing OpenGL ES 2.0 on Direct3D (6/6)
    7. 40. SceneJS: A WebGL-Based Scene Graph Engine (1/3)
    8. 40. SceneJS: A WebGL-Based Scene Graph Engine (2/3)
    9. 40. SceneJS: A WebGL-Based Scene Graph Engine (3/3)
    10. 41. Features and Design Choices in SpiderGL (1/5)
    11. 41. Features and Design Choices in SpiderGL (2/5)
    12. 41. Features and Design Choices in SpiderGL (3/5)
    13. 41. Features and Design Choices in SpiderGL (4/5)
    14. 41. Features and Design Choices in SpiderGL (5/5)
    15. 42. Multimodal Interactive Simulations on the Web (1/4)
    16. 42. Multimodal Interactive Simulations on the Web (2/4)
    17. 42. Multimodal Interactive Simulations on the Web (3/4)
    18. 42. Multimodal Interactive Simulations on the Web (4/4)
    19. 43. A Subset Approach to Using OpenGL and OpenGL ES (1/3)
    20. 43. A Subset Approach to Using OpenGL and OpenGL ES (2/3)
    21. 43. A Subset Approach to Using OpenGL and OpenGL ES (3/3)
    22. 44. The Build Syndrome (1/5)
    23. 44. The Build Syndrome (2/5)
    24. 44. The Build Syndrome (3/5)
    25. 44. The Build Syndrome (4/5)
    26. 44. The Build Syndrome (5/5)
  17. About the Contributors (1/4)
  18. About the Contributors (2/4)
  19. About the Contributors (3/4)
  20. About the Contributors (4/4)