Skip to content

frguthmann/VirtuaLightJS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VirtuaLightJS

A Physically Based Rendering engine created from scratch in WebGL2, compatible with at least Windows and Linux. (Smartphones not supported, can't test on macOS)

Demo

Right here: https://frguthmann.github.io/VirtuaLightJS/

Features

  • Multiple meshes loading from .ply or .off files. Plys preferred as they provide UV textures.
  • Individual control over meshes position, size and orientation through GUI.
  • Multiple point lights with control over color, intensity and position through GUI.
  • Fully Physically Based Shading of objects including albedo, metallic, ambient occlusion and roughness map.
  • Normal mapping with TBM matrix computed on the fly by the graphic card.
  • Shadow Map for 1 light generated by simulating a directionnal light (WIP) with Percentage Closer Filtering
  • Skybox transformed from equirectangular to cubemap at runtime
  • Environnement based diffuse lighting with irradiance map baked on the fly from environnement map
  • Specular IBL using split sum approximation by Epic Games (Unreal Engine 4) with precomputation at startup.

Textured Models

Textures

IBL Environment

Great Teachers

Special Thanks

The original name was coined by Quentin Beauvillard, on Facebook Messenger by a warm night of summer 2017