Skip to content

ndm767/ApolloRaytracer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ApolloRaytracer

A hobby Blinn-Phong shaded ray-tracer written in C++

teapots testscene lucy asciiraytracer

Features

  • Octree mesh acceleration
  • Basic multithreading
  • JSON scene loading
  • SDL2 Window output
  • Keyboard controls
  • Blinn-Phong shading
  • Reflections
  • Refractions
  • Sphere geometry
  • Triangle geometry
  • Mesh geometry / model loading
  • AABB for mesh-ray collisions
  • Environment mapping
  • Basic material system
  • ASCII output (doesn't play well with environment mapping, works better if you decrease terminal font, can be enabled in ApolloRaytracer.cpp)
  • Multiple cameras and ability to cycle through them

Controls

  • WASD to move
  • QE to move up and down
  • arrow keys for camera rotation
  • space bar to cycle through cameras in scene
  • scenes are loaded using a JSON file (examples can be seen in assets/scenes/)
  • command line options can be seen by running ./apollo --help

Building

make [-j#]
./apollo

Dependencies

  • SDL2
  • Assimp
  • glm
  • nlohmann/json
  • jarro2783/cxxopts

Attributions

About

A hobby Blinn-Phong shaded ray-tracer written in C++

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published