Given its ubiquity, plugin-free deployment, and ease of development, the adoption of WebGL is on the rise. Skilled WebGL developers provide organizations with the ability to develop and implement efficient and robust solutions—creating a growing demand for skilled WebGL developers.
WebGL Insights shares experience-backed lessons learned by the WebGL community. It presents proven techniques that will be helpful to both intermediate and advanced WebGL developers.
By focusing on current and emerging techniques, the book demonstrates the breadth and depth of WebGL. Readers will gain practical skills to solve problems related to performance, engine design, shader pipelines, rendering, mobile devices, testing, and more.
Throughout the book, experienced WebGL engine and application developers, GPU vendors, browser developers, researchers, and educators share their unique expertise based on their real-world experiences. This includes hardware vendors sharing performance and robustness advice for mobile, browser developers providing deep insight into WebGL implementations and testing, and WebGL-engine developers presenting design and performance techniques for many of the most popular WebGL engines.
The companion WebGL Insights website contains helpful tips, sample content, code, and other resources. It is also the place to find announcements about future volumes: http://www.webglinsights.com/
Table of Contents
Section I: WebGL Implementations
ANGLE: A Desktop Foundation for WebGL; Nicolas Capens and Shannon Woods
Mozilla’s Implementation of WebGL; Benoit Jacob, Jeff Gilbert, and Vladimir Vukicevic
Continuous Testing of Chrome’s WebGL Implementation: Kenneth Russell, Zhenyao Mo, and Brandon Jones
Section II: Moving to WebGL
Emscripten and WebGL; Nick Desaulniers
Teaching an Introductory Computer Graphics Course with WebGL; Edward Angel and Dave Shreiner
Section III: Mobile
Bug-Free and Fast Mobile WebGL; Olli Etuaho
Section IV: Engine Design
WebGL Engine Design in Babylon.js; David Catuhe
Rendering Optimizations in the Turbulenz Engine; David Galeano
Performance and Rendering Algorithms in Blend4Web; Alexander Kovelenov, Evgeny Rodygin, and Ivan Lyubovnikov
Sketchfab Material Pipeline: From File Variations to Shader Generation; Cedric Pinson and Paul Cheyrou-Lagrèze
glslify: A Module System for GLSL; Hugh Kennedy, Mikola Lysenko, Matt DesLauriers, and Chris Dickinson
Budgeting Frame Time; Philip Rideout
Section V: Rendering
Deferred Shading in Luma; Nicholas Brancaccio
HDR Image-Based Lighting on the Web; Jeff Russell
Real-Time Volumetric Lighting for WebGL; Muhammad Mobeen Movania and Feng Lin
Terrain Geometry—LOD Adapting Concentric Rings; Florian Bösch
Section VI: Visualization
Data Visualization Techniques with WebGL; Nicolas Garcia Belmonte
hare3d—Rendering Large Models in the Browser; Christian Stein, Max Limper, Maik Thoener, and Johannes Behr
The BrainBrowser Surface Viewer: WebGL-Based Neurological Data Visualization; Tarek Sherif
Section VII: Interaction
Usability of WebGL Applications; Jacek Jankowski
Designing Cameras for WebGL Applications; Diego Cantor-Rivera and Kamyar Abhari
Patrick Cozzi leads the development of Cesium, an open-source WebGL virtual globe and map engine, at Analytical Graphics, Inc. He is the editor of WebGL Insights, coeditor of OpenGL Insights, coauthor of 3D Engine Design for Virtual Globes, and a member of the editorial board for the Journal of Computer Graphics Techniques. Patrick frequently presents at SIGGRAPH and contributes to other book series. He is a member of Khronos and teaches GPU Programming and Architecture at the University of Pennsylvania, where he earned a master's degree in computer science.
This book contains a wealth of information and will be a treasured reference for years to come.
—Ken Russell, Khronos WebGL Working Group Chair, Software Engineer, Google Chrome GPU Team