Awesome
jsRayTracer
It's a school project: a Ray Tracer written with web technologies. I've taken the file format and all the examples from the Ray Tracer of my friends Maxime Mouial and Clément Bœsch.
It is powered by <a href="https://github.com/toji/gl-matrix">glMatrix</a>, <a href="http://codemirror.net/">CodeMirror</a>, <a href="http://coffeescript.org/">CoffeeScript</a>, <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap</a>, <a href="http://jquery.com/">jQuery</a> and <a href="https://developer.mozilla.org/en/Using_web_workers">Web Workers</a>.
Features
- Objects: Plane, Sphere, Cone, Cylinder, Portal
- Reflection, Refraction, Opacity
- Textures, with Alpha handling
- Checkerboard, Perlin Noise
- Colored Lights
- Object cut via bounding box
- Anti-aliasing: Sub/Super-sampling and multiple random rays per pixel
Examples
<a href="http://fooo.fr/~vjeux/epita/raytracer/raytracer.html#portal"><img src="http://fooo.fr/~vjeux/epita/raytracer/images/examples/portal_thumb.png" title="portal"/></a> <a href="http://fooo.fr/~vjeux/epita/raytracer/raytracer.html#pokeball"><img src="http://fooo.fr/~vjeux/epita/raytracer/images/examples/pokeball_thumb.png" title="pokeball"/></a> <a href="http://fooo.fr/~vjeux/epita/raytracer/raytracer.html#texturing_cut"><img src="http://fooo.fr/~vjeux/epita/raytracer/images/examples/texturing_cut_thumb.png" title="texturing_cut"/></a> <a href="http://fooo.fr/~vjeux/epita/raytracer/raytracer.html#reflect"><img src="http://fooo.fr/~vjeux/epita/raytracer/images/examples/reflect_thumb.png" title="reflect"/></a> <a href="http://fooo.fr/~vjeux/epita/raytracer/raytracer.html#texturing"><img src="http://fooo.fr/~vjeux/epita/raytracer/images/examples/texturing_thumb.png" title="texturing"/></a> <a href="http://fooo.fr/~vjeux/epita/raytracer/raytracer.html#origin"><img src="http://fooo.fr/~vjeux/epita/raytracer/images/examples/origin_thumb.png" title="origin"/></a> <a href="http://fooo.fr/~vjeux/epita/raytracer/raytracer.html#checkerboard"><img src="http://fooo.fr/~vjeux/epita/raytracer/images/examples/checkerboard_thumb.png" title="checkerboard"/></a> <a href="http://fooo.fr/~vjeux/epita/raytracer/raytracer.html#cylinders_3-spheres_reflect"><img src="http://fooo.fr/~vjeux/epita/raytracer/images/examples/cylinders_3-spheres_reflect_thumb.png" title="cylinders_3-spheres_reflect"/></a> <a href="http://fooo.fr/~vjeux/epita/raytracer/raytracer.html#ventil"><img src="http://fooo.fr/~vjeux/epita/raytracer/images/examples/ventil_thumb.png" title="ventil"/></a> <a href="http://fooo.fr/~vjeux/epita/raytracer/raytracer.html#single_light"><img src="http://fooo.fr/~vjeux/epita/raytracer/images/examples/single_light_thumb.png" title="single_light"/></a> <a href="http://fooo.fr/~vjeux/epita/raytracer/raytracer.html#light_3"><img src="http://fooo.fr/~vjeux/epita/raytracer/images/examples/light_3_thumb.png" title="light_3"/></a> <a href="http://fooo.fr/~vjeux/epita/raytracer/raytracer.html#perlin"><img src="http://fooo.fr/~vjeux/epita/raytracer/images/examples/perlin_thumb.png" title="perlin"/></a> <a href="http://fooo.fr/~vjeux/epita/raytracer/raytracer.html#perlin_sphere"><img src="http://fooo.fr/~vjeux/epita/raytracer/images/examples/perlin_sphere_thumb.png" title="perlin_sphere"/></a> <a href="http://fooo.fr/~vjeux/epita/raytracer/raytracer.html#example_5"><img src="http://fooo.fr/~vjeux/epita/raytracer/images/examples/example_5_thumb.png" title="example_5"/></a> <a href="http://fooo.fr/~vjeux/epita/raytracer/raytracer.html#example_7"><img src="http://fooo.fr/~vjeux/epita/raytracer/images/examples/example_7_thumb.png" title="example_7"/></a>
Licence
It's in MIT licence. Feel free to do whatever you want with it :)