views:

455

answers:

1

Hello,

I'm trying to achieve a motion blur effect in my OpenGL application.

I read somewhere this solution, using the accumulation buffer:

 glAccum(GL_MULT, 0.90);
 glAccum(GL_ACCUM, 0.10);
 glAccum(GL_RETURN, 1.0);

 glFlush();

at the end of the rendering loop.

But nothing happens... What am I missing ?

Additions after genpfault answer:

Indeed I did not asked for an accumulation buffer when I initialized my context.

So I tried to pass an array of attributes to the constructor of my wxGLCanvas, as described here: http://docs.wxwidgets.org/2.6/wx_wxglcanvas.html :

int attribList[]={ WX_GL_RGBA , WX_GL_DOUBLEBUFFER , WX_GL_MIN_ACCUM_RED, WX_GL_MIN_ACCUM_GREEN, WX_GL_MIN_ACCUM_BLUE, 0}

But all I get is a friendly Seg fault. Does someone understand how to use this ?

(no problems with int attribList[]={ WX_GL_RGBA , WX_GL_DOUBLEBUFFER , 0})

+1  A: 

Make sure to ask for an accumulation buffer when you request an OpenGL context from your windowing system. You probably won't get one by default.

genpfault
Hello, see my additions in the original question. Thank you for the answer :)
Klaus