Interactive path tracing of complex polygonal models using WebGL
Presenting this prototype I seek to promote further development in the areas of global illumination and path tracing, and encourage hardware manufacturers, device driver developers and API designers to natively support the necessary functions and data structures to accelerate such algorithms.
Path tracing is a method of rendering images of three-dimensional scenes such that global illumination is faithfully reproduced, unlike traditional rasterization techniques used in videos games which fake global illumination to approximate its effect.
This prototype achieves this by harnessing the power of modern hardware accelerators and a WebGL powered graphics engine to create realistic, interactive simulations via compatible web browsers.
Source code will be available on GitHub early 2018.
The technology harnesses the massively parallel architecture of modern graphics hardware through the WebGL API, enabling interactive navigation and exploration of rendered content in any web browser.
The path tracing engine leverages the brute force computing power of modern hardware accelerators to progressively generate ultra realistic computer images, as more samples are accumulated the generated images become less noisy and cleaner over time.
Geometry, materials and acceleration structures are compiled into a single highly compressed file, resulting in faster downloads and less waiting for users. Client side decompression is provided by pako.
All standard material types are simulated including metal, glass and plastic. Creating and editing materials is easy and intuitive, modify any material property and get immediate feedback.
Path tracing faithfully reproduces global illumination effects seen in the real world, resulting in photo-realistic images. This level of realism would be difficult or impossible to achieve using traditional algorithms and lighting models.
The engine natively supports anti-aliasing and the depth of field effect with practically no performance penalty. Post-processing provides additional effects such as gamma correction and bloom.
3D content is a valuable asset and the compressed file format and optimized data layout of the acceleration structure makes reverse engineering such content difficult and impractical.
Limitations & Potential
With this prototype and associated source code, I aim to encourage the native support of intersection algorithms and acceleration structure storage and traversal mechanism which could potentially accelerate path tracing algorithms by an order of magnitude or more.
Prototype has only been tested against recent versions of desktop Chrome and Firefox.
This prototype uses a graphics engine that will stress your machine to its limits and, depending on your hardware, may cause your computer to become unresponsive and/or crash your computer's graphics driver.
You are advised to save all your work before proceeding, your use of this prototype is done at your sole risk!
Upon launching the prototype a dialog will appear with usage instructions, you are encouraged to read these instructions.