CIS565: Project 2: CUDA Pathtracer

Yuqin Shao


Features

  • Full global illumination (including soft shadows, color bleeding, etc.) by pathtracing rays through the scene.
  • Properly accumulating emittance and colors to generate a final image
  • Supersampled antialiasing
  • Parallelization by ray instead of by pixel via stream compaction (you may use Thrust for this).
  • Perfect specular reflection
  • Fresnel-based Refraction
  • Interactive camera
  • Depth of field

Video Demo

http://youtu.be/0hghD1Zi7qU


Screen Shots

*With depth of field, refraction, reflection,8000 iterations, 10 max bounce depth Alt test

*With depth of field, refraction,reflection,6000 iterations, 10 max bounce depth Alt test

*No DOF, 3000 iterations, refraction,reflection,3000 iterations, 10 max bounce depth Alt test

*No DOF, refraction, 500 iterations, 5 max bounce depth Alt test

*Strange bug, bug disappears after I removed the sphere Alt test

PERFORMANCE EVALUATION

Alt test


SELF-GRADING

  • On the submission date, email your grade, on a scale of 0 to 100, to Liam, liamboone+cis565@gmail.com, with a one paragraph explanation. Be concise and realistic. Recall that we reserve 30 points as a sanity check to adjust your grade. Your actual grade will be (0.7 * your grade) + (0.3 * our grade). We hope to only use this in extreme cases when your grade does not realistically reflect your work - it is either too high or too low. In most cases, we plan to give you the exact grade you suggest.
  • Projects are not weighted evenly, e.g., Project 0 doesn't count as much as the path tracer. We will determine the weighting at the end of the semester based on the size of each project.

SUBMISSION

As with the previous project, you should fork this project and work inside of your fork. Upon completion, commit your finished project back to your fork, and make a pull request to the master repository. You should include a README.md file in the root directory detailing the following

  • A brief description of the project and specific features you implemented
  • At least one screenshot of your project running, and at least one screenshot of the final rendered output of your pathtracer
  • Instructions for building and running your project if they differ from the base code
  • A link to your blog post detailing the project
  • A list of all third-party code used