Skip to content

zachary-cauchi/CPS5124-assignment-1

Repository files navigation

CPS5124-assignment-1

Source code for my CPS5124 study unit assignment.

Tasks

Task 0

  • Add JSON file parsing to load scene data.
  • Output a test png/jpg image.

Task 1

  • Implement basic ray-tracer functions.
    • intersects function, returning the point of intersection.
    • isOccluded function, returning whether the ray hits something or not.
  • Render a depth map as output of the functions.

Task 2

  • Create a whitted-style ray tracer.
    • Point lights.
    • Diffuse surfaces.
    • Specular reflective.
    • Specular transmissive surfaces.
    • Pinhole camera with box linear filter.
  • Implement tone mappers.
    • Sigmoid tone mapper.
    • Linear tone mapper.

Task 3

  • Extend the ray tracer to support the complex effects.
    • Path tracer.
    • Lens-based camera.
    • Area Lights.
      • Soft shadows.
    • Glossy and translucent surfaces.
    • Create the following image estimators:
      • Uniform random.
      • Stratified sampling.
    • Russian Roulette.

Task 4

  • Create demo scene to demonstrate progress.