# Welche ist die beste Java3D-Engine



## MPW (19. Jan 2006)

Moin zusammen,

ich wollte mal fragen, was ihr fuer die beste Java3D Engine haltet?

Ich kenne diese:

 - Java3D
 - JOGL
 - JMonkeyengine

*Wenn ihr noch andere kennt, bitte posten, will alles kennen lernen;-)*

Bitte organisiert eure Antworten nach follgenden Kriterien, da mich diese besonders interessieren:

 - technische Sacherhalte, wie Plattform(un)abhaengigkeit, Einsatzmoeglichkeiten, Performence
 - Schwierigkeitsgrad zum erlernen.
 - subjektive Eindruecke die ihre gesammelt habt, evtl. Beispiele etc.

Und natuerlich abstimmen;-)


----------



## DeepBlue (19. Jan 2006)

Also ich benutze Java3D und kann eigentlich nur dazu was sagen. Die anderen Engines kenn ich nur vom hörensagen.



			
				MPW hat gesagt.:
			
		

> - technische Sacherhalte, wie Plattform(un)abhaengigkeit, Einsatzmoeglichkeiten, Performence



Das gute an Java3D ist imo die Platformunabhängigkeit. Da es in der Anwendung relativ losgelöst von OpenGL ist. Man greift als Programmierer kaum bzw gar nicht auf OpenGL Funkltionen zu. Solange Java3D von Sun gepflegt wird, sollte es auch immer funktionieren, unabhängig von der aktuellen OpenGL Version. Zudem sollte es auch möglich sein Java3D mit DirectX zu benutzen, aber da bin ich mir nicht wirklich sicher.

Einsatzmöglichkeiten sind eher einfachere 3D Anwendungen und 3D Szenen. Für Spiele oder sehr komplexe Anwendungen reicht die Performance eher nicht aus. Zudem fehlt dazu die Nähe zur OpenGL Schnittstelle.




			
				MPW hat gesagt.:
			
		

> - Schwierigkeitsgrad zum erlernen.



Einer der Pluspunkte für Java3D. Es wurde versucht eine 3D Engine in den Objektorientierten Stil von Java zu integrieren., was meiner Meinung nach gut gelungen ist. Wenn man davon absieht, dass es leider recht wenige gute deutsche Quellen gibt und man sich eher auf englische Texte stürzen sollte, ist Java3D aufgrund der Struktur recht einfach zu erlernen. Schade ist allerdings, das sich viele Tutorials, Beispiele und Texte auf Version 1.2 oder sogar früher beziehen. 



			
				MPW hat gesagt.:
			
		

> - subjektive Eindruecke die ihre gesammelt habt, evtl. Beispiele etc.



Ich hab mich in Java3D selbst eingelernt hauptsächlich mit Hilfe des Sun Tutorials für die Version 1.2 und ein paar Beispiel Programmen. Man muss sehr viel rumprobieren und besonders das setzen der richtigen Capabilities (Bitflags die gesetzt werden müssen um später eine gerenderte Szene noch modifizieren zu können ) ist oft sehr nervig. Dennoch sind die Möglichkeiten, die einem von Java3D geboten werden für die meisten Anwendungen ausreichend und relativ leicht zu realiseren.


----------



## Bleiglanz (19. Jan 2006)

hab bisher auch nur rumgespielt

Java3D

klar besser, abstrakte Modellierungs API (ohne sichtbaren OpenGL Bezug)

JOGL 

ist wohl nur eine Wrapper API für OpenGL, da verbringt man wohl viel Zeit mit Sachen, die in Java3D "out of the Box" kommen

rein subjektiv scheint aber JOGL etwas schneller (und können wohl die Grafikkarten besser "ausreizen"), zumindest die Demos die ich mal angeschaut habe sind teilweise extrem und so in Java3D wohl schwierig nachzubauen?

Bin aber auch kein Experte


----------



## AlArenal (19. Jan 2006)

Da gibts doch im Netz schon 1001 Artikel, Forum-Threads und Vergleiche zu...


----------



## DeepBlue (19. Jan 2006)

Bleiglanz hat gesagt.:
			
		

> rein subjektiv scheint aber JOGL etwas schneller (und können wohl die Grafikkarten besser "ausreizen"), zumindest die Demos die ich mal angeschaut habe sind teilweise extrem und so in Java3D wohl schwierig nachzubauen?



Könntest du mir die Demos mal linken, die du dir angeschaut hast ? Dann könnte ich dir vielleicht sagen, ob man das mit Java3D auch machen kann  Bin zwar auch kein Experte, muss mich aber gerade näher mit Java3D beschäftign und stecke daher gerade in der Materie drin


----------



## Bleiglanz (19. Jan 2006)

https://jogl-demos.dev.java.net/

http://today.java.net/pub/a/today/2004/07/20/fluidiom.html

davon hatte ich mal ein WebStart aufgerufen, finde ich aber leider nicht mehr

http://www.bytonic.de/html/jake2_webstart_de.html

Quake2 mit JOGL, funktioniert sogar per WebStart...


----------



## AlArenal (19. Jan 2006)

https://jogl-demos.dev.java.net/


----------



## DeepBlue (19. Jan 2006)

Also ich denke auch, dass es so ist wie du bereits sagtest: Anwendungen und Spiele, wo es darauf ankommt hardwarenah und performant zu arbeiten, sind mit Java3D eher nicht realisierbar. Java3D ist eher für einfacherere 3D Anwendungen und Szenen / Animationen nützlich, da dort relativ schnell und einfach befriedigende Ergebnisse erzielt werden können.

Quake 2 in J3D oder einige Beispiele von der jogl-demos Seite wird man unmöglich in J3D umsetzen können. Dieses süße Fluid Tierchen allerdings wäre durchaus auch in J3D denkbar


----------



## AlArenal (19. Jan 2006)

Gibts denn in J3D die Möglichkeit das Ganze mal ganz flockig z.B. als TableCellRender oder sowas zu benutzen?


----------



## DeepBlue (19. Jan 2006)

Ich kenn mich mit dem TableCellRenderer nicht wirklich aus, aber ich vermute mal eher nicht :/


----------



## AlArenal (19. Jan 2006)

Hm.. gerade diese Komnination von Swing und 3D finde ich aber spannend


----------



## DeepBlue (19. Jan 2006)

Naja die Probleme fangen schon da an, dass Swing lightweight ist und die Canvas Komponenten, die eine Java3D Szene darstellen sind heavyweight ...


----------



## AlArenal (19. Jan 2006)

..das macht nen Pluspunkt für JOGL, da geht das nämlich  Allerdings wohl derzeit auch nur mit Mustang...


----------



## MPW (19. Jan 2006)

Hm, also da ich eher auf performante Spieleengines stehe, und komplexe Java3D szenen schnell mal haengen, werde ich wohl mit JOGL anfangen, da mich auch eher Demos und kleinere Spiele interessieren.


----------



## EgonOlsen (21. Jan 2006)

Jogl hat da nichts verloren, weil es keine 3D Engine ist. Es fehlen noch Xith3D und meine eigene (jPCT). Ansonsten gibt es noch ein paar mehr..kann man alle hier finden:

javagamesfactory.org

Sofern die Seite nicht mal wieder breit ist, was leider oft der Fall ist...


----------



## Campino (21. Jan 2006)

JMonkeyEngine

*technische Sacherhalte, wie Plattform(un)abhaengigkeit, Einsatzmoeglichkeiten, Performence:*

Vom Aufbau her nutzt sie die LightWeightJavaGameLibary, ist also für alle plattformen verfügbar, die diese Unterstützt, dass dürften etwa alle sein...

Performance: sehr gut, nur einige Tools (z.B. JMEDesktop) machen Probleme, aber die muss man ja nicht nutzen... 

Einsatzmöglichkeiten: Wohl größtenteils Echtzeit-Sachen, Games(dafür wurde sie entwickelt) usw...man ist an den Spielschleifen-Aufbau gebunden, dass sollte aber kein Problem sein.

*Schwierigkeitsgrad zum erlernen*

Einfacher als JOGL, man kann sich die internen OpenGL-Sachen sparen, mit Java3D habe ich noch nicht gearbeitet...

*subjektive Eindruecke die ihre gesammelt habt, evtl. Beispiele etc.*

Klasse!! Ich fand es leicht erlernbar, durchdacht und gut umgesetzt (Performance, sieht ganz gut aus usw.). Außerdem findet man auf der Seite (www.jmonkeyengine.com) gute Tutorials, die einen schnellen Einstieg ermöglichen. Etwas schade ist, dass die angebotenen binary-Realeases veraltet sind, um Arbeit mit der CVS kommt man also nicht herum, aber das sollte sowieso zum Standard gehören...

Beispiele:
http://www.javagaming.org/forums/index.php?topic=10664.0

Ansonsten kenne ich noch Xith3D, den großen Konkurenten von JME und die LWJGL, mit beiden habe ich aber noch nicht gearbeitet...


----------

