> Date:         Wed, 10 Oct 2001 14:31:12 -0500
> From: Alex Terrazas <[EMAIL PROTECTED]>
>
>   The result is that the ColorCube appeared on the screen,
>   flickered several times and then went away.  When I
>   resize the screen, it comes back usually and then
>   goes away again.
>
>   Is this a calibration problem--i.e. my view is drifting away--
>   or is this a bug with my Elsa Gloria card/Java3D--or
>   am I still missing something?  I was not able to get
>   the View to respond to my moving either of the two
>   input sensors--
>
>   I feel like I am a little closer.  I would welcome any
>   advice on this issue.  I am not finding the View model
>   to be as easy as advertised but I think I see the beauty
>   of it after getting over the learning curve.

The view model is pretty complicated and the documentation is somewhat
inadequate, so your difficulty is understandable.  A new utility class,
ConfiguredUniverse, will be available in the Java 3D 1.3 beta release to make
head tracking setups easier.  In the mean time, here are some hints.

Unit test your tracking setup to see if you're getting rational data.  Make
sure the InputDevice implementation's Sensors are generating SensorReads with
matrices that transform local tracker coordinates to tracker base coordinates;
i.e., they accurately describe the 6 degree-of-freedom position and orientation
of your head relative to the tracker base (a point of reference in the physical
world, usually the physical position and orientation of some sort of
transitter/receiver that determines the relative head position).

Set the location and orientation of this tracker base relative to the origin of
each screen you are using.  This is done using the setTrackerBaseToImagePlate()
method of the Screen3D object associated with a Canvas3D.  The origin of the
screen is its lower left corner, with X extending to the right, Y up, and Z out
from the screen.

Set the location and orientation of the center of coexistence relative to the
tracker base, with the setCoexistenceToTrackerBase() method of
PhysicalEnvironment.  With the normal default of NOMINAL_SCREEN for
PhysicalEnvironment's CoexistenceCenterInPworldPolicy, the center of
coexistence locates the center of the nominal screen.  For a 3-screen or
1-screen setup this would usually be the middle of the center or only screen,
and for a 2-screen setup it would usually be the middle of the edge shared by
the two screens.

By default CoexistenceCenteringEnable in View is true, and this automatically
moves the center of coexistence to the middle of the screen, but assumes that
multiple screens are not in use and that the trackerBaseToImagePlate and
coexistenceToTrackerBase transforms are both identity.  This won't be the case
for head tracking so call the setCoexistenceCenteringEnable() method of View
and set it to false.  (Arguably this should be done automatically when tracking
is enabled).

Hopefully that will get you further along without totally immersing you in the
details.

Good luck -- 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".

Reply via email to