Looks good! I would only add that we did address the issue of cards that
share the z-buffer between the left and right eyes.  We added a property
j3d.sharedstereozbuffer.  Setting this to true will force Java 3D
to clear the Z-buffer between renderings of the left and right eyes.
By default this property is set to false on Solaris and true on Windows.

Dan Petersen
Java 3D Team
Sun Microsystems



> Date: Tue, 17 Jul 2001 10:30:31 +1000
> From: Justin Couch <[EMAIL PROTECTED]>
> X-Accept-Language: en
> MIME-Version: 1.0
> To: Dan Petersen <[EMAIL PROTECTED]>
> CC: [EMAIL PROTECTED]
> Subject: Re: [JAVA3D] Stsreo viewing
> Content-Transfer-Encoding: 7bit
>
> Dan Petersen wrote:
> >
> > The FAQ needs to be updated.
>
> That's my problem. The internal version of the FAQ has not yet made it
> to the outside world. If you can read through all the XML, this is the
> current page contents:
>
> <?xml version='1.0' encoding='us-ascii'?>
> <!DOCTYPE FAQ-PAGE SYSTEM "faq-page.dtd">
>
> <FAQ-PAGE title="Stereo viewing">
>
> <entry link="stereo">
> <question> General Stereo Setup </question>
> <answer>
> <p>
> You've probably called <b>setStereoEnable()</b> in your Canvas3D to turn
> on stereo, and nothing has happened.   There's actually a bit more
> you'll
> have to do to set stereo up before you can make that method call.
> </p>
> <p>
> First, you'll need the right hardware: a pair of CrystalEyes glasses,
> and an emitter for a Sun workstation.   There's a port on graphics card
> for the emitter to hook into.  Once you've plugged it in, turn on the
> emitter.
> </p>
> <p>
> Depending on the graphics card you have (Creator3D or Elite 3D), you'll
> need
> to use either the <b>ffbconfig</b> or <b>afbconfig</b> command.  Type
> this
> command at a shell prompt:
> </p>
> <pre>
>     afbconfig -prconf
> </pre>
> <p>
> This will print out the current information about your graphics card.
> Look
> for a line that says <i>Current resolution setting</i> and <i>write it
> down</i>.
> You'll want that information after you've played around with the stereo
> settings.
> </p>
> <p>
> The next thing you'll need to do is kick your X server into stereo mode.
> </p>
> <pre>
>     afbconfig -res stereo
> </pre>
> <p>
> and log out of your current session.  The X server will reset, and
> you'll
> be in stereo mode.  It's probably a lower resolution mode than you're
> already using, so don't be surprised about that.
> </p>
> <p>
> Now you're ready to run your program.  Try:
> </p>
> <pre>
>     java -Dj3d.stereo=PREFERRED HelloUniverse
> </pre>
> <p>
> You should see a double image until you put your glasses on.  When the
> glasses
> and emitter sync up, you'll see the stereo image.
> </p>
> <p>
> To return to the resolution you were working at, use the
> ffbconfig/afbconfig
> <b>-res</b> option and use your previous screen resolution as the
> <b>-res</b>
> argument.
> </p>
> <pre>
>     afbconfig -res 1280
> </pre>
> <p>
> You can see all screen resoluation modes available for your system by
> entering
> </p>
> <pre>
>     afbconfig -res \?
> </pre>
> <p>
> The following information is how to set up stereo for use in your own
> programs:
> </p>
> <p>
> From Kevin Rushforth:<br/>
> In order for stereo to work, the application must create a Canvas3D
> with a stereo-capable GraphicsConfiguration.  This can be done in two
> ways.
> </p>
> <ol>
> <li><p>By calling SimpleUniverse.getPreferredConfiguration</p>
> <p>
> An application that wants to use stereo, if requested by the user of
> the app, can call the getPreferredConfiguration method in
> SimpleUniverse.  The resulting GraphicsConfiguration should be passed
> to the Canvas3D constructor.  The getPreferredConfiguration method
> reads the j3d.stereo property to control whether a stereo visual is
> requested.  The j3d.stereo property should be set to one of
> "UNNECESSARY" (the default), "PREFERRED", or "REQUIRED".  For example:
> </p>
> <pre>
>     java -Dj3d.stereo=PREFERRED HelloUniverse
> </pre>
> <p>
> All of our shipping examples in Java 3D 1.1.2 call
> <code>getPreferredConfiguration</code>.
> </p>
> </li>
> <li><p>By calling getBestConfiguration with a GraphicsConfigTemplate3D
> that
>    requests stereo</p>
> <p>
> An application that wants to enable the use of stereo should construct
> a GraphicsConfigTemplate3D and use some application-specific criteria
> to set the stereo flag to REQUIRED or PREFERRED as desired.  For
> example:
> </p>
> <pre>
>         GraphicsConfigTemplate3D template = new
> GraphicsConfigTemplate3D();
>
>         if (myApplicationWantsStereo)
>                 template.setStereo(template.PREFERRED);
>
>         // Get the GraphicsConfiguration that best fits our needs.
>         GraphicsConfiguration gcfg =
>                 GraphicsEnvironment.getLocalGraphicsEnvironment().
>                 getDefaultScreenDevice().getBestConfiguration(template);
> </pre>
> <p>
> The resulting GraphicsConfiguration should be passed to the Canvas3D
> constructor.
> </p>
> <p>
> Now when you call <i>setStereoEnable(true)</i> from your Canvas3D, you
> should
> get a stereo image.  Calling <i>setStereoEnable(false)</i> will turn it
> back
> off again.
> </p>
> </li>
> </ol>
> </answer>
> </entry>
>
> <!-- ***************** -->
>
> <entry link="pc">
> <question version="1.2 and later">
> My PC Card supports stereo, why doesn't J3D?
> </question>
> <answer contributor="Dan Peterson" email="[EMAIL PROTECTED]">
> <p>
> We tested stereo support using an AccelGalaxy card.  Java 3D supports
> stereo
> by using the stereo API in OpenGL.  We found that some cards required
> a separate extension to be called to enable stereo and so these cards
> are not working.  Once the manufacturers update their drivers to support
> stereo as described in the OpenGL specification then stereo should work
> in Java 3D.
> </p>
> <p>
> We have also determined that some cards do not keep a separate Z-buffer
> per eye.  This leads to an incorrect image for one eye.  This problem
> came as
> a surprise to us but we plan on coming up with a "fix" for this in an
> upcoming release (post 1.2FCS).
> </p>
> <p>
> At the time of writing, from java3d-interest posts, it appears that at
> least
> the following cards do <i>not</i> support stereo viewing.
> </p>
> <ul>
> <li>3dLabs Oxygen GVX1</li>
> <li>3dLabs Oxygen GVX210</li>
> <li>HP FX6</li>
> </ul>
> </answer>
> </entry>
>
> </FAQ-PAGE>
>
>
> --
> Justin Couch                         http://www.vlc.com.au/~justin/
> Freelance Java Consultant                  http://www.yumetech.com/
> Author, Java 3D FAQ Maintainer                  http://www.j3d.org/
> -------------------------------------------------------------------
> "Humanism is dead. Animals think, feel; so do machines now.
> Neither man nor woman is the measure of all things. Every organism
> processes data according to its domain, its environment; you, with
> all your brains, would be useless in a mouse's universe..."
>                                               - Greg Bear, Slant
> -------------------------------------------------------------------

===========================================================================
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