Version 001.018: Test Scene

Running at 1600 by 900 resolution on a modest system. The performance is unfortunately halved by the video capture software I use.

The scene comprises a classic test scene consisting of a mirrored sphere and a glass sphere inside a box with blue, red, and white walls.

Whilst the scene shows off the optics nicely it is immediately apparent that the frame rate is much lower than in my previous video, to the point where it becomes a bit of a stretch to call the program interactive.

The lower frame rate is due to two reasons: 1.) The video capture software I use unfortunately halves the frame rate. 2.) Most of the time all of the rays are interacting with objects, as opposed to the previous video where most of the rays hit nothing at all, which again about halves the frame rate.

Another thing that you may have noticed is that the reflection of the glass sphere in the mirrored sphere is almost completely black. That is because I have a maximum scattering depth of 3. This means that the program does not simulate sufficient scatters to bounce rays off the mirrored sphere through the glass sphere and off the blue wall to the light source.

The frame rate problem is not as much of a stumbling block as it might appear. I suspect my algorithms could be made more efficient in more than one way, and also I suspect the way I am implementing diffuse lighting at the moment is slower than the way I plan to implement diffuse lighting in the future.

In my next version of the project I will either increase the scattering depth without decreasing frame rate, or I will make my algorithms more efficient in order to improve the frame rate, probably the latter since the frame rate is a more obvious issue than the scattering depth.


Version 001.017: specular scattering, diffuse reflection, and shading

Running at 1600 by 900 resolution on a modest system.

The scene comprises a spherical light source (treated as a point light), a glass ball, a specularly and diffusely reflecting box (approximating a very shiny plastic box for example), and a diffusely reflecting box (approximating a paper cube for example).

The next step will be to compose a better test scene.