j3d Texturierung

bob_sheknowdas

Aktives Mitglied
Hi,
ich versuche meine Java3D-Objekte mit Texturen zu belegen.
Dafür habe ich mir eine Methode geschrieben, die eine Appereance zurückgeben soll. Zurzeit produziert sie aber nur eine Exception 'Texture:illegal image size' in Zeile 13

Java:
public Appearance texture(String s) {
		BufferedImage hintergrund=null;
		try{
			hintergrund = ImageIO.read(getClass().getClassLoader().getResource("MainPackage/Hintergrund.jpg"));
		} 
		catch (IOException e){}
        TextureLoader loader = new TextureLoader(hintergrund);
        ImageComponent2D image = loader.getImage();
        Texture2D texture = new Texture2D();
        int form  = texture.getFormat();
        int base = texture.getMipMapMode();
        texture = new Texture2D(base,form,512,512);
        texture.setImage(0, image);
        Appearance appear = new Appearance();
        appear.setTexture(texture);
        TextureAttributes texat = new TextureAttributes(TextureAttributes.MODULATE,new Transform3D(),new Color4f(),TextureAttributes.NICEST);
        appear.setTextureAttributes(texat);
        appear.setMaterial(new Material());
        return(appear);
  }
 

Fu3L

Top Contributor
Füge doch bitte eine Methode mehr ein:

Java:
try{
            hintergrund = ImageIO.read(getClass().getClassLoader().getResource("MainPackage/Hintergrund.jpg"));
        } 
        catch (IOException e){
e.printStackTrace()
}

Und sag uns dann mal, was passiert.
Außerdem wäre es schön mehr Informationen über das Bild zu haben.
 

bob_sheknowdas

Aktives Mitglied
das print e.printStackTrace(); hat nichts bewirkt (zumindest nichts offensichtliches :bahnhof: )

über das bild gibts nicht so viel zu erzählen. es ist eine 1a paintzeichnung (225x225 px). Ich kann mir nicht wirklich vorstellen, dass das einlesen probleme macht. Ich habe das selbe bild schonmal mit dem gleichen verfahren eingelesen (damals für ein 2d programm) und da hat das wunderbar funktioniert...
 
H

hm....

Gast
Und in der Fehlermeldung stand nichts wie: Die Imageseiten müssen jeweils eine Potenz von 2 sein?
 

Marco13

Top Contributor
Falls die Frage damit noch nicht beantwortet ist: Jertzt kannst du ja schauen, wo die Unterschiede zu deinem Programm liegen...
 

Neue Themen


Oben