Wednesday, January 26, 2011

Checkpoint #5

For this checkpoint I implemented reflection into my ray tracer as well as a psuedo-BRDF functionality where each surface has a new value associated with it which represents the angle between a vector going straight through the center of a right cone and the face. By perturbing the reflection vector within that cone, surface roughness can be simulated as seen on the metal sphere. I used a low count of 5 rays distributed a the jitter b/c my scene is not very colorful and too many rays result in each pixel simply being supersampled. Also, I forgot to post this in the past but I have multiple lights working as well. Note: only the left sphere is reflecting and doing jittered reflections.

Click the images to see them full-size


No Jitter

Jitter .01 Radians
Jitter .1 Radians

Jitter .3 Radians

ALSO LIGHTS

3 colored lights + .3 Radians Jitter


Wednesday, January 12, 2011

Checkpoint #4

This weeks checkpoint was to implement procedural textures into the ray tracer. As you can see from my last post I have already done this. Any other week, I would have implemented a lot of extras. Unfortunately, my friend Ryan Phillips recently passed away and this week has been rather hectic and emotional for me. And so, to you, my dedicated and numerous readers, I apologize.

Wednesday, January 5, 2011

Ray Tracer Checkpoint #3

After refactoring a majority of my source code and working extra hard I now have a ray tracer which does proper Phong shading, runs in parallel, use procedural textures and can do reflections. For the purpose of this entry I'm simply focusing on the Phong shading. Below is an updated screenshot of my renderer with Phong shading enabled. The image may look different from the previous entry because I tweaked the image size and the locations of the spheres a bit.

Phong Shaded Rendering

Sunday, January 2, 2011

Ray Tracer Check Point #2

Greetings world!

This is an overdue post but I'd like to share the results of my initial rendering. This rendering does not factor in reflections or shading it simply shoots rays from the eye, through the image plane and returns a different color depending on which object it hit. I've also implemented super-sampling to eliminate aliasing in the image. Below are some examples of the same image rendered with varying degrees of super-sampling. It is important to note that an image super-sampled has a exponentially as many initial rays as an image without super-sampling. Click on the images to view them in full 800x600 resolution.


No Super-Sampling (1x)


2x Super-Sampling

3x  Super-Sampling