Re: multichannels & DVR

New Message Reply Date view Thread view Subject view Author view

From: Angus Dorbie (dorbie++at++sgi.com)
Date: 06/21/2000 07:12:23


OK, here goes.

The Panoram displays I've seen set up tile the images on the screen with
a distortion correction pattern for a 2D layout showing the whole
desktop blended correctly with 25% edge overlap instead of a corrective
mapping for 3D viewing.

This means that you can simply overlap channels the way you have done in
your display. When you overlap the channels there is no difference
between that setup and a single large frustum asumming you have
asymmetric left and right channels.

When you DVR the overlap is no longer the same as a single frustum would
be and there are missmatches due to the resized overlapping channel
edges. There are two solutions. The first solution is create the
channels in left to right order (to make sure the channels on the right
are on top of the channels on the left) and make sure that the resize in
X is AT LEAST enough to undershoot the overlap to avoid corruption in
the blend region on the right of the left hand channels, i.e. a DVR
scale in x of at lease 960.0/1280.0. So resize is either 1.0 or less
than 960.0/1280.0. The other solution is to NOT overlap the video
channels, instead have a bigger desktop but with non overlapping video
and a 3 non overlapping viewports each 1280x1024.

This will not look as nice when you want to use your desktop for 2D work
because there is no actual framebuffer overlap and the 2D blend won't
work.

One other solution is to only DVR along the Y axis, and keep the X DRV
to 1.0.

Another observation, although your video overlaps, there is no need to
overlap the pfChannels, you are wasting fill performance. I would
suggest a different setup where you either have a single pfChannel over
the entire desktop (DVR will not be possible but you'll get back about
1/4 more fill performance from the pipe, OR have 3 channels the way you
do now but you abutt their edges. The latter could technically DVR with
the same minimum size caveat I mentioned earlier provided the channel
edge is the same as the video origin but performer couldn't correctly
cue the resize for viewport and video, it could be done using the vc
calls but I wouldn't advise you try. So, keep everything as it is and
use glScissor calls in the channel draw callbacks to save drawing those
overlapping fragments and wasting all that fill performance in the
overlap region. You want to trim the right hand edges of the left hand
channels.

One final suggestion, it might be possible to adjust the distortion
pattern on the display for geometrically correct 3D viewing and non
overlapping channels. DVR would work but as with the earlier non
overlapping mode, the 2D desktop wouldn't edge blend correctly.

Cheers,Angus.

Mike Stephens wrote:
>
> Hi pfFolks,
>
> in a galaxy far far away there was an onxy2 with iR graphics which drives a
> large display (specifically a Panoram system.).
>
> We have the option (dg5?) that gives us the three hardware video channels
> needed. The irCombination file is set up so that all channels are
> 1280x1024 but the origins are chan0: (0,0) chan1: (960,0) chan2: (1920,0)
> so that the hardware channels are overlapped for the panoram to blend in
> these regions. (ascreen that is 3200x1024)
>
> i am working on a pfApp that i want to use the DVR capabilties of the iR.
>
> my app has one pfPipe, one pfPipeWindow, three pfPipeVideoChannels and 3
> pfChannels. the pfChannels are in a channel group with default share mask.
> i didn't do anything but create the PipeVideoChannels and add them to
> the PipeWindow; then made the pfChannels and setPWinPVChanIndex for each..
>
> the viewports of the channels have been done two different ways (tiles
> and overlapped) with essentially the same outcome. for learning
> purposes, i set the DVR mode to manual and interactively set the area
> scale. when i scale down (as would be done for a high stressed
> scene/view) all the channels appear to be "doing the DVR thing" but the
> channels no longer appear seamless.. more to the point, there is left
> over garbage from previous frames in some regions of the channel.
>
> it is my understanding that the channel should draw the scene as before
> but with a scaled down viewport to lessen the pixel fill load and, on display
> the iR will scale up the image so that the drawn image is the size of the
> original viewport.
>
> Additionally in the overlapped viewports the channels occlude the
> channels drawn before. is there a way to keep this from happening?
>
> i see the DVR affecting all three channels because if i draw the channel
> stats the stuff draw by this are scaled up & down (lines get fatter etc)
> so i believe that it is "on" and functioning on all 3 channels.
>
> will this idea work?
> i am doing something wrong?
> is there something i need to do yet?
>
> is this idea so screwed up that i should be shot? :)
>
> any and all help is appreciated... i am treading water pretty hard here!
>
> l8r.
>
> mike
> -----------------------------------------------------------------------
> List Archives, FAQ, FTP: http://www.sgi.com/software/performer/
> Submissions: info-performer++at++sgi.com
> Admin. requests: info-performer-request++at++sgi.com

-- 
For Performer+OpenGL tutorials http://www.dorbie.com/

"In the middle of difficulty lies opportunity." --Albert Einstein


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Wed Jun 21 2000 - 07:12:44 PDT

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