Mario Veraart (rioj7++at++fel.tno.nl)
Thu, 5 Nov 1998 13:59:14 +0100 (MET)
I notice that you specify 0.0f for the horizontal FOV.
The man page says that if you specify -1.0f it will compute this value
based on the window aspect ratio
Mario
>
> This required the least change and is backwards compatible.
>
> I also attach a spline to the fov variable and allow a user to change
> it to create a "zoom in/out" effect. Thus I need to maintain as much
> similarity to our older code as possible.
>
> Scott Herod
> scott++at++evt.com
>
> Benedikt Kessler wrote:
> >
> > Hi!
> >
> > Here is just a guess:
> >
> > Probably just the window (or widget) you are using for the pipewindow does
> > not yes exist so that performer can't get the size of the window (you
> > might check yourself using pfPipeWindow::getSize(int *xs, int *ys);). In
> > this case Performer will use the pipe's screen size and compute the aspect
> > according to these sizes.
> >
> > I'm missing the call to pfPipeWindow::open(void);
> > Do you open the window in the draw process?
> >
> > It looks like you should set the FOV of your channel (or call
> > channel->setAutoAspect(PFFRUST_CALC_HORIZ)) after the window has been
> > opened.
> >
> > Bye! Benedikt
> >
> > Scott Herod wrote:
> >
> > > I'm getting a strange error with pfChannel's field of
> > > views. It looks like horizontal FOV are not computed if
> > > the PipeWindow is attached to a X window as in
> > >
> > > float fov = 45.0f;
> > >
> > > // Create and configure a window.
> > > pfPipe *pipe = pfGetPipe(0);
> > > pfPipeWindow *pipeWindow = new pfPipeWindow( pipe );
> > > pipeWindow->setWSWindow( display, XtWindow(_glwidget) );
> > > pipeWindow->setGLCxt( _glxcontext );
> > > pipeWindow->setWSDrawable( display, XtWindow(_glwidget) );
> > >
> > > // Create and configure a pfChannel.
> > > pfChannel *channel = new pfChannel( pipe );
> > > channel->setNearFar( 1.0f, 8000000.0f );
> > > channel->setFOV( 0.0f, fov );
> > > pfCoord view;
> > > view.hpr.set( 0.0f, -90.0f, 0.0f );
> > > float z_distance = winHeight/2 / tanf( fov * (3.1415926/180.) / 2.
> > > );
> > > view.xyz.set( 0.0f, 0.0f, z_distance );
> > > channel->setView( view.xyz, view.hpr );
> > >
> > > It appears that the channel is using an aspect ratio of 1.25
> > > regardless of the size of the window. Furthermore, this is
> > > a change from pf 2.0.4 where the channel could grab the window size.
> > > Can someone verify that aspect ratios are not changed?
> > >
> > > Thanks,
> > >
> > > Scott Herod
> > > scott++at++evt.com
> > >
> > +---------------------------------+----------------------------------+
> > |Benedikt J. Kessler | Silicon Graphics GmbH
> =======================================================================
> List Archives, FAQ, FTP: http://www.sgi.com/Technology/Performer/
> Submissions: info-performer++at++sgi.com
> Admin. requests: info-performer-request++at++sgi.com
>
This archive was generated by hypermail 2.0b2 on Thu Nov 05 1998 - 05:01:40 PST