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:
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!!!
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:
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!!!