Hi Kelvin:

Thank you for your help.  I tried the code you sent to
me.  I saw the left red cone only. I got the error
message as following.

pureimmediatestereo.PureImmediateStereo
Stereo is not support, you should only see the left
red cone.

I am using windows 2000, WinFast GeForce2 MX DH Pro
card (dual head) with the driver of Win2K_12.41, which
was patched with SoftQuadro.  I tried several
different drivers with or without being patched but
could not get the stereo image working.  Could you
please give me further instruction what might be wrong
on my side?  I got this program working on this card
bafore Christmas and on another GeForce Card which has
only one head. I do not know why it does not work now.


Thank you for your kind help!



 --- Kelvin Chung <[EMAIL PROTECTED]> 寫道:> Hi,
>
>   Stereo config did not set correctly in Canvas3D,
>
> Replace the last statement of
>
>   GraphicsConfigTemplate3D g3d = new
> GraphicsConfigTemplate3D();
>   g3d.setStereo(GraphicsConfigTemplate3D.REQUIRED);
>    canvas = new
>
Canvas3D(SimpleUniverse.getPreferredConfiguration());
>
>
> by
>
>       GraphicsConfiguration config =
>
>
GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getBe
> stConfiguration(gct);
>         canvas = new Canvas3D(config);
>
> There is no need to set
>  gc.setBufferOverride(true);
> every frame, only one time is good enough.
>
> Attach is an example using Stereo in PureImmediate
> mode
> correctly.
>
> You also need to explicitly handle shared stereo z
> buffer
> in PureImmediate mode (which is already take care in
> retained mode) and set property
>
> -Dj3d.sharedstereozbuffer=true
>
> for some PC card (false under solaris)
>
> Thanks.
>
> - Kelvin
> -------------------
> Java 3D Team
> Sun Microsystems Inc.
>
>
>
>
>
>
> >Delivered-To: [EMAIL PROTECTED]
> >MIME-Version: 1.0
> >Content-Transfer-Encoding: 8bit
> >Date: Fri, 15 Feb 2002 13:45:12 +0800
> >From: Guang Bin Liu <[EMAIL PROTECTED]>
> >Subject: [JAVA3D] Help for rendering
> >To: [EMAIL PROTECTED]
> >
> >Hi Friends:
> >
> >The attached is a demo which shows the problem I
> have
> >met recently.  I render two geometries to left /
> right
> >eyes separately. To get things simplified, in this
> >demo  I used two ColorCubes (different size).
> >However, when the program is running, only the
> first
> >ColorCube can be seen.  The second one cann't.
> >(Comment off the first one will result in a black
> >screen).  I used the same method of rendering last
> >year which worked very well.  I do not know why
> this
> >problem happened now. Can any one please give me a
> >suggestion about how to solve this problem?  Thank
> you
> >a lot!
> >
> >
> >
> >
> >=====
> >Guang Bin Liu
> >VTHRC
> >University of Queensland
> >Australia
> >Phone:  61 7 3365 4072
> >Fax: 61 7 3800 5268
> >
>
>_________________________________________________________
> >Do You Yahoo!?
> >登記免費的 @yahoo.com 中文電子郵件 @
> http://chinese.mail.yahoo.com
> >Get your free @yahoo.com address at
> http://chinese.mail.yahoo.com
> > /*
>  *
>  *    "@(#)PureImmediateStereo.java 1.2 01/12/05"
>  *
>  * Copyright (c) 1996-1998 Sun Microsystems, Inc.
> All Rights Reserved.
>  *
>  * Sun grants you ("Licensee") a non-exclusive,
> royalty free, license to use,
>  * modify and redistribute this software in source
> and binary code form,
>  * provided that i) this copyright notice and
> license appear on all copies of
>  * the software; and ii) Licensee does not utilize
> the software in a manner
>  * which is disparaging to Sun.
>  *
>  * This software is provided "AS IS," without a
> warranty of any kind. ALL
>  * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS
> AND WARRANTIES, INCLUDING ANY
>  * IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR
> A PARTICULAR PURPOSE OR
>  * NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND
> ITS LICENSORS SHALL NOT BE
>  * LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A
> RESULT OF USING, MODIFYING
>  * OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES.
> IN NO EVENT WILL SUN OR ITS
>  * LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT
> OR DATA, OR FOR DIRECT,
>  * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR
> PUNITIVE DAMAGES, HOWEVER
>  * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
> ARISING OUT OF THE USE OF
>  * OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS
> BEEN ADVISED OF THE
>  * POSSIBILITY OF SUCH DAMAGES.
>  *
>  * This software is not designed or intended for use
> in on-line control of
>  * aircraft, air traffic, aircraft navigation or
> aircraft communications; or in
>  * the design, construction, operation or
> maintenance of any nuclear
>  * facility. Licensee represents and warrants that
> it will not use or
>  * redistribute the Software for such purposes.
>  */
>
>
> import java.applet.Applet;
> import java.awt.*;
> import java.util.*;
> import java.awt.event.*;
> import com.sun.j3d.utils.applet.MainFrame;
> import com.sun.j3d.utils.universe.*;
> import com.sun.j3d.utils.geometry.*;
> import javax.media.j3d.*;
> import javax.vecmath.*;
>
> /**
>  * Pure immediate mode stereo example program for
> stereo. In pure
>  * immediate mode, the renderer must be stopped on
> the Canvas being
>  * rendered into. In our example, this is done
> immediately after the
>  * canvas is created. A separate thread is started
> up to do the
>  * immediate mode rendering.
>  */
> public class PureImmediateStereo extends Applet
> implements Runnable {
>
>     // Set this to true when the graphics card use
> shared z buffer
>     // in stereo mode.
>     public static String defaultSharedStereoZbuffer
> = Boolean.TRUE.toString();
>
>     private boolean sharedStereoZbuffer;
>     private boolean stereoSupport;
>     private Canvas3D canvas;
>     private GraphicsContext3D gc;
>     private Shape3D leftConeBody, rightConeBody;
>     private Shape3D leftConeCap, rightConeCap;
>     private Transform3D cmt = new Transform3D();
>     private Vector3f leftTrans, rightTrans;
>
>     // One rotation (2*PI radians) every 6 seconds
>     private Alpha rotAlpha = new Alpha(-1, 6000);
>     private SimpleUniverse u = null;
>     private double angle;
>
>     // Compute data which is common for both
>     // left and right eye
>     void computeSharedData() {
>       // Compute angle of rotation based on alpha value
>       angle = rotAlpha.value() * 2.0*Math.PI;
>       cmt.rotY(angle);
>     }
>
>     // Render the geometry in right eye
>     void renderLeft() {
>       cmt.setTranslation(leftTrans);
>       gc.setModelTransform(cmt);
>
>       if (sharedStereoZbuffer) {
>           // Graphics card shared same z buffer in stereo
> mode,
>           // in this case we have to explicitly clearing
> both
>           // frame buffers.
>           gc.clear();
>       }
>       gc.draw(leftConeBody);
>       gc.draw(leftConeCap);
>     }
>
>     // Render the geometry for right eye
>      void renderRight() {
>       cmt.setTranslation(rightTrans);
>       gc.setModelTransform(cmt);
>
>       if (sharedStereoZbuffer) {
>           // Graphics card shared same z buffer in stereo
> mode,
>           // in this case we have to explicitly clearing
> both
>           // frame buffers.
>           gc.clear();
>       }
>       gc.draw(rightConeBody);
>       gc.draw(rightConeCap);
>     }
>
>     //
>     // Run method for our immediate mode rendering
> thread.
>     //
>     public void run() {
>       // Set up Graphics context
>       gc = canvas.getGraphicsContext3D();
>
>       // We always need to set this for PureImmediate
>       // stereo mode
>         gc.setBufferOverride(true);
>
>       Color3f lightColor = new Color3f(1, 1, 1);
>       Vector3f lightDir = new Vector3f(0, 0, -1);
>       DirectionalLight light = new
> DirectionalLight(lightColor,
>                                                     lightDir);
>
>       gc.addLight(light);
>
>       Appearance redApp = new Appearance();
>       Appearance greenApp = new Appearance();
>       Color3f ambientColor = new Color3f(0, 0, 0);
>       Color3f emissiveColor = new Color3f(0, 0, 0);
>       Color3f diffuseColor =  new Color3f(1, 0, 0);
>       Color3f specularColor =  new Color3f(1, 1, 1);
>       redApp.setMaterial(new Material(ambientColor,
> emissiveColor,
>                                       diffuseColor, specularColor, 5));
>       diffuseColor =  new Color3f(0, 1, 0);
>
>       greenApp.setMaterial(new Material(ambientColor,
> emissiveColor,
>                                         diffuseColor, specularColor, 5));
>
>       // Set up geometry
>       Cone leftCone = new Cone(0.4f, 0.6f,
>                                Primitive.GENERATE_NORMALS, redApp);
>       Cone rightCone = new Cone(0.4f, 0.6f,
>                                 Primitive.GENERATE_NORMALS, greenApp);
>       leftConeBody  = leftCone.getShape(Cone.BODY);
>       leftConeCap   = leftCone.getShape(Cone.CAP);
>
>       rightConeBody = rightCone.getShape(Cone.BODY);
>       rightConeCap  = rightCone.getShape(Cone.CAP);
>       leftTrans = new Vector3f(-0.6f, 0, 0);
>       rightTrans = new Vector3f(0.6f, 0, 0);
>
>
>       while (true) {
>           // compute data which is can be used
>           // for both left and right eye
>           computeSharedData();
>
>           if (stereoSupport) {
>               if (!sharedStereoZbuffer) {
>
> gc.setStereoMode(GraphicsContext3D.STEREO_BOTH);
>
>                   // This clear both left and right buffers, we
>                   // must set STEREO_BOTH before it. Otherwise
>                   // it only clear LEFT or RIGHT buffer unless
>                   // this is invoke twice for each buffer.
>                   gc.clear();
>
=== message truncated ===

_________________________________________________________
Do You Yahoo!?
登記免費的 @yahoo.com 中文電子郵件 @ http://chinese.mail.yahoo.com
Get your free @yahoo.com address at http://chinese.mail.yahoo.com

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