Milestone Report

This little scene does a good job of demonstrating quite a few of the techniques we've managed to put together so far.

First of all, this scene is Ray Marched in real-time; modelling something like this with rasterization would be quite tedious. Ray Marching lets us implement shadows, featured prominently in this scene, and reflections, which you can observe on the surface of the red sphere. Our lighting is a simple Phong based lighting system as salvaged from the ray-tracing exercises.

Obviously, we've implemented the ability to combine multiple objects together with different materials.

This demo showcases two forms of fractal effects: domain repetition, and a Menger Sponge. We've actually implemented the Menger Sponge as a specific case of a "Kaleidoscopic Fractal", which can be customized in many ways. We've implemented other fractals as well, as we detail later.

You can also see our implementation of Fog; here, an exponential version. This helps a lot to hide the ugliness that far away but complex objects can sometimes have, because of the limited number of steps we take when marching.

Detailed Review

Basic Primitives

We've implemented a variety of basic primitive SDFs, such as spheres, boxes, pyramids, toruses, etc.

Lighting

We've implemented a Phong based lighting system, complete with shadows (not soft yet) and (multiple) reflections.

Fog

We've added in fog to our scenes, with both linear and exponential variants.

Interactivity

You can move the camera around with the WASD keys, as well as Shift and Space, and the mouse lets you orient yourself as well. Scenes animate in real-time, and you can select between different scenes.

Ambient Occlusion

We've added a subtle ambient occlusion effect, by using the number of steps taken as an approximation. The more steps taken, the more complex some surface is, and the less ambient light reaches it.

Fractals

We've experimented with a variety of fractal types, as well as orbit trap coloring. Getting things that look nice and are performant is quite tricky. The Kaleidoscopic fractals, like the menger sponge, have the advantage of being quite performance, while also being able to make very nice fractals.

Schedule

Our schedule has gone according to plan so far, and it looks like we'll be able to accomplish our remaining tasks over the next couple of weeks.