# Zylinder mit Textur erzeugt out of memory :(



## SebastianM (22. Jun 2007)

Hallo Leute, ich bin recht blutiger Java (und vorallem Java3D) Anfänger... mein aktuelles Vorhaben ist eine GUI für ein Menü zu erstellen. Die Idee ist es, eine Drehrad zu erstellen. Je nachdem welche Position nun gerade ausgewählt (bzw "gedreht") ist, soll eine bestimmte Aktion ausgeführt werden. Man kann sich das wie so eine Wählscheibe bei nem alten Telefon vorstellen. 

Dazu habe ich mir nun einen Zylinder erzeugt, die Höhe auf 0 gesetzt (um eine flache Scheibe zu erhalten) und habe dann eine Textur (jpg Bild mit den ganzen Menü Punkten) darauf gelegt. Das ganze drehe ich dann bei Tastendruck mit einem Timer um einen bestimmten Winkel. Mein Problem ist nun, dass ich das Bild ziemlich hochauflösend erstellen muss damit die Schrift darauf noch gut lesbar ist; leider laufe ich damit immer in einen out of memory - heap space error. 

Ich nehme an ich mache das ganze viel zu kompliziert; evtl kann man ja das ganze viel effizienter gestalten oder das Bild direkt ohne Zylinder benutzen...

bin für jede Hilfe dankbar

Hier ein kurzer Schnippsel aus meinem Code:

```
ZylinderAppearance.setTexture(new TextureLoader("Menu.jpg", null).getTexture());
      ZylinderAppearance.setTextureAttributes(new TextureAttributes(TextureAttributes.MODULATE,new Transform3D(),new Color4f(), TextureAttributes.FASTEST));
      ZylinderAppearance.setCapability(Appearance.ALLOW_TEXTURE_WRITE);    

.......

      Cylinder Zylinder = new Cylinder(0.8f, 0.0f , Primitive.GENERATE_NORMALS | Primitive.GENERATE_TEXTURE_COORDS, 100, 10, ZylinderAppearance);
```


PS: das Bild hat aktuell eine Auflösung von 2400x2400 Pixel und ca 200kb Größe. Wenn ich die Auflösung runtersetzte läufts, aber die Schrift sieht sch.... aus


danke im voraus!!!


----------



## merlin2 (22. Jun 2007)

Du hast im Großen und Ganzen folgende zwei Möglichkeiten:
1. Wenn deine Menüpunkte Texte sind, Text2D anstelle der Textur zu verwenden.
2. Den Speicher für deine Anwendung zu erweitern.


----------



## SebastianM (22. Jun 2007)

Danke für die Antwort!
Ist es möglich, text2D zu verzerren, bzw auf einer Kreisbahn zu schreiben?

Also so wie hier in etwa: [img=http://img162.imagevenue.com/loc811/th_17806_kreisschrift_122_811lo.jpg]

danke im voraus[/img]


----------



## merlin2 (27. Jun 2007)

Du kannst dir einen Algorithmus schreiben, der ein Shape3D, von dem sich Text2D ja ableitet, verzerrt. Aber so einfach stelle ich mir das nicht vor.
Allerdings ist das der einzige Weg, der mir einfällt. Stell die Frage vielleicht mal im Bereich Mathematik.


----------

