In 3D computer graphics, ray tracing is a technique for modeling light transport for use in a wide variety of rendering algorithms for generating digital images.
The goal of the program is to generate images using the Raytracing protocol.
The supported these simple geometric object: sphere, cylinder, plane and paraboloid (for a bonus part of subject).
This program can apply translation and rotation transformations to objects, lights and cameras. Lighting control: spot brightness, hard shadows, background lighting (objects are never in total darkness). Implemented ambient and diffuse lighting, added specular reflection and color disruption: checkerboard.
The program is written in C language for macOS and thus needs the gcc compiler and standard C libraries to run.
- img contains a few *.jpg files generated by the program
- inc contains headers
- libft contains the source code of my libft library, which is used in the program
- maps and maps_bonus contains *.rt files that describes scenes for rendering by the program
- mlx contains miniLibX library
- src contains the source code of the program
$ git clone git@github.com:Anastasiia-Ni/miniRT.git
$ cd miniRT
$ make
./miniRT path/scene.rt
to render the scene.rt passed as a parameter
./miniRT maps/16_planets.rt
- https://raytracing.github.io/
- https://raytracing.github.io/books/RayTracingInOneWeekend.html
- https://teuben.github.io/nemo/man_html/vectmath.3.html#sect0
- https://github.com/felselva/mathc
- https://gabrielgambetta.com/computer-graphics-from-scratch/
- https://habr.com/ru/post/342510/
- https://www.youtube.com/watch?v=TTqLX0OHZzI