raytracer

CPU Raytracer with examples raytracer computer-graphics fractal
HEAD Latest release released
l3kn/raytracer
45
Leon

Raytracer

Documentation

Scenes

scenes/cornell_box.cr

400x400px, 20000 samples / pixel, time: ~4h

scenes/light2.cr

800x400px, 10000 samples / pixel, time: 2h15m

scenes/teapot.cr

400x400px, 100 samples / pixel, no lights, 2464 triangles with interpolated normals, time: 64s, 60s, 120s

The cube map in this example is "Yokohama 3" by Emil "Humus" Persson, licensed under CC BY 3.0

scenes/minecraft.cr

800x400px, 100 samples / pixel, no lights, time: 410s

scenes/fractal1.cr

400x400px, 5 samples / pixel, no lights, time: 3m10s

scenes/fractal2.cr

800x400px, 3 samples / pixel, no lights, time: 18s

scenes/fractal5.cr

400x400px, 5 samples / pixel, no lights, time: 30s

[WIP] scenes/sponza.cr

400x400px, 5000 samples / pixel, 1 light, time: 13h

Model: Crytek Sponza

[WIP] scenes/sponza_phong.cr

400x400px, 5 samples / pixel, 1 light, phong lighting, time: 37s

Model: Crytek Sponza without Banner

scenes/metaball.cr

800x400px, 10 samples / pixel, no lights, time: 5m

The cube map in this example is "Yokohama" by Emil "Humus" Persson, licensed under CC BY 3.0

In order to run this example:

  1. Download the set of cubemaps
  2. Unzip the folder
  3. Convert each .jpg to .png e.g. using mogrify -format png *.jpg etc. (convert is part of the imagemagick)
  4. Copy all six png files (negx.png, negy.png, negz.png, posx.png, posy.png, posz.png) to cube_maps/Yokohama
  5. Mirror negx.png, e.g. using convert negx.png -flop negx.png

Resources

Models

  • teapot.obj (Utah teapot, used by scenes/teapot1.cr)
raytracer:
  github: l3kn/raytracer
  
License MIT
Crystal none

Authors

Dependencies 2

  • linalg~l3kn matrix
    {'branch' => 'matrix', 'github' => 'l3kn/linalg'}
  • stumpy_png ~> 4.5
    {'github' => 'stumpycr/stumpy_png', 'version' => '~> 4.5'}

Development Dependencies 0

Dependents 0

Last synced .
search fire star recently