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