Image Synthesis Assignment 0: Warm-up

Due: January 25

Description

This assignment is designed to get you acquainted with pbrt, the physically-based rendering system you will use throughout this course. Your goal should be to get comfortable with the software by rendering several test scenes and reading the beginning chapters of the text book. pbrt has been developed and tested extensively on Linux, MacOS, and Windows. Feel free to use whatever platform you desire, however your assignment code should be portable (so as to ease the grading process for the TA).

Step 1

Done. It was sweet. I compiled from source and pwned some n00bs.

Step 2

Made some pretty pictures. Here are 3 of them:

Step 3

Did this... It was less than spectacular.

Step 4

Answers

  1. Radiance (Energy)
  2. BSDF (Bidirectional Scattering Distribution Function)
  3. There are several differences between normals and vectors. Among these differences, normals cannot be added to a point, nor can the cross product be taken between two of them. Also, normals are transformed differently. Since they must remain orthogonal to a given surface, their transformations have special conditions to ensure that they remain as such.
  4. Intersect and IntersectP both determine whether a ray has intersected a shape. Intersect returns geometric information about the intersection, whereas IntersectP only determines whether an intersection has occurred.
  5. The Shape class is used to describe a general form of intersection. However, each subclass of Shape must implements its own function to determine whether a ray has intersected it. The Shape class itself has a few other fields in addition to the intersect interface outlined here:
    1. ObjectBoundingBox: Returns the bounding box associated with the Shape in object coordinates
    2. WorldBoundingBox: Returns the bounding box associated with the Shape in world coordinates
    3. CanIntersect: Determines whether the Shape can be intersected by a ray
    4. Refine: If the Shape cannot be intersected, this method allows for the refinement of the Shape into a new group of Shapes that can be
    5. Intersect: Returns information about the geometry associated with the intersection point of the incoming ray
    6. IntersectP: Returns whether the ray intersected the Shape
    7. GetShadingGeometry: Returns shading geometry associated with the geometry returned by Intersect
    8. Area: Returns the surface area of the Shape
  6. Barycentric Coordinates