Chris Pollett > Students > Jensen

    Print View




    [Sample Images]

    [Final Report (*.pdf)]

    [Source Code (*.zip)]

    [External Repository]


CS 180H Proposal
Spring 2014

Name: Aaron Jensen
Advisor: Dr. Pollett

    I would like to create a radiosity engine that utilizes CUDA programming for lighting calculations.
    The front end of the engine will accept text file descriptions of geometry and lighting from a text file. The output of the engine will be images, in either PNG or JPEG format. There are two secondary applications that will be developed: a simulator that will allow a user to freely walk through the created environment; and an optional simple overhead editor that will produce descriptions of geometry and lighting in text files for input into the engine.

    The first phase of the project will be building a working CPU-based radiosity engine that reads geometry and lighting descriptions from a text file. Geometry will be restricted to quadrilaterals. The file will contain two sections: LIGHTS {} and WALLS {}. Within each section will be a series of KEY : VALUE; pairs terminated by semicolons. Each KEY will be a unique name describing an object. Light and wall VALUES will be four xyz coordinates in counter clockwise order of the format (x0,y0,z0), (x1,y1,z1), (x2,y2,z2), (x3,y3,z3) followed by a fifth triplet defining its color in the format [r,g,b]. No transparency will be supported. These coordinates describe the bounds of a quadrilateral and it's normal. Initial output will be hard coded directly radiosity calculations complete and will be capable of displaying a scene from several fixed camera positions. While this phase is in progress, I will be learning the basics of CUDA programming.
    The second phase of the project will be a modification of the first phase. The radiosity engine will now save the output of the radiosity calculations in either PNG or JPEG format. The hard-coded viewer will be removed and replaced by a separate application that will load images to geometry defined by text the input file. This application will allow the user to walk through the scene. As with the first stage, I will be continuing to learn CUDA programming.
    The third phase of the project will be rewriting the radiosity engine in CUDA. Functionality should remain the same, but a performance increase should be seen.
    The fourth and final stage of the project includes stretch goals. The first is a simple overhead editor that can be used to generate text files for input to the radiosity engine. One proposed function is a random maze generator with random light and wall color placement. Collision detection in the simulator is another stretch goal. Others will be defined as time permits.

Expected Problems and Limitations:
    My primary concern is time management. However, school is and has been my first priority. I have been holding two jobs while going through college. For the past seven years I have been employed as a Worship Leader at a church, managing and running the contemporary music program. For the past three years, I have been working as an Android/Linux developer for a startup company developing a complete signage solution and supplement. While holding these jobs, I have been able to maintain a cumulative GPA of 3.822 and am scheduled to graduate May 2014 with a Bachelors in Computer Science and two minors: Mathematics and Electronics. I hope to overcome any issues that arise with time management through communication with Dr. Pollett on a weekly basis.