dmhacker / RenderingEngine

Fast, multi-threaded, recursive ray tracer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RenderingEngine

The Stanford Dragon. It took the ray tracer approximately 150 seconds to render its 100,000 facets on my laptop with antialiasing enabled. Without antialiasing, it would have taken approximately 20 seconds.

Specifications

  • Recursive ray tracer
  • Multithreaded (default number of threads = system cores)
  • Uses Phong shading
  • Support for ambient, diffuse, and specular lighting.
  • Support for ray reflection
  • Support for camera translations (zoom)
  • Support for multiple light sources
  • Support for spheres
  • Support for triangular meshing
  • Support for STL files
  • Support for camera rotation
  • Support for vertex normal interpolation (uses barycentric coordinates)
  • Optimized using balanced kd-tree [O(n) generation, O(log n) traversal]
  • Antialiasing (jittered antialiasing on n x n subcells of pixel) for color smoothing [O(n^2) time]
  • Support for both gaussian and box filters [no performance difference with either]
  • 's' key takes picture of current render

Future Improvements

  • Finish bidirectional path tracer
  • Texture mapping
  • Support for refraction

About

Fast, multi-threaded, recursive ray tracer


Languages

Language:Java 100.0%