Skip to content

KnockerPulsar/raytracer

Repository files navigation

raytracer

Experimenting with creating a CPU raytracer. Main resources:

Showcase

Cornell Cornell box. This version added support for quads, boxes, lights, textures, and more! Rendered with 10k samples and 50 bounces

Weekend final Showcase of an earlier version of the renderer, implements all of "Raytracing in one weekend"'s core functions + multi-threading

Texture mapping Texture mapping for spheres!

Screenshot with glass, metallic, and diffuse balls
Earlier version with glass, metallic, and diffuse balls. Notice how the glass ball is hollow?

Features

  • Currently renders only spheres (more to come).
  • Three material types: diffuse, metallic, dielectric.
  • Supports spatial acceleration with BVHs.
  • Texture mapping.

Dependencies

  • raylib (4.0) for drawing and Vector3 class library
  • glm (latest) for transforms
  • rlImGui (imgui docking branch @77637fd9363ac7ef7b6fb6419b760602192a38bd) for imgui support
  • nlohmann-json for json support
  • argumentum (v0.3.1) For CLI options
  • imguizmo (vendored) for translation/rotation/scale gizmos
  • stb_image (vendored) for image loading and storing
  • ImGuiFileDialog (v0.64), pretty self explanatory

About

Experimenting with creating a CPU raytracer.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published