Blending the accumulation buffer into the color buffer


I am playing a bit with the accumulation buffer and right now i am trying to do motion blur.
Well, actually it is very easy to do “full scene” motion blur, but headache is just round the corner.

So, i am now trying to only do motion blur for actually moving objects, so that when the viewer moves the world does not get blurred, too.

My idea was to do it this way:
-render the moving objects
-blur them with the accumulation buffer
-render the world, overriting all previous stuff
-blend the accumulation buffer over the color buffer to add the blur
-render the moving objects again, to get sharp edges

However, it seems not to be possible to blend the content of the ab into the cb, only to copy it.

Any clever idea how to work around that?


I’ve honestly never used the accumulation buffer before, but how about. . .

  1. Render the world to a texture.
  2. Do your accumulation buffer rendering.
  3. Dump the accumlation buffer stuff to the framebuffer.
  4. Render the texture fullscreen using the desired blending parameters.

Yes, that works. Its possible to get the desired effect this way.
The only thing i don´t like about it is, that - on my Radeon - i have to use a standard-sized texture, meaning 1024^2 or even 2048^2 only to store the framebuffer (because i don want to shrink the image.

Does anyone know, if the non-power-of-two-texture extension gets supported in the near future?


According to delphi3d , the Radeon line supports EXT_texture_rectangle, which is an alias for NV_texture_rectangle . I don’t know if that’s helpful at all in this case since they don’t support WGL_NV_render_texture_rectangle . :frowning: