Kent Watsen (watsen++at++netcom.com)
Wed, 11 May 1994 12:24:20 -0700 (PDT)
My best guess is to initialize the ACBUF after
calling pfConfig() with the following commands:
acsize(16);
gconfig();
acbuf(AC_CLEAR, 0.0);
I then establish a swap function callback with the
following command after initializing my pipe with
pfPipeSwapFunc (pipe, swapfunc).
Swapfunc() is call once per frame just after the
scene has been rendered into the backbuffer. The
swapfunc() makes the appropriate ACBUF calls and
the calls swapbuffers() as follows:
void swapfunc (pfPipe *pipe)
{
// MOTION BLUR
acbuf(AC_MULT, 0.5);
acbuf(AC_ACCUMULATE, 1.0);
acbuf(AC_RETURN, 1.0);
swapbuffers();
}
I acheive the desired effect but my frame rate drops
to less the one frame every five seconds! I have done
some experimentation and have determined that the
larger my viewport the slower the ACBUF takes.
The standard GL motion blur demos show much greater
frame rates being achieved...but how? The fundamental
difference in the codes is that I'm using Performer
to do my rendering into the backbuffer rather then GL.
It looks like all of the processing is being done in
software, even though I am making the acbuf() calls.
Does anybody have a clue as to what I'm doing wrong.
Also, is the accumulation buffer a peice of hardware
sitting in the RE2 pipeline or is it just another
abstraction of the 40MB video memory included.
Kent Watsen
Watsen++at++netcom.com
This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:50:16 PDT