GonnaFlyMethod / raytracer

A raytracer based on books of Peter Shirley with multithreading

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

raytracer

This is a raytracer based on the book Raytracing in one weekend. By implementing the ideas & concepts from the book, I'm teaching myself how do raytracers work in practice and what underlying principles and math are used to create cool looking scenes.

Rendered spheres:

Building the project

This project uses cmake as a build system. CMakeLists.txt should be utilized to generate cmake-related directory. For example, CLion IDE offers to pick the path to CMakeLists.txt at the beginning of work:

CMakeLists.txt is located in src/CMakeLists.txt

Evolution of my journey:

A scene without antialiasing:

Antialiasing upper right neighbours:

Antialiasing all neighbour pixels:

Diffuse materials gamma correction:

Hemispherical scattering:

True lambertian reflection:

Metal with lambertian:

Fuzzed metal:

Depth of field effect:

Rendered spheres:

Motion blur:

Checker texture:

Earth texture mapping:

Perlin texture(noise version):

Perlin texture(gradient version) with turbulence and sin(x) phases:

Quads:

Triangles:

About

A raytracer based on books of Peter Shirley with multithreading

License:MIT License


Languages

Language:C++ 98.4%Language:CMake 1.1%Language:C 0.5%