I'm trying to do something interesting using Java 3D, and i'm learning by official tutorials. My problem is: sometimes it shows well without any problem but sometimes window is white and nothing shows until i resize the window. How can i overcome this drawing-update problem?
Here is all code
import com.sun.j3d.utils.geometry.Sphere;
import com.sun.j3d.utils.universe.SimpleUniverse;
import javax.media.j3d.BoundingSphere;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.DirectionalLight;
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;
import javax.vecmath.Color3f;
import javax.vecmath.Point3d;
import javax.vecmath.Vector3f;
public class Main {
public Main()
{
SimpleUniverse simpleUniverse = new SimpleUniverse();
BranchGroup group = new BranchGroup();
Sphere sphere = new Sphere(0.5f);
Color3f light1Color = new Color3f(0.7f,0.7f,5f);
BoundingSphere bounds = new BoundingSphere(new Point3d(0,0,0),100);
Vector3f light1Direction = new Vector3f(4.0f,-7.0f,-12.0f);
DirectionalLight light1 = new DirectionalLight(light1Color,light1Direction);
light1.setInfluencingBounds(bounds);
group.addChild(light1);
Transform3D transform = new Transform3D();
TransformGroup tg = new TransformGroup();
Vector3f pos = new Vector3f(0,0,-5);
transform.setTranslation(pos);
tg.setTransform(transform);
tg.addChild(sphere);
group.addChild(tg);
simpleUniverse.getViewingPlatform().setNominalViewingTransform();
simpleUniverse.addBranchGraph(group);
}
public static void main(String[] args) {
new Main();
}
}
This is a common problem with heavyweight rendering components, like the Canvas3D
that is used internally for Java3D.
You can avoid this by calling
System.setProperty("sun.awt.noerasebackground", "true");
as the first line of cour main method, or by starting your program with
java YourProgram -Dsun.awt.noerasebackground=true
(Websearches for noerasebackground
bring further information about the details, but this flag should solve the issue of the white background)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With