I don't know if this has fallen on deaf ears, or if I failed to explain the problem well enough. So I will attempt again.
I have three machines, therefore three JVM's, three View's and three Canvas3d's that need to work as one to display on a Panoram GVR-120E projection screen. I have already implemented the networking at the Canvas3d level to guarantee the apps are in sync. It was disappointing, however, that I could not use the regular Java3D behavior system to do this, but that is another story...
Here is a top-view diagram of the possible display configurations that we will be implementing.
Diagram A represents the installed display system. The black curve line represents the screen surface. The yellow arrows are the direction of the three projections to the screen. One thing to note about this system is that each channel has a 25 degree overlap to it's neighbors. That is why our software must have perfect sync between views, thus deterministic execution of the behavior system. We do this through networking the frame's changes and swaps
Diagram B shows ONE possible Java3D configuration, where each channel has different view offset, namely a rotation about the origin to the left or to the right for the left and right channels, represented by the green arrows. I have implemented this configuration just fine, however, as anyone who has done this knows, this is not the only way, and there can be a very noticeable "bowing" of the final view, due to the fact that the side views are rotated and not flat as in C. Often this is not a problem for a multi-channel display because even though the bowing occurs, the channel edges still match up perfectly. However, when the display overlaps, they DO NOT match up perfectly.
Diagram C is what I need to create. The left and right channels are called off-axis projections. This is because the view direction does not run down the center of the viewing frustum as show by the green arrow and the blue triangle. The Blue triangle is the desired configuration. I know that this configuration has a great amount of distortion, but it is what we must have because of the overlap issues in B.
Diagram D shows a typical multi-channel display that is flat. In this configuration, again off-axis projections are needed. As a fact of matter, any out-the-window or "fish-tank" VR system uses this technique to create the correct frustum when the view is tracked and not centered with respect to the display system.
Now, I hope this illustrates my problem.
The questions is, how do I set that view's frustum correctly to off-axis?
I tried changing the ImagePlate and setting the view directly using VpToEc()
among many other things with no success. Should I use a "head-tracked"
configuration, even though there will be no head-tracking, to fool the
system.???
?
