# 3D Objekt Visualisierung



## Shaguar (10. Jan 2012)

Hi zusammen,

ich fange gerade an einen kleinen 3D Objekt Viewer zu basteln.
Ich möchte einfach ein 3D Objekt darstellen lassen, sei es ein Möbelstück, welches vom Benutzer mit der Maus gedreht werden können soll und bei Bedarf vielleicht noch die Oberfläche des Objektes dynamisch zu verändern, mit einer anderen Struktur oder Oberflächenmuster.
Meine Frage an euch wäre es jetzt was ihr für Möglichkeiten kennt um so etwas zu realisieren.
Es können ruhig andere Sprachen sein als Java, es ist theoretisch egal.
Mich würde interressieren was ihr dort an Frameworks kennt etc, in Java3D habe ich schon mal kurz reingeschnuppter...
Anforderungen wären höchsten das es leicht portierbar ist, so das der Benutzer später nicht allzuviel nachinstallieren muss damit es läuft, sowas wie Flash nachinstallieren wäre noch verkraftbar, aber nicht viel mehr. Und gut wäre auch noch wenn es eine freie Software Lizenz wie GPL v2 oder v3 etc hätte, ist aber kein K.O. Kriterium, wenn eine Lösung wirklich gut ist, überzeugt und ein Lizenzkauf gerechtfertigt ist dann wäre das durchaus auch überlegenswert.

Ich bedanke mich schon einmal im Vorraus für eure Mühe.

Gruß


----------



## dayaftereh (10. Jan 2012)

Hallo,

Ich schätze mal du willst OpenGL nutzen, um Hardware Beschleunigung zu bekommen. Das es fast für jede gängige Sprache eine Schnittstelle zu OpenGL gibt, kommt es auf den Aufwand an den du betreiben willst.

C/C++ hier hast du natürlich das Problem mit Plattform Abhängigkeit und müsstest so, für jede Plattform Binares bereit stellen. Aber dafür fast direkte Anbindung an OpenGL.

C# / Mono: Eine Plattform Abhängigkeit , doch es gibt verschiedene Schnittstellen zu OpenGL, ich diese Sprache eine nette Lösung zu C/C++. Hier müsstest du natürlich auch verschiedene Binares für die Plattformen anbieten.

Java: Gibt es LWJGL oder JOGL. Die native Bibliotheken mit bringen, hier müsste man schau das man für die richtige Plattform auch die korrekte native Bibliotheken bekommt, ich glaube LWJGL kann sogar selbst erkennen welche Bibliothek es brauch.

Python: eine Schicke Sprache, doch dafür muss sichergestellt werden das ein Python Interpreter mit OpenGL Bibliothek  vorhanden ist, wenn nicht muss nach Installiert werden.

WebGL / HTML5: Hier bist du nur Browser abhängig!

Ich schätze mal egal welche Sprache du nutzt, benötigst du eine nahe Verbindung zum Betriebssystem  und musst für die Verschiedenen Betriebssystem Arten eigene Release's machen. Ich würde mir die Sprache mit der du am besten Klar Kommst nehmen und versuchen eine Anbindung an OpenGL hinzubekommen.


----------



## Shaguar (10. Jan 2012)

Also ich sollte vielleicht noch erwähnen das es in eine bereits existierende Java Software integriert werden soll. Aber ich bin ja dank Applets trotzdem Sprachenunabhängig.
Aber Danke schon mal für den kurzen Einblick von dir, das hilft mir schon mal ein wenig weiter.
Du hast gar nichts zu Java 3D gesagt, mich würden vorallem mal die Vor- & Nachteile von Java 3D <-> JOGL <-> LWJGL interressieren.


----------



## dayaftereh (10. Jan 2012)

Hey,

Ich habe mit Java3D noch nicht gearbeitet aber ich habe gesehen LWJGL und Java3D nutzen die Rendering-Pipeline JOGL. Das bedeute in der Anbindung an OpenGL geben sich beide Frameworks nicht, doch ich glaube Java3D ist mehr Richtung Objekt Orientierung gerichtet und nutzt bei OpenGL Display List um die  Vertices an zu zeigen. Wobei LWJGL schon auf die neueren Vertex Buffer Object aufsetzt. Beide bieten eine Möglichkeit 3D Sound zu verarbeiten. Ich würde LWJGL nutzen weil es neuer ist und von meinen Kenntnissen mehr bittet.LWJGL wird in Minecraft und JMoneyEngine genutzt. Java3D wird glaube ich auch nicht mehr weiter entwickelt und aus Java3D kann man keine Direkten OpenGL Zugriffe machen.


----------



## Shaguar (11. Jan 2012)

Hi,

ich hab noch ne Frage, wenn ich mich dazu entschließen sollte statt 3D Objekten nur 2D Objekte zu nehmen aber man bei diesen totzdem die Textur dynamisch ändern können soll, dann brauche ich dafür trotzdem ein 3D Objekt Modell oder?


----------

