This ray tracer is the final project of the graphic branch at School 21 (Ecole 42).
Ray tracing - is a way to create (render) 3D pictures with realistic lights and shadows. Ray tracing technique used in computer games, cartoons, graphic editors and etc.
Algorithm description
About ray tracing on wiki
- Path tracing + area light
- Ray marching
- Interpolated background
- Illumination
- Reflection
- Transparency
- Texture on basic objects
- Disruptions: perlin noise, sinewave and checkerboard texture
- Basic objects: sphere, plane, cylinder, cone
- Box
- Limited objects: half-sphere, half-box and etc.
- Negative objects (CSG)
- Torus
- Paraboloid
- Moebius ribbon
- Explosion
- 3D fractals: mandelbulb, julia, perforated cube
- Filters: cartoon effect, sepia
- Stereoscopy
- Motion blur
- Focus (depth of field)
- Scenes handle in JSON
- It's possible to make screenshots
- Camera management
- Editing, creating and deleting objects
- Renderer management: tracing type, lightning mod and etc.
- Parallel computing on GPU (OpenCl)
- The interface is written using GTK
$> make
$>./RTMake sure that you have gtk+3, pkg-config and glade. If not use homebrew for installation:
$> brew install gtk+3
$> brew install pkg-config
$> brew install glade- Physically Based Rendering - describes both the mathematical theory behind a modern photorealistic rendering system as well as its practical implementation
- Scratchapixel - amazing tutorials (from basic lightning to Monte Carlo Methods)
- Inigo Quilez - articles, tutorials, code, and presentations related to maths, fractals, demoscene and computer graphics
- Shadertoy - is a cross-browser online community and tool for creating and sharing shaders through WebGL
- Fractal forums - crazy place, where magic and fractals lives
Hypercomplex fractal - is a three-dimensional fractal.
Path tracing - improved ray tracing algorithm. The basic idea is to simulate the path of a ray of light. As a result, objects cast not only shadow, but also color. Example: on a white wall, we will see a little bit of red if a red object is standing nearby.
Raymarching is a technique a bit like traditional raytracing where the surface function is not easy to solve (or impossible without numeric iterative methods). In raytracing you just look up the ray intersection, whereas in ray marching you march forward (or back and forth) until you find the intersection, have enough samples or whatever it is your trying to solve.






