Sunday, September 30, 2012

GPU Ray Tracer Submission

 Video:


The top, bottom, front and back walls are all reflective
traceDepth = 10
GPU:
NVIDIA GeForce GTX 560M

Link to repository:
https://github.com/aparajithsairam/Project1-Raytracer

Functions Implemented:
  • cudaRaytraceCore() handles kernel launches and memory management;
  • raycastFromCameraKernel() is a function handling camera raycasting;
  • raytraceRay() is the core raytracing CUDA kernel;
  • boxIntersectionTest(), which takes in a box and a ray and performs an intersection test;
  • getRandomPointOnSphere(), which takes in a sphere and returns a random point on the surface of the sphere with an even probability distribution;
  • getRandomDirectionInSphere(), which generates a random direction in a sphere with a uniform probability;

Features Implemented:
  • Raycasting from a camera into a scene through a pixel grid
  • Phong lighting for one point light source
  • Diffuse lambertian surfaces
  • Raytraced shadows
  • Cube intersection testing
  • Sphere surface point sampling
  • Reflection
  • Interactive camera

Snapshots of GPU Ray Tracer with time



Lambert Shading & Phong Shading with Exponent = 0 (Can See Rim)