3 channels and pfEarthSky

New Message Reply Date view Thread view Subject view Author view

From: Anthony Bavuso (a.t.bavuso++at++larc.nasa.gov)
Date: 11/22/2000 10:43:27


I am having problems with using pfEarthSky in three channels. I have read
through the archives and found a similar problem to mine in 1999 with the
subject 'Whatever happened to "Earthsky with 3 channels"' But I did not
find a good solution that I can use.

I am displaying an out the cockpit terrain database scene on 3 channels on 3
pipes on an Onyx2 each channel having a 40 degree field of view and when
combined has a total of 120 degree field of view. The 0 channel is on the
left, the 1 channel is the center, and the 2 channel is on the right. The
channels are in a channel group with channel 1 as the master and channels 0
and 2 and slaves. My display projectors are all tiled 90 degrees for
hardware reasons so I use pfChannel::setViewOffsets to offset each channel
in roll and heading.

ChannelNumber HeadingOffset PitchOffset RollOffset
0 (left) 40 0 -90
1 (center) 0 0 -90
2 (right) -40 0 -90

When I share a common pfEarthSky set to the master channel, I observer the
following: the sky on the left channel is black, the sky on the center
channel is correct, and the sky on the right channel is deep blue.

To me it looks like what is happening is that the pfEarthSky performs the
view offset rotations in a different order than the pfChannel applies them
for the eyepoint. It looks like the pfEarthSky first performs the roll
rotation, then performs the heading rotation. Which explains why on my left
channel I am rotated sideways in roll and then down in heading to see only
black. On the right channel I am rotated sideways in roll and then up in
heading to see the deep blue sky of the pfEarthSky model near the top of the
sky.

My guess is that the pfEarthSky object does not directly use the pfChannels
offset view matrix but instead uses the pfVec3s set by
pfChannel::setViewOffsets(pfVec3& xyz, pfVec3& hpr) to compute an offset
view matrix, but it performs the hpr rotations in a different order.
Unfortunately I cannot verify if my guess is correct. If I was given the
ability to set the pfChannels view offset matrix directly I could test this
theory, but strangely pfChannel does not have a setViewOffsetMat method.

Can anyone who has the source code of pfEarthSky available to them confirm
or dis-confirm this theory?

Based on the suggestions from the archive article I tried unsharing
pfEarthSky, and setting each channel's earthsky individually. I tried
having three different earth sky models and setting each channel's earth sky
individually. Each time the results observed were the same as described
above.

Any suggested solutions? I know one solution would be to manually compute
the offset view matrix for each channel and set it with
pfChannel::setViewMat which I believe would solve the problem. But that
solution takes away almost all of the convenience of sharing channels in a
channel group. Any other suggestions?


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Wed Nov 22 2000 - 11:21:47 PST

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