motion blur in performer

New Message Reply Date view Thread view Subject view Author view

AnitaKishore (kishore++at++electrogig.com)
Wed, 27 Sep 1995 10:42:16 -0700


> I have the impression that you should not use a node's post traversal DRAW
> callback since the scene hasn't been completely drawn yet. You should wait
> until everything is drawn, i.e. the moving object and the static background.
I
> suggest to use a channel DRAW callback to accumulate the image.
>
> static void drawFunc(pfChannel* chan, void* data)
> {
> static float f = 0.0;
> chan->clearChan();
> pfDraw();
> acbuf(AC_MULT, .88);
> acbuf (AC_ACCUMULATE, 1.0);
> f = 0.88*f + 1.0;
> acbuf (AC_RETURN, 1.0/f);
> }
>
> > The object is translated to certain distance through the DCS.
> >
> > With this setting the inside of the object is blurred, but it doesn't
> > have a trail. The call to acbuf (AC_ACCUMULATE, 1.0) destroys the previous
> > contents of the acbuf and hence the trail is lost.
>
> Here, I suspect the moving object is drawn before the static background. With
> the node's post DRAW callback, you end up blurring the moving object on a
black
> background. Later, when the static background is drawn, it erases the trail
of
> the object.
>
> Hope it helps you...

Bernard,

        The above suggestion works great! Thanks a lot.

No idea about what I did correctly today, but all calls from the
DRAW process callback are working (which were not so before)! Though
the use of "f" in AC_RETURN call doesn't make any difference, with
or without it.

So thanks once again for your help.

-anita

-----------------------------------------------------------------------------
Anita Kishore
kishore++at++electrogig.com
-----------------------------------------------------------------------------


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:51:54 PDT

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.