Java 3D Object Loader -- Facharbeit

Status
Nicht offen für weitere Antworten.

Bohno

Mitglied
hey
ich schreibe gerade meine Facharbeit über Java 3D.

ich habe eine 3D Model von einem Lego Stein erstellt und lade das jetzt mit java rein. das Funktioniert auch soweit. mein Problem ist aber, dass dieses Objekt sehr groß dagestellt wird, kann ich dieses in Java kleiner darstellen oder kann ich einfach einstellen das der Betrachter mehr Pixel sehen soll.

also ich will am Schluss ein Programm haben in dem der Benutzer mit Legosteinen eine Objekt bauen kann.

könnt ihr mir helfen oder tipps geben 🙂

mfg und Danke

Bohno
 
also wenn du
das machen willst, erstmal. du willst also, dass man das folgene Mahcen kann:
Lego lego = new Lego(Größe);
Willst du das?
Also erstmal, die größe vom Block selbst ist kein problem, nur die positionierung von den LegoCylindern und die Größe ist ein Problem, ich würd dir empfehlen, einfach ne Textur drüber zu hauen. oder geht das net?
 
So wie in diesem Beispiel hier:
Code:
public class Lego extends Object
{
private Group group;
public Lego()
{
group = new Group();
group.addChild(new Sphere(0.3f,null));
}
public Group getChild()
{
return group();
}
}
Und anstatt des Spheres könntest du auch eine TransformGroup adden, die du definiert hast, und an die dann TEile adden, also nur mal so könntest du dann Lego adden, und nur so:
Code:
TransformGroup TG = new TransformGroup();
TG.addChild(new Lego().getChild());
An die Klasse Lego könntest du dann Features einbauen, z.B. Appearances
also:
Code:
public class Lego extends Object
{
private Group group;
private Appearance app;
public Lego(Appearance appearance)
{
appearance = app;
group = new Group();
group.addChild(new Sphere(0.3f,app));
}
public Group getChild()
{
return group();
}
}
Nun könntest du also die Appearance von dem Sphere aus einer anderen Klasse aus
kontrollieren.
Um nun die größe des Spheres zu kontrollieren könntest du z.B. folgendes tun:
Code:
public class Lego extends Object
{
private Group group;
private Appearance app;
private float a;
public Lego(Appearance appearance, float a2)
{
a2 = f;
appearance = app;
group = new Group();
group.addChild(new Sphere(a,app));
}
public Group getChild()
{
return group();
}
}
 


soe sieht ein Legosteina aus wenn ich ihn reinlade. der ist recht groß xD würde es gehen dass der Betrachter einfach mehr sieht also weiter von dem Stein entfernt ist, denn dadurch würde der Stein ja kleiner werden, oder muss ich ihn kleiner erstellen also Model erstellen.

Am Schluss sollen ja mehr als nur 1 Stein sichtbar sein da man ja objekte bauen soll.
 
Du kannst auch einfach den Stein an eine TransformGroup hängen, und die TransformGroup skalieren. (Transform3D#setScale)
 
Oh man, das wusste ich nicht, ädde ihn einfach bei einer TransformGroup, erstell ein Transform3D und setzte die Transform also so:

Transform3D t = new Transform3D();
t.setTranslation(new Vector3f(0,0,-4));
TransformGroup T = new TransformGroup();
T.addChild(Lego dings da);
T.setTransform(t);

PS:
könntest du uns mal diesen LegoWürfel schicken?
Bitte
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben