如题,java3d程序编译通过,运行白屏。貌似之前有看过是怎么回事的,不过忘了搜也没搜到,所以上来问问。程序在我把SimpleUniverse改为VirtualUniverse之前运行正常,我的改动是:改动前:
public SimpleUniverse CreateUniverse(){
GraphicsConfiguration config=SimpleUniverse.getPreferredConfiguration(); 
setLayout(new BorderLayout());
Canvas3D c=new Canvas3D(config);
add("Center",c);
SimpleUniverse u=new SimpleUniverse(c);
ViewingPlatform ViewPlatform=u.getViewingPlatform();
Viewer Ver=ViewPlatform.getViewers()[0];
View V=Ver.getView();
V.setBackClipDistance(2000.0f);
BranchGroup scene=CreateSceneGraph(c);
u.addBranchGraph(scene);
return u;
}改动后:
public VirtualUniverse CreateUniverse(){
VirtualUniverse universe=new VirtualUniverse();
Locale locale= new Locale( universe );
PhysicalBody physicalBody= new PhysicalBody();
      PhysicalEnvironment physicalEnv= new PhysicalEnvironment();
      
      GraphicsConfigTemplate3D template = new GraphicsConfigTemplate3D();
      GraphicsConfiguration config =GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getBestConfiguration(template);
      Canvas3D canvas=new Canvas3D(config);
      
      View view= new View();
      view.addCanvas3D( canvas );
      view.setPhysicalBody( physicalBody );
      view.setPhysicalEnvironment( physicalEnv );
      view.setBackClipDistance(2000);
      
      BranchGroup vpRoot= new BranchGroup();
      Transform3D t= new Transform3D();
      t.set( new Vector3f( 0.0f, 0.0f, 150.0f ) );
      TransformGroup  vpTrans = new TransformGroup( t );
      
      ViewPlatform vp = new ViewPlatform();
      vpTrans.addChild( vp );
      vpRoot.addChild( vpTrans );
      
      view.attachViewPlatform( vp );
      locale.addBranchGraph( vpRoot );
      
      BranchGroup scene=CreateSceneGraph(canvas);
      locale.addBranchGraph( scene );
      
      return universe;
}麻烦指教一下,谢谢了!