raytracer
Raytracer
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:
- Download the set of cubemaps
- Unzip the folder
- Convert each .jpg to .png
e.g. using
mogrify -format png *.jpg
etc. (convert
is part of the imagemagick) - Copy all six png files (
negx.png
,negy.png
,negz.png
,posx.png
,posy.png
,posz.png
) tocube_maps/Yokohama
- Mirror
negx.png
, e.g. usingconvert negx.png -flop negx.png
Resources
- Raytracing in One Weekend
- Raytracing: the Next Week
- Raytracing: the Rest of your Life
- Modeling with Distance Functions
- Distance Estimated 3D Fractals (I-V)
Models
teapot.obj
(Utah teapot, used byscenes/teapot1.cr
)