Features and Plugins
WebGi comes packed with a rendering pipeline and bundles many plugins, that can be added with a single line of code to provide a variety of features listed below. In a custom application it’s possible to tree-shake the bundle by picking the plugins that are required.
Have a look at the SDK Manual for guide on how to use the plugins.
3D Viewer Core
- Built on three.js (a slightly modified version)
- Optimised - for mobiles/tablets and old devices
- Adaptive Quality control - Quality and setting presets for different devices
- Progressive rendering pipeline
- HDR RGBM pipeline
- HDR Half-Float/Float + sRGB pipeline
- Simple API with Single Entry point
- Jittered Shadow Mapping - High quality shadow maps for direction, and spot lights.
Materials / Extensions / Shaders
- Physically Based Rendering (PBR) workflow - three.js Physical material optimised for product renderings and showcase
- Diamond Plugin - Render high quality diamonds and refractive/glass objects in realtime
- Refraction - High Performance Screen space Refraction
- Anisotropy Plugin - Adds metal Anisotropy to PBR Material
- Clearcoat Tint Plugin - Adds Tint, Thickness and IoR to PBR Material
- Noise Bump Material Plugin - Adds procedural voronoi bump and sparkle/flakes to PBR Material
- Parallax Bump Mapping Plugin - Replaces the default bump mapping with parallax mapping in PBR Materials
- Thin Film Layer Plugin - Adds very fast and non-physical thin iridescence film layer over PBR Material
Screen Space Post Processing
- Progressive Plugin - Implements the Progressive Rendering Pipeline and adds SSAA to the scene.
- Tonemap Plugin - Tonemaps the result before rendering to the screen
- HDR Bloom Plugin - Adds post Bloom effect in HDR space
- Depth of Field Plugin - Adds depth of field effect around a custom focal point.
- Screen Space Ambient Occlusion (SSAO) - Realtime approximation of Ambient Occlusion in the scene
- Screen Space Reflections (SSR) - Realtime approximation of reflections in the scene
- Screen Space Contact Shadows (SSCS) - Adds shadows to small areas and sections where traditional shadow mapping doesn't work.
- Screen Space Global Illumination (SSGI) - dev - Approximates indirect bounces from each fragment in the scene to get better diffuse lighting
- Screen Space Ray Traced Ambient Occlusion (SSRTAO) - dev - Better Approximation of Ambient Occlusion by tracing rays in the depth buffer
- Temporal Anti-Aliasing Plugin - Enable TAA when the camera is moving for better antialiasing.
- Velocity Buffer Plugin - dev - Addition to TAA, to be used when objects are moving along with the camera.
Lighting / Scene Setup
- Ground Plugin - Add ground to the scene with optional baked planar shadows, optional planar/screen-space reflections, background blending and more options
- Contact Shadow Ground Plugin - Simple transparent ground with contact shadows. Cannot be used with Ground Plugin
- HDRi Ground Plugin - Projects the HDR environment map into a hemisphere to get flat ground projection.
- Path Tracing Plugin - dev - Simulates ray tracing in shader using a BVH tree. Uses three-gpu-pathtracer
- Randomized Directional Light Plugin - Progressively jitter directional light to get soft shadows.
- Dropzone Plugin - Enables drag and drop for files and assets and links with the viewer.
- Full Screen Plugin - Adds support for entering/exiting the full screen mode in browser
- Frame Fade Plugin - Cross Fades frames when anything in changes.
- Picking Plugin - Enables interactions and Ui for selecting/picking an object to edit properties.
- GLTF Animation Plugin - Loads and process animations in GLTF along with Camera Markers.
- Camera View Plugin - Set and interpolate between multiple camera states/views.
- Popmotion Plugin - Tweening and animation using popmotion.
Asset Management, Import
- Asset Manager Plugin
- Obj + Mtl Load Plugin
- FBX Load Plugin
- Rhino 3DM Load Plugin
- EXR Load Plugin
- STL Load Plugin
- KTX Load Plugin
- KTX2 Load Plugin
- Asset Exporter Plugin - Allows to export a GLB or scene presets
- GLTF Draco Export Plugin - Adds support for draco compression after GLB export
- Canvas Recorder Plugin - Render a .webm video or image sequence from an animation or live interactions with different options
- Canvas Snipper Plugin - Helpers to snap and download an image of the canvas frame.
- Tweakpane Ui Plugin - Implements all Plugin UIs using tweakpane
- Background / Environment Ui Plugin - Shows UI for changing viewer background and environment maps.
- Hierarchy Ui Plugin - Shows the complete hierarchy of objects in the scene.
- Lights Ui Plugin - Parses lights in the scene and show in the UI, along with Add Light option.
- Simple Viewer Ui - Shows the properties for the root imported objects in the scene
- ExtrasUi Plugin - only for sandbox editor
- Material Configurator Plugin - Handles management, serialisation, snapshots etc while making material configurators.
- Switch Node Plugin - dev - Handles management, serialisation, snapshots etc while making product configurators
- Material Library Plugin - dev - Management of material libraries
- Object Rotation Plugin - Replicate objects in a circle around an axis.
- Shape Tube Extrude Plugin - Generate geometries by extruding a 2D shape along a 3d tube path.
- GBuffer Plugin - Renders the G-buffer before every frame
- Debug Plugin - For debug counters, and debugging textures/render targets on the screen.
- Generic Filter Plugin - For creating plugins with a single post/preprocessing pass
- MultiFilter Plugin - For creating plugins with multiple post/preprocessing passes.
- AViewerPlugin - Abstract class to create webgi viewer plugins
- AR Plugin ( WebXR ) - dev
- Cannon.js Physics Plugin - dev
- Ammo.js Physics Plugin - dev
EnvMapTool Plugin Interaction Plugin PMREMGenerator Plugin
Features/Plugins marked with dev are not ready for public use yet, but you can track the progress here.