# j3d Texturierung



## bob_sheknowdas (18. Apr 2012)

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


```
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 (18. Apr 2012)

Füge doch bitte eine Methode mehr ein:


```
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 (18. Apr 2012)

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...


----------



## hm.... (18. Apr 2012)

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


----------



## Marco13 (18. Apr 2012)

Wenn man nach 
java2s java3d _einStichwort_
(hier z.B. "Texture") sucht, findet man meistens schnell das passende KSKB, wie hier etwa Texture Image : Texture3DJava ... schau halt mal ob's funktioniert


----------



## bob_sheknowdas (19. Apr 2012)

jup, der link haut hin :toll:


----------



## Marco13 (19. Apr 2012)

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


----------



## bob_sheknowdas (19. Apr 2012)

Marco13 hat gesagt.:


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



Glaubs oder lass es bleiben, aber das hab ich gleich als erstes gemacht


----------

