• This repository has been archived on 18/Sep/2020
  • Stars
    star
    45
  • Rank 624,037 (Top 13 %)
  • Language
    Crystal
  • License
    MIT License
  • Created over 8 years ago
  • Updated about 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

CPU Raytracer written in the crystal language

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)