Project Specification

Background:

The members of this project wants to Improve the ray tracer that was a part of an earlier lab exercise. By doing so the members will learn more about low level graphics programming and building knowledge about graphical implementations.

Problem:

The goal of the project is to implement the following:
  1. Anti aliasing
    There are many approaches to implementing anti-aliasing into a ray tracer but this project will use the method of super sampling. Super sampling involves casting more than one ray on each pixel to determine what colors are within that pixels range and then combining them all and the dividing them by the number of rays that were used for "sampling". There are two different approaches to super sampling. Sampling every pixel on screen which is very intensive computation wise, or just sampling all of the pixels which are on the edge of each object. The latter one is called adaptive super sampling and is not as computation heavy as the per pixel method. Different methods can be used for sampling each of the pixels. This project will use a simple grid for sampling.
  2. Specular surfaces:
    There are a couple of different light models that can be added to a scene. In this part of the project will idealized specular surfaces be added. All surfaces will be given a specular property and reflect the surrounding scene. This will make the surfaces look metallic or mirror like. Each ray that is sent from the camera will be reflected in the same angle it hits any triangle. The amount of time a light ray is reflected on the surfaces will be changeable.

Implementation:

Anti-aliasing and specular surfaces will be added to lab 2 in DH2323. The two functions will work at the same time to display an image. Efficiency will not be taken into consideration. The two problems will be solved individually by the team members. When the two functions is working properly independently they will be combined into one program.

Evaluation:

The goal of the project is to implement the two graphical methods into a functioning program. The users should be able to move around and view the scene from different angles but time efficiency will not be prioritized. The two methods should work in tandem.

Contingency:

If implementing the two methods in tandem proves more difficult than anticipated they will be presented separately. The project members will instead analyze why the two implementation weren't able to cooperate and how the code should have been written instead to work properly.