Hi Kevin, Paul and Fred: Thank you all for your valuable suggestions! However, in the following code:
public void render() { if (gc == null) { gc = canvas.getGraphicsContext3D(); view=canvas.getView(); grt1=grat1.getGrating(); } view.setMinimumFrameCycleTime(X); gc.setBufferOverride(true); gc.setStereoMode(gc.STEREO_BOTH); gc.clear(); gc.setStereoMode(GraphicsContext3D.STEREO_LEFT); gc.draw(grt1); canvas.swap(); } No matter whether I set the value X in view.setMinimumFrameCycleTime(X) to be 1, 2, 3, 10, 20 or 50, the ghost image existed the same. When X=0 (default value), the ghost image exists, then increasing the FrameCycleTime could not help decreasing the ghost image (because the ghost image will last longer), am I right? If changing FrameCycleTime did not change the appearance of the ghost image, what is the purpose of setting view.setMinimumFrameCycleTime(X)? Do I need to change some thing else to minimize the ghost image? As Paul said, the frameCycleTime depends quite upon the OP, is there any method to change the FrameCycleTime of an OP (I am using Win2000)? Since the persistence of a monitor is unchangable, how to reduce the FrameCycleTime has become crucial to my experiment. I have to keep consulting you until I have a solution. Thank you all for your great help! G.B. _________________________________________________________________ Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp =========================================================================== 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".