Matthew Tippett wrote:
> Hi,
> 
> I have been wrestling with this for a few weeks now.  As some of you are 
> aware, I am slowly preparing a new multi-head demo with around 8 GPUs in 
> it (so up to 16 heads).
> 
> The new camera support is great, but there are some problems with the 
> way the frustums work.
> 
> My understanding is that the fundamental controls are for a direction 
> for the camera.  With large numbers of monitors this begins to fall 
> apart.  The view frustums will overlap when you don't create an offset 
> and begin to creat monitors in both the horizontal and vertical 
> directions.  With offsets you will have to stack the views on top of 
> each other and in theory get the bottom of one frustum to align with the 
> other, but then you end up having visual issues since the cameras are 
> separate.
> 
> So what I would like to be able to do is take the layout of the cameras, 
> determine their angles to the camera, and define a frustum that has a 
> non-orthogonal face.
You can't have a frustum with a non-orthogonal face unless you render to a 
texture and project it, which we don't do. Actually, you don't want to do that 
unless you're projecting the image unto a screen. OSG does have some builtin 
support for rendering on domes and such, but I digress.

What you need to do for each screen is determine the direction from the 
eye-point to the plane containing the screen and encode that in the <view> 
parameters of the camera for that screen. Then you need to determine the 
frustum 
dimensions, which don't need to be symmetric, that place the screen properly in 
that plane.
> 
> The first camera code that Tim released seemed to do this (which meant 
> there was some visual quirks for monitors far out to the sides (like 
> verticals being at angles and so on), but for the person sitting in 
> front of all the screens it looked about right.
> 
> Are there any other "magic" options that would allow me to get to that?  
> (7+9 is my current plan).
Not much magic other than getting out a tape measure and protractor. It might 
help to build a model of your rig in Blender or another 3D modeling program and 
make measurements of the model.

You could also simplify your geometry by arranging the screens in a cylinder 
and 
following the curved monitor example in README.multiscreen.

Tim

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to