Skip to content

Latest commit

 

History

History
39 lines (25 loc) · 1.69 KB

README.md

File metadata and controls

39 lines (25 loc) · 1.69 KB

Pale Spire

This was our final project for the Yale class Computer Graphics, CPSC 478, in Spring 2021. It was built by Zacharie Sciamma and Matt Udry. The assignment was to create a 10-second movie scene, using our own distribution ray tracing engine built from scratch in C++. Our engine can render triangles, rectangles, and cylinders, and it also has the following complex features:

  • Soft shadows
  • Glossy reflections
  • Textures
  • Cook-Torrance reflectance

You can watch our final movie scene here:

final movie render

Build and Run

To install the project:

  • Clone the repository
  • On Mac, install jpgeglib using brew install jpeglib
  • Install IINA for viewing the movies

Then, to run it:

  • In the top level directory, call make then ./previz
  • Go into the frames directory, then call make
  • Run ./movieMaker
  • View the output .mov file using IINA (on Mac, right click it then select "Open with IINA")

Citations

We used code provided by Professor Kim for the Cook-Torrance model. This was the BRDF demo, provided on 19th April 2021, in file BRDFs/chapter6/illumination_models/shaders.js, line 113-176. We edited this code to convert it from GLSL to C++. We used it in the file material.cpp, lines 39-89

Images

We used the following images as textures for the swimming pool:

swimming_floor_1: https://pixabay.com/photos/water-swimming-pool-wave-pool-1018808/ swimming_wall_1: https://pixabay.com/photos/swimming-pool-pool-tiles-blue-4638912/ swimming_marble_1: https://pixabay.com/photos/marble-texture-white-pattern-2362262/