# Java3D Rendering Problem



## Turakar (11. Aug 2012)

Hallo,

ich habe ein Problem beim Rendern meines SimpleUniverse auf einem MainFrame.
Hier ist mein (momentan schlanker) Code:
[Java]
package main;

import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Frame;

import javax.media.j3d.BranchGroup;
import javax.media.j3d.Canvas3D;
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;

import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.SimpleUniverse;

public class Simple3D extends Applet
{
	private SimpleUniverse u;


	/**
	 * @param args
	 */
	public static void main(String[] args) 
	{
		Frame frame = new MainFrame(new Simple3D(), 256, 256);

	}

	public Simple3D()
	{
		this.setLayout(new BorderLayout());
		Canvas3D canavas3D = new Canvas3D(SimpleUniverse.getPreferredConfiguration());
		BranchGroup szene = macheSzenegraph();
		szene.compile();
		u = new SimpleUniverse(canavas3D);
		u.getViewingPlatform().setNominalViewingTransform();
		u.addBranchGraph(szene);
	}

	public BranchGroup macheSzenegraph()
	{
		BranchGroup objWurzel = new BranchGroup();
		Transform3D drehung = new Transform3D();
		Transform3D drehung2 = new Transform3D();
		drehung.rotX(Math.PI / 4.0d);
		drehung2.rotY(Math.PI / 5.0d);
		drehung.mul(drehung2);
		TransformGroup objDreh = new TransformGroup(drehung);
		objDreh.addChild(new ColorCube(0.4));
		objWurzel.addChild(objDreh);
		return objWurzel;
	}

}
[/code]

Freue mich über schnelle Antworten!

Turakar


----------



## Turakar (11. Aug 2012)

Ich hab vergessen zu sagen das ich als Ausgabe einen graues Window kriege


----------



## Marco13 (11. Aug 2012)

Ruf' mal als erste Zeile der main
System.setProperty("sun.awt.noerasebackground", "true");
auf...


----------



## Turakar (11. Aug 2012)

Marco13 hat gesagt.:


> Ruf' mal als erste Zeile der main
> System.setProperty("sun.awt.noerasebackground", "true");
> auf...



Was bewirkt diese Codezeile genau?


----------



## Marco13 (11. Aug 2012)

noerasebackground bewirkt dass er keinhintergrundlöschen durchführt :joke: Bei vielen Anwendungen mit OpenGL und manchen Grafikkarten wird (vereinfacht gesagt) das von OpenGL gerenderte Bild durch das Löschen des Canvas-Hintergrundes "übermalt". Hilft es denn?


----------



## JVTH (11. Aug 2012)

Klappt nicht, hab immer noch das graue Window.


----------



## JVTH (11. Aug 2012)

JVTH hat gesagt.:


> Klappt nicht, hab immer noch das graue Window.



schreib vom account meines Bruders, sry


----------



## Turakar (11. Aug 2012)

Gelöst!!!
Durch das hinzufügen von folgender Codezeile
[JAVA=41]add("Center", canavas3D);[/code]
klappt es!
Hier der gesamte Code zum kopieren und/oder durchlesen:

```
import java.applet.Applet;
import java.awt.BorderLayout;
import javax.media.j3d.BranchGroup;
import javax.media.j3d.Canvas3D;
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.SimpleUniverse;

@SuppressWarnings("serial")
public class Simple3D extends Applet
{
	private SimpleUniverse u;
	

	/**
	 * @param args
	 */
	public static void main(String[] args) 
	{
		new MainFrame(new Simple3D(), 256, 256);
		
	}
	
	public Simple3D()
	{
		this.setLayout(new BorderLayout());
		Canvas3D canavas3D = new Canvas3D(SimpleUniverse.getPreferredConfiguration());
		add("Center", canavas3D);
		BranchGroup szene = macheSzenegraph();
		szene.compile();
		u = new SimpleUniverse(canavas3D);
		u.getViewingPlatform().setNominalViewingTransform();
		u.addBranchGraph(szene);
	}
	
	public BranchGroup macheSzenegraph()
	{
		BranchGroup objWurzel = new BranchGroup();
		Transform3D drehung = new Transform3D();
		Transform3D drehung2 = new Transform3D();
		drehung.rotX(Math.PI / 4.0d);
		drehung2.rotY(Math.PI / 5.0d);
		drehung.mul(drehung2);
		TransformGroup objDreh = new TransformGroup(drehung);
		objDreh.addChild(new ColorCube(0.4));
		objWurzel.addChild(objDreh);
		return objWurzel;
	}

}
```
:toll::toll::toll::toll::toll:


----------

