Offline raytracing! Math! Oh My!
This raytracer is being made from guidance with The Ray Tracer Challenge from The Pragmatic Bookshelf.
TL;DR the book gives you defined test cases to pass and some general concepts. No copy pasting code from a book or tutorial here.
This is my attempt at the project, along with any extra features I decide to add on in the future.
This is my first attempt at using cmake since I wanted to use C++ for this particular project and wanted it to be crossplatform ish at best. but here's a quick run down tutorial of the set up:
- In the root of the repository where CMakeLists.txt is located, run
cmake -B<build directory location>to create a build of the project. - in the created build director run
maketo create the executable assuming you are running on a UNIX system. - run
./mainin the terminal and boom you got yourself a program
Note: If you decide to generate a project for your favorite IDE, note that I built a majority of this project using Visual Studio's ability to manage CMake projects, so mileage may vary for other IDE's
- Tests only pass fully on MSVC compiler, GCC has a segfault when running gtest but the main program still works as intended as of October 2023, will get it passing on gcc at a later date
images are created in the ppm file format then exported to jpg using GIMP
- Printing a image to a screen using a progam to simulate a cannon shooting a projectile and recording the arc path

- Printing a "clock" of pixels at 12 locations using matrix transformation definitions

- Printing a unlit, unshaded sphere in 3D space

- Printing a shaded, lit sphere using a basic Phong material

- Printing a lit scene with no shadows

- Printing a lit scene with shadows
