2008-10-06 6 views
6

Ich kann grundlegende Objekte mit JOGL oder LWJGL zeichnen, um eine Verbindung zu OpenGL herzustellen. Was ich möchte, ist etwas, das eine Art von Geometrie für Bäume erzeugen kann, ähnlich wie SpeedTree berühmt ist. Natürlich erwarte ich nicht die gleiche Qualität wie SpeedTree.Welche Möglichkeiten gibt es, 3D-Bäume mit Java und OpenGL zu zeichnen?

Ich möchte, dass die Bäume nicht wiederholend aussehen. Geschwindigkeit ist kein Problem, ich erwarte nicht mehr als 100 Bäume auf dem Bildschirm auf einmal.

Gibt es in Java freie Baumzeichnungsbibliotheken? Oder Beispielcode oder Demos? Gibt es in anderen Sprachen etwas, das ich portieren oder lernen könnte?

Antwort

2

Es gibt Tausende von Methoden. Eine bessere Frage würde auf engere Weise "am besten" definieren. Sprechen wir "am besten" wie in der Geschwindigkeit des Zeichnens (passend für Tausende oder Millionen von Bäumen)? Am besten wie im besten aussehen? usw.

2

2D oder 3D?
In 2D ist es üblich, L-Systeme zu verwenden.
Ich habe auch einen OO-Ansatz versucht, Objekte für Stamm, Zweige, Blätter, die alle eine abstrakte Klasse erweitern und implementieren eine Genotype-Schnittstelle (um die Art der Bäume zu variieren).
Nicht sicher, ob es effizient ist (viele Objekte erstellt, vor allem wenn ich den Baum animiere), aber interessant zu tun.

0

Wenn Sie Eclipse/SWT verwenden, versuchen Sie 2D zeichnen.

0

Wenn Sie es ernst meinen mit gut aussehenden, schnellen Bäumen, dann gibt es eine kommerzielle C++ - Bibliothek SpeedTree. Viele große Spiele verwenden es (z. B. GTA, Elder Scrolls).

+0

SpeedTree erstaunlich ist, aber ich bin eine Software, die Planung, die ich kostenlos und Open Source (GPL wahrscheinlich lizenziert) und so wird sein müssen entweder eine freie Lösung finden oder meine eigene machen. – Liam

0

Eine Kombination aus OpenSceneGraph und SpeedTree hat für mich funktioniert.

0

Ich kenne zwei Bibliotheken, die die Verwendung von OpenGl mit Java ermöglichen.

LWJGL (Leichte Java-Spiele-Bibliothek), die imo ist das bessere wegen seiner Einfachheit und seiner Ähnlichkeit mit OpenGL mit C/C++.

JOGL Wenn Sie Swing-Komponenten mit OpenGL mischen möchten, ist dies die bessere Wahl, ich habe es noch nie benutzt, aber vor einigen Jahren war es bekannt ziemlich buggy, ich weiß nicht, ob es seitdem gereift ist.

Wie für das Zeichnen von Bäumen, gibt es viele Möglichkeiten, dies zu tun, wie das andere Plakat sagte, möchten Sie vielleicht genauer sein.

edit: Ich denke, ich habe die Frage ein wenig missverstanden, na ja:/Sie können in ein 3D-Modell eines Baumes laden und das anzeigen.

1

Hier sind ein paar Ressourcen, die hilfreich sein können:

  • gamedev thread on the subject - enthält einige nützliche Ratschläge/Anregungen
  • ngPlant - ein Open-Source Verfahrenspflanzengeneration Werkzeug. Es ist nicht in Java geschrieben, aber Sie können möglicherweise Ideen in seinen Algorithmen finden.