Jogl oder Java3D ?

Friedhelm

Bekanntes Mitglied
Hallo,

Ich schlage mich jetzt schon seit Tagem mit OpenGL rum. Komme mit Jogl ganz gut klar... ist aber anstrengend (da gibts keine gekapselten 3D Objekte, man muss alles alleine linear aufbauen).

Frage: Wie ist das bei Java3D? War jemand auch schon mal vor der Entscheidung Jogl oder Java3D?
Ohne Java3D je programmiert zu haben, hatte ich den Eindruck bei einigen Java3D Demos, das Jogl ca. 2-3 Mal schneller ist beim rendern als Java3D. Also sollte man besser bai Jogl bleiben?


Noch was... Ich möchte gerne in Jogl Objekte in der der 3D Scene "anfassen" können (mit der Maus draufklicken) und bewegen. Tja, es gibt da wohl Tricks (AugenStrahlVerfolgung etc. - Bau das Rad neu), aber keiner rückt einen "anständigen" Source Code raus... alles wohl top secret... oder ich habe noch nicht lange dannach gesucht (2 Tage).

Vielleicht hatte jemand hier das gleiche Problem und kann mir helfen.

Zum Schluss: wie läuft das unter Android... ist da OpenGL einfacher, wenn ja warum?
 

Antoras

Top Contributor
Ich hab mich nur mit den oberflächlichen Unterschieden zwischen OpenGL, Java3D und anderen Software Rasterizern/Engines auseinandergesetzt. In wie fern Java3D langsamer als OpenGL ist, kann ich dir leider nicht sagen.
Ich kann dazu nur sagen, dass Java3D's Code von Haus aus natürlich viel mehr bietet als nur Striche und so ein Zeugs zu rendern. Wenn du dir Java3D's Funktionalität erreichen möchtest, dann büßt du auch schnell Performance ein. Von dem her ist das nicht vergleichbar - Mikrobenchmarks mit ein paar sich drehenden Würfeln schon gleich zwei mal nicht.

Bezüglich Objekte selektieren: Google mal nach
Code:
opengl object selection
und
Code:
opengl picking
, da findest du genug - auch Codebeispiele (wahrscheinlich nur nicht unbedingt in Java).
 

Evil-Devil

Top Contributor
Alternativ einfach auf der JOGL Seite schauen. Die haben relativ viele Tutorials zu einer Vielzahl an Themen rund um OpenGL. ALternativ ein Buch zur OpenGL Programmierung organisieren und den vorliegenden C/C++ Code nach Java portieren.
 

Friedhelm

Bekanntes Mitglied
Hallo,

Ich wühle mich ja schon seit 2 Tagen durch Google :) Aber das mit dem Picking (Java) ist offensichtlich sehr schwierig.

Ok, ich wer mal weiter suchen... :)

Ist das unter Android mit OpenGL ebenso schwierig?
 
Zuletzt bearbeitet:

Friedhelm

Bekanntes Mitglied
Mal noch ne andere Frage:

Ich versuche gerade die OpenGL Scene (GLCanvas) in ein JPanel mit Hilfe von Jogl Screenshot zu projezieren. Das klappt gut, nur muss dazu die OpenGL Scene auf dem Bildschirm zu sehen sein.

Ich würde gerne den GLCanvas verstecken in dem die Scene läuft und das Abbild davon in einem Jpanel anzeigen lassen...

Hat dafür jemand einen Tip für mich, wie ich dem GLCanvas sagen kann "Hey, auch wenn Du nicht auf dem Screen zu sehen bist, rendere weiter Deine Scene und gib mir davon einen Screenshot!"
 

mattn

Aktives Mitglied
ich habs so...
Java:
PickTranslateBehavior pickT = new PickTranslateBehavior(rootBG, canvas, BigBounds);
PickZoomBehavior	      pickZ = new PickZoomBehavior(rootBG, canvas, BigBounds);

naja und dann kanst wenn du das brauchst mit der callbackmethode noch belibig was ausführen, wenn du was bewegst(linienverfolgung etc)
 

Friedhelm

Bekanntes Mitglied
ich habs so...
Java:
PickTranslateBehavior pickT = new PickTranslateBehavior(rootBG, canvas, BigBounds);
PickZoomBehavior	      pickZ = new PickZoomBehavior(rootBG, canvas, BigBounds);

naja und dann kanst wenn du das brauchst mit der callbackmethode noch belibig was ausführen, wenn du was bewegst(linienverfolgung etc)

Danke, aber ich versteh nur Bahnhof :)

Ich habe da mal eine MouseToJogleWorld Funktion gesehen, die notwendig ist, um ...

... mal sehen, vielleicht schmeiss ich das auch alles in die Ecke und warte bis mal ein gescheites 3D System kommt, bei dem man nicht in einer Dunkelkammer sitzt und verzweifelt den Buchstaben F sucht :D

Hab irgendwie keine Lust mehr auf dieses "gefrickle". Trotzdem erstmal Dank an Euch.

Werd mir das in ein paar Tagen mal unter Android anschauen...
 
G

Guest2

Gast
Moin,

Ich würde gerne den GLCanvas verstecken in dem die Scene läuft und das Abbild davon in einem Jpanel anzeigen lassen...

nur zur Sicherheit: GLJPanel kennst Du?
(Allgemein ist OpenGL und lightweight (z.B. Swing) immer ein wenig Haarig.)


Ist das unter Android mit OpenGL ebenso schwierig?

Android unterstützt OpenGL ES1.0 insofern vermutlich nicht viel anders als das was Du zurzeit mit OpenGL machst. Allerdings habe ich selber kein Android, kann Dir also auch nicht sagen ob es praktisch nicht noch irgendwo zusätzliche Schwierigkeiten gibt.


Aber das mit dem Picking (Java) ist offensichtlich sehr schwierig.

Nicht unbedingt, es gibt halt nur vor allem verschiedene Varianten. Und welche für Dich die Richtige ist, kann man pauschal nicht sagen. ;)

Das von mattn gepostete ist Java3D.

Vermutlich suchst Du was in der näheren Umgebung von gluUnProject.

Gruß,
Fancy
 

Evil-Devil

Top Contributor
Vielleicht solltest du dich nach einer passenden 3D Engine umschauen. Die wird in aller Regel die von dir gesuchten Dinge bereits bereit stellen.
 

Friedhelm

Bekanntes Mitglied
Ja, ich kenne GLPanel... ist unter Mac zu langsam (ist wohl ein Mac-JavaBug, bei Windows hat man die Probleme nicht, wie ich gelesen habe).

Ich werd mir mal JMonkeyEngine ansehen... Jogl pur kannste auf jeden fall vergessen :)


Nachtrag: ups, das ist ja eine GameEngine... kann ich nicht gebrauchen.
 
Zuletzt bearbeitet:

Landei

Top Contributor
Die Frage auf Java3D oder JOGL zu beschränken, ist ziemlich einseitig, nicht? Schließlich gibt es JMonkeyEngine, Ardor3D...
 

Friedhelm

Bekanntes Mitglied
Die Frage auf Java3D oder JOGL zu beschränken, ist ziemlich einseitig, nicht? Schließlich gibt es JMonkeyEngine, Ardor3D...

Ardor3D sieht ganz gut aus (sogar mit Collada Import)... und vor allem mit Android Support. So kann man auch gleich unter Android damit programmieren :)

Werd erstmal bei 2D weiter machen und dann in ein paar Wochen auf 3D umsteigen.
 

Friedhelm

Bekanntes Mitglied
Übrigens, wer unter Android Games machen möchte... dem kann ich "ShiVa 3D" empfehlen.

Da klickt man sich nen Game zusammen (WYSIWYG Software):

Cross-Platform 3D Game Engine with All-in-one Visual Editor


Kostet 160 Euro (kommerziell nutzbar), für Privatgebrauch ist es kostenlos (Es gibt zwar auch Unity, aber da kostet die Lizenz ca. 1600€ :D)

Ist zwar alles ganz gut und schön... nur nützt mir nichts, da ich ja keine Spiele machen will :)
 
Zuletzt bearbeitet:

mattn

Aktives Mitglied
Danke, aber ich versteh nur Bahnhof :)

Ich habe da mal eine MouseToJogleWorld Funktion gesehen, die notwendig ist, um ...

... mal sehen, vielleicht schmeiss ich das auch alles in die Ecke und warte bis mal ein gescheites 3D System kommt, bei dem man nicht in einer Dunkelkammer sitzt und verzweifelt den Buchstaben F sucht :D

Hab irgendwie keine Lust mehr auf dieses "gefrickle". Trotzdem erstmal Dank an Euch.

Werd mir das in ein paar Tagen mal unter Android anschauen...

das sind die einzigsten funktionen die implementieren musst um ein angeklicktes objekt in alle 3 Dimensionen verschieben zu können ...

Zoom - Z achse
Trans. - X+Y Achse
 

truesoul

Top Contributor
So etwas aufklärungsunterricht :D

Java3D ist für eine "belebte" bewegliche Welt ausgelegt.
Wenn man also eine Anwendung schreiben will, wo z.B ein Roboter bewegungsabläufe oder sonstige Animation durchführen soll , das ist Java3D besser.
Java3D hat übrigens die meisten Implementierten möglichkeiten Animationen durchzuführen.


OpenGL wird sehr oft für CAD Programme verwendet.
Also ist OpenGL für eine statische Welt ausgelegt. Es sind natürlich möglich Animationen mit OpenGL durchzuführen aber nicht so effektiv wie bei Java3D.
Bei OpenGL wird mehr Wert auf die Qualität der Darstellung gelegt als auf Animationen.
Meines Wissen gibt es keine Baumstruktur bei OpenGL.
Vorteil bei OpenGL , man kann es in unterschiedlichen Programmiersprache verwenden :)
Und es gibt JMonkeyEngine uvm.


P.S
Das Picking in Java3D gestalltet sich eigentlich recht einfach.
Es sind nur ein paar Zeilen von nöten und Picking zu verwenden.
 
G

Guest2

Gast
An hartwarebeschleunigter Grafik auf breiter Basis gibt es praktisch nur DirectX und OpenGL.

Die in diesem Thread genanten 3D Engines nutzen OpenGL (Java3D und Ardor3D imho Jogl bzw. JMonkeyEngine imho Jogl oder LWJGL). Eine 3D Engine ist nichts anderes als eine Abstraktionsschicht über OpenGL bzw. DirectX. Und bilden meistens einen Szenengraphen um eben das darzustellende einfacher handhabbar zu machen.

Eine Unterscheidung in "belebte" oder "statische" Welt ist damit nicht unbedingt korrekt.

OpenGL (insbesondere die aktuellen Versionen GL > 3.1 bzw. ES 2) ist praktisch ausschließlich dafür da um einen Satz von Dreiecken über eine "Berechnungsvorschrift" (Fixed-Function oder Shader) auf den Bildschirm zu bringen. Nicht mehr und nicht weniger. Das Ziel ist also etwas vollkommen anderes als das Ziel einer 3D Engine. Und damit nicht vergleichbar.

Gruß,
Fancy
 

Evil-Devil

Top Contributor
OpenGL wird sehr oft für CAD Programme verwendet.
Also ist OpenGL für eine statische Welt ausgelegt. Es sind natürlich möglich Animationen mit OpenGL durchzuführen aber nicht so effektiv wie bei Java3D.
Bei OpenGL wird mehr Wert auf die Qualität der Darstellung gelegt als auf Animationen.
Meines Wissen gibt es keine Baumstruktur bei OpenGL.
Trolle nicht füttern, ich weiß...aber bevor du dein bestes zu OpenGL gibst informiere dich bitte im Vorfelde. Zum einen nutzt Java3D zur Darstellungen DirectX bzw. wahlweise OpenGL und zum anderen stellt OpenGL lediglich Werkzeuge bereit. Das Haus muss man schon selbst erstellen.

Ein paar OpenGL Applikationen die mir spontan einfallen:
Quake 1 bis 4, Doom 3, allg. alle 3D Modellierungstools, medizinische wie auch wissenschaftliche Anwendungen. Zb. im Krankenhaus.

Und das Animationen in Java3D effektiver sein sollen als in OGL halte ich für ein Gerücht ^^
 

Marco13

Top Contributor
Trollig war das wohl nicht. Eher drollig :)

Vielleicht mal plakativ, also ohne zuu viel Wert auf Präzision zu legen: Ich will einen Würfel malen, der mit einem JPG texturiert ist.

OpenGL:
Code:
Definiere die Koordinaten des Würfels
Definiere die Texturkoordinaten für den Würfel
Definiere die Indizes für die Koordinaten
Lade ein JPG mit einer externen Bibliothek ( :eek: )
Bring die Bilddaten ins passende Format
Schreibe einen Shader ( :eek: )
Binde die Geometriedaten
Binde die Texturdaten
Male die gebundenen Daten
Un-binde die Geometriedaten
Un-binde die Texturdaten

Java3D:
Code:
Erstelle eine "Box"
Erstelle eine "Appearance"
Erstelle eine "Texture"
Füge alles zu einem Shape zusammen
Leg das Shape in den Szenegraphen

JMonkeyEngine:
Code:
Vermutlich sowas wie scene.addTexturedCube(size, textureFile)
:D


Oder anders gesagt: OpenGL und Java3D zu vergleichen, ist wie Assembler mit Java zu vergleichen. Und JME... ist dann Scala :D
 

truesoul

Top Contributor
Trolle nicht füttern, ich weiß...aber bevor du dein bestes zu OpenGL gibst informiere dich bitte im Vorfelde. Zum einen nutzt Java3D zur Darstellungen DirectX bzw. wahlweise OpenGL und zum anderen stellt OpenGL lediglich Werkzeuge bereit. Das Haus muss man schon selbst erstellen.

Ein paar OpenGL Applikationen die mir spontan einfallen:
Quake 1 bis 4, Doom 3, allg. alle 3D Modellierungstools, medizinische wie auch wissenschaftliche Anwendungen. Zb. im Krankenhaus.

Und das Animationen in Java3D effektiver sein sollen als in OGL halte ich für ein Gerücht ^^

Schande über mein Haupt, dann waren meine Informationsquellen wohl nicht die Richtige wahl, was nicht heißen soll das es an den Quellen lag, das ich solch falsche Information von mir preisgebe.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Neueinsteiger: JOGL oder Java3d Spiele- und Multimedia-Programmierung 20
E JOGL kein zugriff auf manche methoden Spiele- und Multimedia-Programmierung 5
A Spielfelder erstellen mit Jogl Java durch ein Koordinaten Array Spiele- und Multimedia-Programmierung 1
M [JOGL] Maus über einem gezeichnetem Objekt abfragen? Spiele- und Multimedia-Programmierung 5
M [JOGL] eclipse export Runnable Jar - startet nicht Spiele- und Multimedia-Programmierung 3
D [JOGL] bibliothek aus jar laden Spiele- und Multimedia-Programmierung 3
A JOGL Shader Anfängerprobleme Spiele- und Multimedia-Programmierung 2
A JOGL FloatBuffer vs Buffers Spiele- und Multimedia-Programmierung 2
A JOGL glBindBuffer einmalig oder mehrmalig? Spiele- und Multimedia-Programmierung 3
A Aufbau einer JOGL Anwendung Spiele- und Multimedia-Programmierung 12
Z lwjgl oder jogl nutzen Spiele- und Multimedia-Programmierung 9
A Jogl-Projekt unter 32-Bit kompiliert und unter 64-Bit ausführen, geht das überhaubt ?? Spiele- und Multimedia-Programmierung 9
turing JOGL Cubes performant Spiele- und Multimedia-Programmierung 17
M JOGL Cubus mit Rand darstellen Spiele- und Multimedia-Programmierung 3
T JOGL 2D Objekte drehen rotate Spiele- und Multimedia-Programmierung 4
X JOGL - wie zum laufen bringen? Spiele- und Multimedia-Programmierung 2
M Schatten mit JOGL Spiele- und Multimedia-Programmierung 4
D [JOGL 2.0] Kleines Problem mit freier Flugsteuerung Spiele- und Multimedia-Programmierung 3
U [JOGL 1.1.1a]Kleines Problem mit Text Overlays: Spiele- und Multimedia-Programmierung 19
D [JOGL] Freibewegliche Lichtquelle im Raum Spiele- und Multimedia-Programmierung 4
H JOGL 2.0 jars fehlen Spiele- und Multimedia-Programmierung 8
R JOGL: glUniformLocation gibt immer -1 zurück Spiele- und Multimedia-Programmierung 4
BattleMaster246 Problem mit Jogl Spiele- und Multimedia-Programmierung 14
Mikescher [JOGL] Access restriction Spiele- und Multimedia-Programmierung 6
K jogl einbinden Spiele- und Multimedia-Programmierung 6
X JOGL - Textur auf Quad verzerrt Spiele- und Multimedia-Programmierung 2
X JOGL - 2D Sprite richtig platzieren Spiele- und Multimedia-Programmierung 4
T JOGL im OrthoMode und Texturen verfärben sich Spiele- und Multimedia-Programmierung 3
J JOGL konfigurieren / Windows 7 64-bit Spiele- und Multimedia-Programmierung 7
R JOGL polygon smooth Spiele- und Multimedia-Programmierung 20
J [JOGL] Kamera zentrieren über Achse Spiele- und Multimedia-Programmierung 4
BattleMaster246 Schussrichtung festlegen - JOGL Spiele- und Multimedia-Programmierung 8
BattleMaster246 Jogl Libs werden nicht geladen Spiele- und Multimedia-Programmierung 5
A [JOGL] TextRenderer malt Fläche hinter Buchstaben aus Spiele- und Multimedia-Programmierung 2
V Jogl: Objekt trotz Rotation immer in gleiche Richtung bewegen Spiele- und Multimedia-Programmierung 5
U [JOGL]Libs und Dlls mitliefern: Spiele- und Multimedia-Programmierung 9
S JOGL Perspektive Spiele- und Multimedia-Programmierung 2
R 2D Grafik JOGL Spiele- und Multimedia-Programmierung 18
D jogl downloaden ... wo? Spiele- und Multimedia-Programmierung 3
S JOGL 64 bit Spiele- und Multimedia-Programmierung 7
A jogl 2d performance Spiele- und Multimedia-Programmierung 20
J JOGL mit Netbeans Spiele- und Multimedia-Programmierung 3
S Jogl findet keine GLProfile ? Spiele- und Multimedia-Programmierung 6
C Frage zu Ray-Picking mit JOGL Spiele- und Multimedia-Programmierung 13
F Game mit LWJGL/JOGL in executable JAR packen, wie? Spiele- und Multimedia-Programmierung 6
D Jogl:Textur auf GLUquadric wird vertikal spiegelverkehrt dargestellt Spiele- und Multimedia-Programmierung 2
F LWJGL Smoother animieren lassen (wie bei JOGL = Animator) Spiele- und Multimedia-Programmierung 3
F JOGL 2.0 Bug? Spiele- und Multimedia-Programmierung 3
N Ein paar fragen zu JOGL Spiele- und Multimedia-Programmierung 4
M JOGL - Mehr als nur ein Canvas - Texturpool Spiele- und Multimedia-Programmierung 7
S Jogl, no gluegen-rt :-( Spiele- und Multimedia-Programmierung 4
BattleMaster246 Pong - JOGL Spiele- und Multimedia-Programmierung 2
I JOGL: Problem mit Blending bei Billboards (Transparenz) Spiele- und Multimedia-Programmierung 2
1 JOGL: Fensterinhalt verschwindet sofort wieder Spiele- und Multimedia-Programmierung 3
jemandzehage JOGL 3D-Koordinaten des Klicks bestimmen Spiele- und Multimedia-Programmierung 2
P Erkennen auf welche Objekte gezeigt wird in JoGL Spiele- und Multimedia-Programmierung 6
E JOGL nur weißes Fenster Spiele- und Multimedia-Programmierung 2
Y 3D Koordinatensystem==> JOGL Spiele- und Multimedia-Programmierung 7
Y JOGL / OPENGL in Frame Spiele- und Multimedia-Programmierung 11
A JOGL Würfel hat durchsichtige Seiten? Spiele- und Multimedia-Programmierung 13
N Jogl Probleme mit dem Buffer beim laden einer Textur Spiele- und Multimedia-Programmierung 2
A Bewegungen mit JOGL Spiele- und Multimedia-Programmierung 12
P JOGL Button-klick-Problem Spiele- und Multimedia-Programmierung 2
S Jogl Problem bei Darstellung Spiele- und Multimedia-Programmierung 9
G JOGL Color stimmt nicht Spiele- und Multimedia-Programmierung 3
S JOGL Maven Dependency Spiele- und Multimedia-Programmierung 7
Developer_X JOGL - Sichtweite Spiele- und Multimedia-Programmierung 3
Developer_X JOGL Texturing Spiele- und Multimedia-Programmierung 31
Developer_X JOGL- Ich möchte mitmachen! Spiele- und Multimedia-Programmierung 23
X JOGL GL Kontext Initialisierung Spiele- und Multimedia-Programmierung 3
X Vertex Buffer Objects mit JOGL Spiele- und Multimedia-Programmierung 7
A JOGL / OpenGL Spiele- und Multimedia-Programmierung 7
P JOGL Cubemap Spiele- und Multimedia-Programmierung 7
P JOGL Installation Spiele- und Multimedia-Programmierung 15
J JOGL - Bild wird immer wieder weiß Spiele- und Multimedia-Programmierung 2
Antoras J3D / JME oder JOGL Spiele- und Multimedia-Programmierung 2
P GLSL in JOGL Spiele- und Multimedia-Programmierung 15
S jogl ins system einbinden Spiele- und Multimedia-Programmierung 3
W JOGL bleibt nach display() in PaintArea.paintComponent hängen Spiele- und Multimedia-Programmierung 5
S java /jogl /Texturen mit j3d Spiele- und Multimedia-Programmierung 3
S JOGL Fonts Spiele- und Multimedia-Programmierung 4
S JOGL Selection By Color Spiele- und Multimedia-Programmierung 3
E JOGL und TextRenderer Spiele- und Multimedia-Programmierung 9
H JoGL mit Anwendung verteilen... Spiele- und Multimedia-Programmierung 9
0x7F800000 weiß einer wozu ANTLR beim build von JOGL verwendet wird? Spiele- und Multimedia-Programmierung 3
H Jogl-Animator - Inhalt ändert sich nicht Spiele- und Multimedia-Programmierung 4
S JOGL + Multithreading Spiele- und Multimedia-Programmierung 2
P Probleme mit Vista und JOGL Spiele- und Multimedia-Programmierung 2
J Alpha Blending (jogl) Spiele- und Multimedia-Programmierung 5
G JOGL - glTranslate - Unterschiede bei zweimal Ausführen Spiele- und Multimedia-Programmierung 9
Kr0e Schattenproblem, JOGL, gluPerspective. Spiele- und Multimedia-Programmierung 2
J OpenGL (JOGL) - Radial Blur Effekt (Glow) Spiele- und Multimedia-Programmierung 2
J jogl - verschiedene Versionen Spiele- und Multimedia-Programmierung 7
Kr0e "gluSphere" (JOGL) soll Schatten werfen können Spiele- und Multimedia-Programmierung 5
A JOGL, Models Spiele- und Multimedia-Programmierung 4
A JOGL, etwas Grundlegendes Spiele- und Multimedia-Programmierung 8
Kr0e JOGL & Anpassung ins Fenster Spiele- und Multimedia-Programmierung 2
G JOGL: per Mausbewegung Objekt verschieben Spiele- und Multimedia-Programmierung 2
S In JOGL Java einbauen Spiele- und Multimedia-Programmierung 5
S Java 3D, JOGL, . Spiele- und Multimedia-Programmierung 3

Ähnliche Java Themen

Neue Themen


Oben