Real-time ray tracer

Here are a few images from my real-time raytracer (taken on a 900 MHz Athlon):

It supports temporal supersampling, where only a fraction of the pixels are rendered in any given frame, so the image is rendered at interactive rates with degraded quality when being moved, but it converges to an optimal solution if the camera is left alone for a second or so (not enabled on these pictures).

I intend to add adaptive sub-sampling to increase speed without much loss in quality, and as an extension, the level of subdivision can be increased when the camera is still. This should give the speed advantages of sub-sampling without the problems in static images (missing small objects), although it will still have aliasing in animation if an object projects to something smaller than the initial grid resolution and falls fully inside of a grid cell.

It currently only supports spheres and planes, another area for expansion.

Note: The scene files are from an computer graphics course I saw online a long time ago, but I don’t remember exactly where they came from. If anyone has contact information, please let me know and I’ll add it here.

VR Pong

VR Pong was developed for Engineering Week 2003 at the University of Missouri – Columbia . Every year, about one thousand students of all ages (K-12) come to look at exhibits at the Engineering department during E-Week.

A stylish shot of my arm playing

We had just set up the Computer-Human Interaction Laboratory and needed to put some exhibits together that could be enjoyed by most students, so I decided to do something with some Polhemus position sensors. It ended up being a big hit, and we had problems keeping the students moving through because everyone wanted a chance to play.

VR Pong is designed to be played by two people at once, one person with their right hand, and another with their left hand. Each player looks at their own computer monitor and sees a view from one end of a rectangular corridor. The position of their hand determines where the paddle on the screen is positioned, and each player attempts to score against the other by knocking the ball past their paddle. The game doesn’t use the touch sensors embedded in the gloves, they were used because it was convenient.

Magnetic tracker and gloves

Chilik Screen Saver

Chilik is similar in concept to Nullsoft’s excellent AVS plugin for Winamp, extended to 3D. It presents a tree-view of a scene graph, where the user can insert or move different models, special effects (such as particle systems), or scene modifiers (blurs, clones).

The screen saver aspects of the program include saving/loading individual scene trees, an interactive preview of the rendered scene as it is edited, and sequencing options (such as which scenes to use and the transition mode between them).