Skip to content
Simple 3D Ray Tracer
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
lib
renders
res/textures
src
.gitignore
Makefile
README.md

README.md

ray-tracer

A simple 3D renderer based on ray-tracing algorithm. For now, all computations are done on CPU, but future versions may leverage GPU computing power via OpenGL shaders.

Render example

Currently implemented

  • JPEG output
  • Camera view matrix
  • Basic scene data structure
  • Ligthing:
    • Punctual lights
    • Area ligths
    • Diffuse lighting
    • Specular lighting
    • Intensity attenuates with distance
  • Perfect refraction
  • Perfect reflection
  • Geometric objects:
    • Cube
    • Sphere
    • Plane
  • Arbitrary rotation of objects
  • Materials
  • Adaptative oversampling
  • Textures
    • Algorithmic textures
    • Image-based textures

TODO

  • Directed lighting
  • Multithreading
  • More geometric figures
    • Pyramid
    • Cone
    • Cylinder
    • Dome (half-sphere)
    • Polygon
  • Depth of field
  • Bumpmaps

Dependencies

Credits

Some algorithms were adapted from "Algorithmes pour la synthèse d'images et l'animation 3D" by Rémy Malgouyres.

You can’t perform that action at this time.