# Object Loader



## Nikolaus Lechner (1. Sep 2006)

Hallo 


Ich sende im Folgenden eine kurze Beschreibung meines Problems sowie den Code meines Programms:

Ich will ein Object File aus Maya in Java 3D einbinden!

Dazu verwende ich den von Java3D vorgegebenen Object Loader!

Ich kann das Object File auch fehlerfrei einbinden nur habe ich das Problem das die Materialien nicht mit

angezeigt werden!

Hier der Code meiner Branchgroup in welcher ich die Dateien lade und einbinde:

public BranchGroup macheSzene()
{

	//Pfadangabe, wo die später verwendeten Objekte liegen
	String p = "C:/Progs/DiplProjektv1/";	

	BranchGroup objWurzel = new BranchGroup();



	//Loader

	ObjectFile file = new ObjectFile(ObjectFile.RESIZE);



	//Erstellen vier leerer Szenen
	Scene scene1 = null;
	Scene scene2 = null;
	Scene scene3 = null;
	Scene scene4 = null;	

	try
	{
		scene1 = file.load(p+"files/Sphere.obj"); //Laden des Kugel-Modells
		scene2 = file.load(p+"files/Saber.obj"); //Laden des Lichtschwert-Modells
		scene3 = file.load(p+"files/hintergrund_neuv1.obj"); //Laden des Hintergrund-Modells
		scene4 = file.load(p+"files/Shot.obj"); //Laden des Schuss-Modells
	}
	//Abfrage auf bestimmte Fehler 
	//Datei nicht gefunden
	//Syntaxfehler
	//falsches Format)
	//wenn diese auftreten -> Fehlermeldung, keine Ausführung
	catch (FileNotFoundException e) 
	{
		System.err.println(e);
		System.exit(1);
	}
	catch (ParsingErrorException e) 
	{
		System.err.println(e);
		System.exit(1);
	}
	catch (IncorrectFormatException e) 
	{
		System.err.println(e);
		System.exit(1);
	}




	//Erstellen eines gerichteten Lichtes 
	DirectionalLight dlicht = new DirectionalLight(new Color3f (1.0f, 1.0f, 1.0f), new Vector3f (-1.0f, -1.0f, -1.0f));
	dlicht.setInfluencingBounds (new BoundingSphere (new Point3d(0.0d,0.0d,0.0d), 100.0d));

	//Erstellen eines Umgebungslichtes
	AmbientLight alicht = new AmbientLight (new Color3f (1.0f, 1.0f, 1.0f));
	alicht.setInfluencingBounds (new BoundingSphere (new Point3d(0.0d,0.0d,0.0d), 10.0d));

	objWurzel.addChild(scene1.getSceneGroup());
	objWurzel.addChild(scene2.getSceneGroup());
	objWurzel.addChild(scene3.getSceneGroup());
	objWurzel.addChild(scene4.getSceneGroup());

	objWurzel.addChild(dlicht);
	objWurzel.addChild(alicht);




	return objWurzel;
}

Vielleicht könnten mir jemand einen Hinweis geben ob bzw. welchen Fehler ich gemacht habe, sodass die Materialien nicht angezeigt werden.

Meine E- Mail- Adresse: Nikolaus.Lechner@gmx.at

MFG

Lechner Nikolaus


----------



## Gast (27. Sep 2006)

Ich habe genau das selbe Problem. Hat keiner eine lösung. Kann ich ein Material auch noch im nachhinein hinzufügen wenn das obj geladen wurde?


----------

