Now, by now, you are probably asking, if we generate that many frames why don't we just show them? There are various reasons for this. First of all, not all monitors support these high frame rates (4 sub images times 60 Hz = 240Hz!). On top of that, we have the fact that not every brain starts to blur images at the same moment (as explained above), all people however perceive pre-blurred images in a very similar way. Another fact is that this blur is only needed for moving objects. If only a car is moving we don't need to re-render the whole scene, we just need to redraw the car (so there is a performance advantage). Another advantage of combining frames on the 3D accelerator is that various "other" special effects can be achieved by making small modifications to the system. Two examples of these effects are Depth of Field and anti-aliasing.

Depth of field is what most people know as focus. If you have used a photo camera you might be aware that you could focus at different depths into a scene. For example, if you try to take a picture of your mother who is standing in front of a crowded background. By adjusting the camera you can focus on your mother or on persons in the background. This effect can be seen as something very similar to motion blur. After all, one is "blurred" through motion while the other is "blurred" because of a lack of focus.

anti-aliasing is also related to these effects in such a way that anti-aliasing can be seen as a combination of multiple frames that each add detail. The combination of those frames is thus a blurred version of several sub frames. More details are given in the following section. In short anti-aliasing can be seen as sub-pixel level "blurring" (mixing).

Actual Multi-Buffer System


The basic idea behind Multi-Buffer systems has been described in the previous section, starting from the idea of motion blur. We suggested that motion blur can be obtained by rendering multiple positions of the object and combine these multiple results into one to form a motion blurred final image.

We, thus, need a certain number of buffers to render to, and we also need some way to combine that buffer to form the final image. For now, we will assume that we just have 4 buffers somewhere in memory and that these buffers are combined on the fly when we display them on the monitor.

The motion blur effect can be achieved by rendering the scene multiple times. Each scene is written to a separate buffer. Objects that need to be motion blurred have to be moved to various positions in the 3D world to represent the various positions present in the time interval we are trying to display (for example, 1/30th of a second). At the end we have 4 buffers each containing the scene but at different points in time. The 4 scenes represent samples in the 1/30th of a second interval. If we have a car moving from left to right we, thus, have buffers containing a car that gradually moves more to the right in each subsequent buffer. The result shown on the monitor is a combination of the 4 buffers. We simply combine them using a simple weight system (the weight determines how well each buffer is visible, a heavy weight will make a buffer more important and thus better visible).