Implementation of ray tracing in both C++ with Vulkan backend and Javascript with WebGL backend with several additional extensions.
C++/Vulkan
Js/WebGL Interactive Sample
Features
C++/Vulkan
- Perspective camera
- Simple shadows
- Reflections
- Lambertian shading
- Blinn-Phong shading
- Texture support
- Animation wrt positions (parameterization of world matrix)
- Animation wrt mesh vertices (time based compute shader)
- Super-sampling (Frame jitter accumulation over time)
- Super-sampling (Multi samples per frame)
- Monte Carlo Path tracing (w/Lambertian shading only)
- Rendering control via debug panel
- Janky wasd movement
JS/WebGL
- Perspective camera
- Lambertian shading
- Blinn-Phong shading
- Time based parameterization of colors
- Mouse based parameterization of light source position