Ein paar Fragen zu Texturen

Started by shadow, July 25, 2011, 12:48:59 AM

Previous topic - Next topic

shadow

Hi,

Hintergrund: Ich möchte in mein Level ein paar Bäume von hier reinladen:
http://www.reinerstilesets.de/3d-grafiken/3d-plants/

Den ersten Baum lade ich als OBJ mit Loader.loadOBJ(). Es liegen zwei Textur-Bilder bei, mit denen ich aber vorerst nichts mache. Die Konsolenausgabe verrät mir folgendes:

Texture named bushtwig4v2.tga added to TextureManager!
Texture named ahernbark.bmp added to TextureManager!


Aber Texturen werden auf dem Objekt nicht angezeigt. Deshalb lade ich vorher noch die zwei Texturen, und zwar so:

TextureManager.getInstance().addTexture("bushtwig4v2.tga", ....);
TextureManager.getInstance().addTexture("ahernbark.bmp", ....);


Allerdings funktioniert das Ganze nur, wenn ich das TGA-Bild in ein PNG umwandle, und das BMP in ein JPG.

Frage 1: Ist das normal, dass BMP und TGA nicht geladen werden kann?
Frage 2: Hätte ich ohne die Konsolenausgaben herausfinden können, wie ich die Texture laden muss? Also unter welchem Namen?
Frage 3: Warum muss ich hier die Texturen nicht mehr mit object3d.setTexture() anhängen

Dann will ich einen zweiten Baum laden. Dieser liegt im MD2-Format vor. Diesen lade ich mit Loader.loadMD2(); Hier gibt es keine entsprechenden Konsolenausgaben, auch hier liegen wieder BMP und TGA als Textur dem Model bei. Ich schaffe es aber nicht, auf die gleiche Weise die Texture auf das Objekt zu bringen...

Danke für die Unterstützung!

shadow

Noch mehr Fragen  ???

Dann hab ich noch den einen Baum mit Blender in ein 3ds-File umgewandelt. Jetzt wurde die Textur nicht mehr mit alpha gerendert, ob wohl ich den entsprechenenden Texture-Constructur mit boolean useAlpha = true gewählt habe...

Nochmals danke für die Unterstützung!!


EgonOlsen

Das Fileformat hat nichts mit Transparenz zu tun. Es kann höchsten sein, dass die Transparent nicht explizit im Code setzt, sondern dies vom Loader machen lässt...und der Export nach 3DS mag diese Information vielleicht nicht mit übertragen haben. Ich würde ohnehin OBJ bevorzugen. Die Exporter nach 3DS sind teilweise nicht so dolle, weil das Format nicht zu 100% dokumentiert ist.

jPCT lädt alles an Bildern, was Java laden kann. Nicht mehr und nicht weniger. Wenn das mit BMP und TGA nicht klappt, dann ist das so. Sind sowieso keine Formate, die ich für Texturen empfehlen würde. Nimm PNG und JPG.

Man kann die Texturnamen vermutlich auch im Editor irgendwo sehen...weiß ich aber nicht, weil ich mich mit 3D-Editoren kaum auskenne. In DeepExploration erscheinen die Namen, wenn man sich das Material anschaut.

Die Lösung für 3DS und OBJ ist deswegen so, weil es viele Texturen pro File geben kann. Das kann man mit setTexture nicht vernünftig zuweisen. Natürlich kannst du auch setTexture benutzen, aber dann haben alle Polygon eines Objektes dieselbe Textur.

Für MD2 gibt es diese Nameninformation nicht. Es gibt dort auch nur eine Textur/Objekt. Du kannst diese also einfach mit setTexture zuweisen.