416 Pages 230 Color Illustrations
    by A K Peters/CRC Press

    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/

    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
    Getting Serious with JavaScript; Matthew Amato and Kevin Ring
    Emscripten and WebGL; Nick Desaulniers
    Data Visualization with WebGL: From Python to JavaScript; Cyrille Rossant and Almar Klein
    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

    Biography

    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 and the accompanying website represent the epitome of the web’s sharing culture: a curated collection of leading-edge techniques and insights, with online source code and live demonstrations. In this book, engine authors present their strategies for achieving high-performance, good scalability, and leading-edge visuals. Educators share their experience in moving real-time computer graphics courses to the web and WebGL. Application developers and toolchain authors share their experiences both building large, new JavaScript code bases and bringing existing C++ code bases to the web. Graphics researchers show how to implement leading-edge rendering techniques in WebGL, allowing these techniques to be deployed seamlessly to hundreds of millions of devices and billions of people. Visualization researchers demonstrate how to render huge data sets with high performance and high impact. Interaction researchers provide insights into effective navigation and interaction paradigms for 3D applications. Finally, browser and GPU implementers give a look under the hood of WebGL implementations to help developers tune their code for best performance on a range of devices.

    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