Assignment Description

For this assignment, I decided to mess with a few different "random" light rays.

  1. A simple light ray that aligned itself with the normal at a random point on the sphere.
  2. A random light ray at a random point on the sphere without considering self-occlusion from the light source.
  3. A random light ray at a random point on the sphere, accounting for self-occlusion by the light source.

*NOTE: All images have been generated with 100M samples.

Results:
Light Ray equals Spherical Normal
Random Light Ray w/o Self-Occlusion
Random Light Ray w/ Self-Occlusion


The random light ray images have a noticeable artifact at the center. This is due to my decision to model the sensor as a three-dimensional object, instead of a rectangle. Since the light is actually in contact with the sensor, my intersection routine fails at that point. Here is an image with the sensor rendered as a two-dimensional object. This corrects the artifact..

Sensor modeled as a rectangle.


I originally implemented this assignment with a quirky distribution for choosing points on a sphere. I randomly chose my latitude and longitude values to construct an x, y, z position. As we all know, area patches decrease as the points approach the poles. Therefore, as you can see from this example, there is a much higher sampling rate at the poles of the light source, than at any other region. Because of this aspect, self-occlusion becomes a noticable issue.

Light Ray equals Spherical Normal
Random Light Ray w/o Self-Occlusion
Random Light Ray w/ Self-Occlusion