One useful effect of making the framebuffer explicit is that it enables the use of multipass algorithms, in which the same primitives are rendered several times. One example of a multipass algorithm employs an accumulation buffer[3]: a scene is rendered several times, each time with a slightly different view, and the results averaged in the framebuffer. Depending on how the view is altered on each pass, this algorithm can be used to achieve full-window anti-aliasing, depth-of-field effects, motion blur, or combinations of these. Multipass algorithms are simple to implement in OpenGL, because only a small number of parameters must be manipulated between passes, and changing the values of these parameters is both efficient and without side effects on other parameters that must remain constant.