Checkpoint 1


I have raycaster that can render images in real time. The rendered images are simple, but work. I have not yet created a set of Test images to use yet, I'll be creating those next week.
I've done some research on the distortion shader used for the Oculus Rift. The distortion used is Barrel Distortion. We can distort an image using the following code.
vec2 Distort(vec2 p)
float theta = atan(p.y, p.x);
float radius = length(p);
radius = pow(radius, BarrelPower);
p.x = radius * cos(theta);
p.y = radius * sin(theta);
return 0.5 * (p + 1.0);
Given a ray we wish to cast to point x,y, we can use the inverse of this function to figure out the new ray we wish to cast. I will be testing this next week to make sure it renders a proper image and then adjusting it to display the correct amount of disortion for use with the OR.

Updated Schedule

Nov 15 - Nov 21: Verify Correctness of Barrel Distortion Model. Modify the Raycaster in order to render distored images for the Oculus Rift. Create test data sets
Nov 22 - Dec 1(Checkpoint 2): Create performance metric. Collect data on distorted raycaster. Collect data on normal raycaster and then distorting the resulting image. Improve efficieny/performance of the Raycaster.
Dec 2 - Dec 12: Work on Final Paper, analyze results, determine what sort of scenes have difficulty rendering on the Oculus Rift, what causes them, and how they can be addressed.

Anticipated Deliverables:

A Ray Caster that renders distorted images for the Oculus rift(directly renders a distorted image instead of distorting an image)
An in class demo of the rendered scenes(able to explore a scene). The class will see the distorted images on the projector, though if time permits we could let people try the headset.
An analysis of the pros and cons of rendering an image in this manner.