Superfluous Matter
No Title

Well, I finished my ray tracer. By which I mean today is the due date. It turned out pretty well I think, but I won't know for sure until tomorrow. I created a series of web pages for the presentation and they are posted on this site. I've added a link to my menu above, or you can click here. Be sure to check out the movie in addition to all the images, and, if you are so inclined, the documentation gives a fairly thorough technical description of a lot of the stuff.

Here is my final scene, I'm pretty happy with the modelling of it, but I never got the lighting quite right. There are area lights in each of the lamps over the pictures, but they illuminate too much of the scene. There is also another area light located on the ceiling. The rendering of this image took a very very long time.

Final Scene
Final Scene
No Title

So I think bump mapping is working, which means that I just have to create a unique scene, do a ton of documentation and create a presentation for the whole mess. Otherwise I'm mostly done my project! Sweet!

bump mapping example
bump mapping example
No Title

I did soft shadows and planar light sources today. The following image has a square light source (represented by the plane at the top of the image) and uses 25 shadow rays per intersection point to determine shading.

soft shadow
soft shadow
No Title

I finished off my noise-based solid textures, they turned out pretty well. Here are some samples. The first is just noise, the second is wood grain and the third is marble.

noise solid texture
noise solid texture
wood solid texture
wood solid texture
marble solid texture
marble solid texture
No Title

I've been working on texturing my primitives lately and have succeeded in completing bitmap texturing and simple solid texturing. I still have to create "interesting" solid textures using Perlin noise; hopefully that will work out.

Here are some sample images, first of bitmap texture mapping, then of a simple solid texture:

simple bitmap texturing
simple bitmap texturing
simple sollid texturing
simple sollid texturing
No Title

Reflection and refraction are working properly now. Refraction took a lot longer than reflection to get right (since reflection only took 10 minutes). I had to adjust some colour stuff so the earlier reflection image I posted is only mostly correct. Here are two sample images demonstrating reflection and refraction:

Refraction test
Refraction test
Reflection test
Reflection test
No Title

I did another objective today, reflection. It was pretty easy, here is a sample image:

reflection example
reflection example
No Title

It's been a while since my last ray tracer posting, so last night I stayed up until 2am creating scenes for new images. They arn't just for my website, they will also be used to demonstrate my new features to the prof and TAs.

I have added extra primitives (plane, cylinder, asymmetric cylinder -- different radius at top and bottom, cone, and torus) and I have implemented the constructive solid geometry operations union, intersection and difference. This means that I can take my base primitives and put them together in interesting ways. Like take part of a cube out of a sphere to get a hemisphere. These two objectives greatly extend the modeling capabilities of my ray tracer.

Here are the sample images showing the new features:

New primitives
New primitives
Simple CSG
Simple CSG
Nested CSG
Nested CSG
Complex CSG
Complex CSG
No Title

Another month, another ice cream cake. This time we got some writing on it, mainly to get some more sweet sweet gel icing. We also decided that something normal would be too...normal. So here we have the first gay-marriage friendly ice cream cake from Dairy Queen:

July's Ice Cream Cake
July's Ice Cream Cake
No Title

I am extending my raytracer for my final graphics project, and today I completed my first objective: hierarchial bounding volumes. This objective gives a significant performance increase, as demonstrated by the following image. It contains 16 sets of 1000 meshs (each individual mesh is a tetris cube similar to the ones I used in my final image for assignment four; the mesh has 26 faces). So doing some quick math, there should be 416000 faces in this scene, and since it is 512x512 there are 262144 primary rays sent into the scene. There are also 107177 shadow rays cast. That's a lot of stuff, but it only takes 155 seconds to render this image with my new feature implemented. With the feature turned off (or non-existant), it takes 10 hours and 32 minutes to do the same image.

This image is rendered with anti-aliasing turned on, so it takes longer to render than the times given above.

lots of cubes
lots of cubes

Another interesting statistic for the non-antialiased version of this image is the fact that in the bounding volume render, each ray is only tested against an average of 1.28 primitives, versus 16000 (all of them) in the non-bounding volume render. That's a huge difference and is what accounts for the huge difference in speed.

2005-06 | 2005-08