Skip to content

oseiskar/webgl-raytracer

Repository files navigation

WebGL raytracer app

https://oseiskar.github.io/webgl-raytracer/

The idea is to create a framework for composing different WebGL raytracers from shared pieces of GLSL fragment shader code. Different combination of rendering methods, material models, cameras and data structures may be used.

Utilizes my glsl-bench library (included as a submodule) & TWGL for the WebGL boilerplate, for example, everything not related to "worlds with two triangles".

img

Development

Installation

npm install
npm run build
# npm run watch # for hot reloading

Usage

python3 -m http.server 8000 --bind 127.0.0.1 # or similar
# then go to http://localhost:8000/

Deployment

# TODO: hacky
git checkout gh-pages
git reset --hard A_COMMIT_SHA_WITHOUT_BUNDLE_JS
git rebase main
npm run build
git add .
git commit -m "Deploy"
git push -f

Features

Implemented

To-do list

  • faster subsurface scattering
  • cylinders and cones
  • constructive solid geometry
  • triangle meshes & octrees
  • interval arithmetic implicit surfaces
  • spectral color model (enables dispersion)
  • reconstruction filter for blurring highlights

References

Miscellaneous interesting free online material on raytracing

About

Physically-based rendering in the browser with WebGL

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published