problem with multiple windows

New Message Reply Date view Thread view Subject view Author view

Patrick Melody (melody++at++nimitz.ait.nrl.navy.mil)
Fri, 29 Jan 1999 18:13:26 -0500 (EST)


I am having a problem with multiple window displays on an Onyx/IR. I want
to set up multiple windows (essentially one on each display monitor)
providing a wide field of view. Each window has 3 channels: mono, left
eye, and right eye. I attach the left and right to the mono, forming a
channel group for each window and appropriately enable draw traversals to
get stereo or mono viewing (we want to dynamically change this). The side
by side mono views should form a wide angle view of our scene, so as the
view changes I update each window's mono channel appropriately. The
problem is that, although this sort of works, the different windows get
out of sync with each other when the camera is moving. Some windows
viewpoints will lag others, destroying the seamlessness of the panorama.
As camera movement slows and stops, the window views come back into synch
with each other. More complex scenes show worse lag than simpler ones.
It doesn't matter if I use multiple pipes or just one. (Pipe 0 has 2
monitors, pipe 1 has a single monitor.) It is almost as though each
window is getting slightly different camera positions, but I move the
camera by putting its new position into a pfCoord called coordinates_ and
then calling the following routine, followed by a pfFrame().

void Camera::updateAllChannels()
{
    pfMatrix camView, chanView;

    // get our current camera coordinates stored in coordinates_
    camView.makeCoord(&coordinates_);
     
    // set the view matrix of each mono channel.
    // channelDefs_ is an STL vector of structs, one for every pfChannel
    for (int i = 0; i < channelDefs_.size(); i += 3) {
        // masterWindow_ is the index of the main window's mono channel.
        chanView.preRot((masterWindow_ - i/3)*fov_, 0.0, 0.0, 1.0, camView);
        channelDefs_[i].theChannel->setViewMat(chanView);
    }
}

Does anyone have any ideas? I don't think its a genlocking problem
because perfly doesn't exhibit this behavior. Thanks for any help.

- Patrick Melody
ITT Systems & Sciences ++at++ Naval Research Lab


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2.0b2 on Fri Jan 29 1999 - 15:13:43 PST

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