# Java3D-Applet bleibt weiss!



## Code7R (13. Jan 2005)

Hallo Leute,

habe folgende Java-Software installiert:

jdk-1_5_0_01-windows-i586-p.exe
java3d-1_3_1-windows-i586-opengl-rt.exe
java3d-1_3_1-windows-i586-opengl-sdk.exe

(in der Reihenfolge)

Und habe die HelloJava3Da.class auf dem Sun-Tutorial fast 1zu1 übernommen und als Applet in ne ganz Simple HTML-Seite eingebaut. Das "javac HelloJava3D.java" läuft einwandfrei. Das ganze wollte ich dann testen, der Browser (Firefox 1.0 und IE) sagte: "Applet HelloJava3Da started", allerdings blieb der Bereich in dem das Applet erscheinen sollte schlicht weiss. Nichts passiert.

Also hab die die selbe Software auf nem anderen Rechner (etwas älter) installiert, und siehe da, das Applet läuft.

Habe an einigen Stellen im Netz gelesen dass das ein Problem der Treiber meiner X800 Pro sein könnte. Vielleicht wisst ihr noch andere Dinge die ich noch ausprobieren könnte.

hier der Code des Applets:


```
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Frame;
import java.awt.event.*;
import java.awt.*;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.geometry.ColorCube;
import javax.media.j3d.*;
import javax.vecmath.*;

public class HelloJava3Da04 extends Applet {
	public HelloJava3Da04() {
		setLayout(new BorderLayout());
		GraphicsConfiguration config =
		SimpleUniverse.getPreferredConfiguration();
		Canvas3D canvas3D = new Canvas3D(config);
		add("Center", canvas3D);
		BranchGroup scene = createSceneGraph();
		scene.compile();

		// SimpleUniverse is a Convenience Utility class
		SimpleUniverse simpleU = new SimpleUniverse(canvas3D);
		// This moves the ViewPlatform back a bit so the
		// objects in the scene can be viewed.
		simpleU.getViewingPlatform().setNominalViewingTransform();
		simpleU.addBranchGraph(scene);
	} // end of HelloJava3Da (constructor)

	public BranchGroup createSceneGraph() {
		// Create the root of the branch graph
		BranchGroup objRoot = new BranchGroup();

		// Create the transform group node and initialize it to the
		// identity. Add it to the root of the subgraph.
		TransformGroup objSpin = new TransformGroup();
		objSpin.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
		objRoot.addChild(objSpin);
		// Create a simple shape leaf node, add it to the scene graph.
		// ColorCube is a Convenience Utility class
		objSpin.addChild(new ColorCube(0.4));
		// create time varying function to drive the animation
		Alpha rotationAlpha = new Alpha(-1, 4000);
		// Create a new Behavior object that performs the desired
		// operation on the specified transform object and add it into
		// the scene graph.
		RotationInterpolator rotator =
		new RotationInterpolator(rotationAlpha, objSpin);
		// a bounding sphere specifies a region a behavior is active
		BoundingSphere bounds = new BoundingSphere();
		rotator.setSchedulingBounds(bounds);
		objSpin.addChild(rotator);
		return objRoot;
	} // end of createSceneGraph method

} // end of class HelloJava3Da
```

und hier der HTML-Datei:


```
<html>
<head>
<title>TEST</title>
</head>
<body>

<applet code="HelloJava3Da.class" height="600" width="600">

</body>
</html>
```


mfG und Danke,

Code7R


----------



## Oxygenic (14. Jan 2005)

So ist das wenig hilfreich. Gibt es denn irgend welchen Output in der Java-Konsole?


----------



## Code7R (14. Jan 2005)

Nee keine Ausgabe auf der Java-Konsole. Das Applet scheint ohne Probleme zu starten. Nur gibts keine Ausgabe. Und auf nem älteren Rechner startet das Applet ja auch ohne Probleme.


----------



## Sky (14. Jan 2005)

Füge doch mal ein paar Traces a la 
	
	
	
	





```
System.out.println("bla")
```
 hinzu, um zu gucken, ob die gewünschten Code-Segmente wirklich durchlaufen werden. Alternativ kannste natürlich auch nen Debugger nehmen...


----------



## Code7R (14. Jan 2005)

Alles klar das kann ich mal versuchen.

Aber eigentlich MÜSSEN die Codesagmente ja durchlaufen werden ansonsten würde das Applet ja nicht auf dem anderen Rechner - der keine X800 hat - laufen.

Ich habe eben nochmal gelesen das die Catalyst-Treiber anscheinend grundsätzlich ein Problem mit Java3D haben. Wenns das is hab ich ja wirklich SEHR viel von meiner neuen X800. ;-)


----------



## Oxygenic (14. Jan 2005)

Nur die ATI-OGL-Treiber haben Probleme, mit der DirectMurX-Variante von J3D sollte es problemlos klappen.

Allerdings müsste es trotzdem Output geben, zumindest eine (typische) Fehlermeldung kommt in der Regel schon...


----------



## EgonOlsen (14. Jan 2005)

Die X800 hat zum Teil Probleme mit Java generell, wenn man im Controlpanel AA und Aniso nicht auf der Standardeinstellung hat (d.h. das Häkchen entfernt hat). Bei mir gab es dann früher immer Reboots. Seit dem Cat4.11 hängt "immerhin" nur die VM. Manchmal geht es aber auch...


----------



## Code7R (14. Jan 2005)

Danke schonmal für eure Kommentare.   

Das mit dem AA und AF habe ich auch schon gelesen. Habe sie auf Standart stehen, allerdings KANN ich sie nicht ausschalten wie es in einigen anderen Foren vorgeschlagen wurde.

Naja, ich werde jetzt zuerst mal die DirectX Variante austesten.

mfG,

Code7R


----------



## Code7R (15. Jan 2005)

Hallo nochmal,

die DirectX Runtime funzt soweit ich das bisher sagen kann ohne Probleme.

Danke nochmal,

Code7R


----------



## cyliax (30. Mai 2005)

Bei mir hilft es in den Treibereinstellungen der Grafikkarte (auch ATI, allerdings ne 9700Pro) unter OpenGL, Kompatibilität, die Tiefe des Z-Puffers auf 16 Bit zu stellen.

Grüße Carsten


----------



## BorisDieKlinge (19. Mai 2006)

"RadLinker" Ati Tweaker Sofware, da stehst "Force 16 bit z Buffer" ein un es funktioniert!!


----------

