OpenGL Insights

Book description

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. Focusing on current and emerging techniques for the OpenGL family of APIs, the 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. Source code, demos, and other material are available on the book's website.

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)

Product information

  • Title: OpenGL Insights
  • Author(s): Patrick Cozzi, Christophe Riccio
  • Release date: July 2012
  • Publisher(s): A K Peters/CRC Press
  • ISBN: 9781439893777