> Date: Fri, 21 Jan 2005 22:48:41 +0800 > From: NUMI Visitor NMIV22 <[EMAIL PROTECTED]> > > We use a crystaleyes active stereo glasses to view the stereo > images. Wearing the glasses I notice that whenever I shift my physical > head either in the -X the map or the entire stereo image warps or > shifts in the +X direction vice versa. Has anyone encountered such > problems before? If you did how did you overcome the problem?
Are you using head-tracking hardware? If not, then your observations are completely normal. Static stereographic pairs are only valid from *one* point of view. This is true of any non-head tracked stereo viewing system which uses stereo pairs as opposed to holographic or volumetric rendering systems. In order to get correct stereo pairs from all points of view, you have to have some way of telling the renderer where your eyeballs are with each frame and every movement of your head, so that the renderer can compute the projection matrices which correspond to your current position. That's where head-tracking hardware comes in. In the absence of such facilities, the renderer has to generate the projection matrices from a nominal head/eye position. If you've used the view model defaults as supplied by Java 3D, then that nominal position is with your nose centered in the display canvas (actually the midpoint of the line going between your pupils). The standard defaults are for an interpupilary distance of 6cm. You should view the image at the physical Z distance you specified for the physical eye; normally, this is computed to subtend an angle of 90 degrees with the edges of the image canvas (via the RELATIVE_TO_FIELD_OF_VIEW eyepoint policy). In a non-stereo viewing situation the actual position of your head is not so important; we're used to seeing flat projections of 3D objects from oblique angles and compensating for the distortions (nobody is particularly bothered by looking at a flat photograph of a building from an oblique angle). But in stereo the effect of oblique projections is very pronounced. Still, the distortions you're reporting seem pretty extreme, and are probably due to the non-standard view model settings you're using. Try using an interpupilary distance that actually corresponds to reality, and scale/position your model so that it fits in the actual physical view frustum formed by your center eye position and the edges of the image canvas. If you want to see the normal sort of stereo image distortions you can expect with the standard view settings, just run any of the Java 3D example programs (shipped with the SDK) in stereo mode. Try running ObjLoad with the galleon.obj file and setting the Java runtime parameter for stereo on the command line: java -Dj3d.stereo=PREFERRED ObjLoad.obj Some framebuffers only have one Z buffer and share this between the left and right eyes. If you are experiencing problems using stereo try the following property: java -Dj3d.stereo=PREFERRED -Dj3d.sharedstereozbuffer=true ObjLoad.obj For more information and a semi-tutorial on the Java 3D view model, read the source code to com.sun.j3d.utils.universe.ViewInfo. Hope that helps, Mark Hood =========================================================================== To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff JAVA3D-INTEREST". For general help, send email to [EMAIL PROTECTED] and include in the body of the message "help".