www.jpct.net

General => German corner => Topic started by: Andi1804 on September 03, 2007, 06:13:59 pm

Title: Probleme beim Texturladen für 3ds
Post by: Andi1804 on September 03, 2007, 06:13:59 pm
Hallo,
ich hab hier ein Problem mit ner Funktion und ich komm einfach nicht dahinter, vermutlich was ganz simples.
Ich will eine Funktion schreiben, an die ich einen Dateinamen, einen Skalierungsfaktor und einen Array mit Texturdateinamen übergeben kann.
Diese soll mir das alles Laden, meiner Welt hinzufügen usw.

Bisher sieht das so aus:

Code: [Select]
public static Object3D [] load3ds(String dateiname, float skalierung, String Texturdateinamen []){
// 1. Teil:
for (int c = 0; c<Texturdateinamen.length; c++){
Main.texman.getInstance();
Texture d = new Texture(Texturdateinamen[c]);
Main.texman.addTexture(Texturdateinamen[c], d); //<----- PROBLEM ! ! !
}

//2. Teil
Object3D  a [] = Loader.load3DS(dateiname, skalierung);
System.out.println("Länge: "+a.length);
for (int b = 0; b < a.length; b++){
a[b].build();
Main.world.addObject(a[b]);

}

Wenn ich nur den zweiten Teil laufen lasse, funktioniert das ganze wunderbar.
Beim ersten Teil bringt er mir bei der Zeile:

Main.texman.addTexture(Texturdateinamen[c], d);

eine Null Pointer Exception.

Hat jemand ne Idee woran das liegen kann?

Und noch was anderes: Wie kann ich die Texturen im Manager dem 3ds Level zuordnen,
einfach mit setTexture?


mfg

Andi
Title: Re: Probleme beim Texturladen für 3ds
Post by: EgonOlsen on September 08, 2007, 07:47:04 pm
Konnte nicht früher antworten, wegen einer Woche Urlaub...
Also dieser Teil hier:

Code: [Select]
Main.texman.getInstance();
Texture d = new Texture(Texturdateinamen[c]);
Main.texman.addTexture(Texturdateinamen[c], d); //<----- PROBLEM ! ! !

sieht mir irgendwie komisch aus. Probiert stattdessen mal:

Code: [Select]
Texture d = new Texture(Texturdateinamen[c]);
TextureManager.getInstance().addTexture(Texturdateinamen[c], d);

Was die Zuorndung zum 3DS angeht, die passiert automatisch und zwar anhand der Texturnamen, die die Texturen im 3DS haben. Beim Laden wird nach gleich benannten Texturen im TextureManager gesucht und diese verwendet. Werden sie nicht gefunden, wird eine Dummy-Textur mit dem Namen erstellt, die später im TextureManager ersetzt werden kann. Das sieht du aber auch in der Log-Ausgabe beim Laden.
Title: Re: Probleme beim Texturladen für 3ds
Post by: Andi1804 on September 10, 2007, 03:35:51 pm
Super danke, funktioniert jetzt.

Noch was anderes, ist es irgendwie möglich die Texturkoordinaten eines Object3D zu manipulieren, bzw. neu einzustellen?
Title: Re: Probleme beim Texturladen für 3ds
Post by: EgonOlsen on September 10, 2007, 04:22:00 pm
Ja, mit dem hier: http://www.jpct.net/doc/com/threed/jpct/PolygonManager.html (http://www.jpct.net/doc/com/threed/jpct/PolygonManager.html)
Title: Re: Probleme beim Texturladen für 3ds
Post by: Andi1804 on September 11, 2007, 11:08:44 am
Hi, ich hab immer noch ein Problem. Wenn ich die Textur von ner 3ds Datei lade, wird die immer auf größe der Objekte skaliert.
Ich erstelle meine 3ds Dateien mit Blender, es könnte also an dem Exporter liegen.
In Blender jedenfalls, legt er mir die Texturen nebeneinander, also ein Kackeleffekt.
Kann es evtl. daran liegen, dass ich den Softwarerenderer verwende?

mfg

Andi
Title: Re: Probleme beim Texturladen für 3ds
Post by: EgonOlsen on September 11, 2007, 01:04:37 pm
Jein. Vermutlich benutzt du ihn im Legacy-Modus? Kann das sein? Welche Version von jPCT verwendest du? Bis (exklusive) 1.13 war das der Standardmodus für Software. Ab 1.13 ist er es nicht mehr. Ein Screenshot würde vielleicht helfen, damit man besser versteht, was genau du meinst.
Title: Re: Probleme beim Texturladen für 3ds
Post by: Andi1804 on September 11, 2007, 01:50:11 pm
Danke für die schnellen Antworten.
Also das mit der Version ist jetzt ne gute Frage, ich hab JPCT jetzt einfach nochmal runtergeladen und die Dateien ersetzt.
Dürfte jetzt also die neueste Version sein.
Hier mal ein Beispiel wegen dem Rendern:
http://mitglied.lycos.de/andi1804/Bildschirmfoto.jpg (http://mitglied.lycos.de/andi1804/Bildschirmfoto.jpg)

Die rechte Seite wurde in Blender, die linke in JPCT gerendert.
Wie man sieht, wiederholt sich die Textur in Blender an der Oberseite des Objekts.
Ich hätte zwar gern, dass dies für alle Seiten gilt, aber da is das Problem in Blender, erstmal wär ich schon zufrieden, wenn es in JPCT auch so aussehen würde. Möglicherweise liegt es aber auch an dem 3ds Exporter von Blender.

Andi
Title: Re: Probleme beim Texturladen für 3ds
Post by: EgonOlsen on September 11, 2007, 03:59:48 pm
Kannst es stattdessen mal mit dem obj-Format probieren?
Title: Re: Probleme beim Texturladen für 3ds
Post by: Andi1804 on September 11, 2007, 04:59:30 pm
Also ich habs grad mit obj Format versucht, erstmal erkennt er da die Texturen nicht selbstständig.
Wenn ich die Textur dann mit setTexture zuweise, siehts genauso aus wie beim 3ds Modell, uv Koordinaten sind also vorhanden.
Title: Re: Probleme beim Texturladen für 3ds
Post by: EgonOlsen on September 11, 2007, 05:52:00 pm
Kannst du mir die 3DS-Datei mal irgendwie zukommen lassen? (Und um bei OBJ die Texturnamen zu bekommen, musst du die *.mtl-Datei mit angeben, aber das nur nebenbei). Ich muss mir das Ding glaube ich mal selber anschauen, um zu erkennen, was das verkehrt läuft.
Title: Re: Probleme beim Texturladen für 3ds
Post by: Andi1804 on September 11, 2007, 10:58:29 pm
Ja hier ist sie:
http://mitglied.lycos.de/andi1804/test.3ds (http://mitglied.lycos.de/andi1804/test.3ds)
Title: Re: Probleme beim Texturladen für 3ds
Post by: EgonOlsen on September 11, 2007, 11:27:20 pm
Ok, also wenn ich das Teil in Deep Exploration lade (und der macht nach 3DS selber am meisten richtig, wenn es um dieses Format geht), dann erscheint es so, wie auch jPCT es lädt. Ich denke mal, da stimmt irgendwas mit dem Export in Blender nicht. Irgendwo hier im Forum findet sich auch die (sicherlich nicht 100% ernst gemeinte, aber dennoch begründete) Aussage, dass alles in Blender reingeht, aber nichts mehr rauskommt. Vielleicht ist das in diesem Fall auch so...
Title: Re: Probleme beim Texturladen für 3ds
Post by: Andi1804 on September 12, 2007, 10:42:37 am
Ok, danke dir, dann werd ich mich mal nach nem anderen Programm umsehen.
Title: Re: Probleme beim Texturladen für 3ds
Post by: EgonOlsen on September 12, 2007, 10:44:36 am
Was kommt denn raus, wenn du das exportierte Teil in Blender wieder importierst?
Title: Re: Probleme beim Texturladen für 3ds
Post by: Andi1804 on September 12, 2007, 10:52:11 am
Verdammt auf die Idee hätt ich auch mal kommen können.
Habs grad ausprobiert, er rendert es wie in IPCT.
Liegt also am Exporter.
Sorry für den ganzen aufwand.