Skip to content

A simple 3d raytracer made with pure linear algebra and C++.

License

Notifications You must be signed in to change notification settings

DuckyShine004/3d-raytracer

Repository files navigation

3d-raytracer

A simple 3d raytracer made with pure vector maths and C++. I would like to acknowledge Peter Shirley who made this project possible.

Note

Run the following shell scripts in your terminal application:

  • ./run.sh to build the project
  • ./convert.sh to convert .ppm to .png format.

Warning

The current version of my ray tracer uses a sample rate of 500 for high quality rendering; this will take a very long time.

Snapshots

ray-sphere-intersection-basic.png ray-sphere-intersection-gradient.png ray-tracing-anti-aliasing.png

ray-tracing-diffuse.png

ray-tracing-lambertian.png

ray-tracing-gamma.png

ray-tracing-metal.png

ray-tracing-fuzzy.png

ray-tracing-refraction.png

ray-tracing-total-internal-refraction.png

ray-tracing-schlick.png

ray-tracing-hollow-sphere.png

ray-tracing-fov.png

ray-tracing-camera-90-fov.png

ray-tracing-camera-20-fov.png

ray-tracing-defocus--blur.png

ray-tracing-final-render.png

Contribution

Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. Don't forget to give the project a star! (⭐)

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b Feat/NewFeature)
  3. Commit your Changes (git commit -m 'Feat: Added New Feature')
  4. Push to the Branch (git push origin Feat/NewFeature)
  5. Open a Pull Request

Contact

Gallon Zhou: Linkedin

Project Link: https://github.com/DuckyShine004/3d-raytracer

About

A simple 3d raytracer made with pure linear algebra and C++.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published