Hilfe: Ich sehe durch die ganze Api's nicht mehr durch!

Status
Nicht offen für weitere Antworten.

spyboot

Bekanntes Mitglied
Hi Leute!

Ich hab ein Problem:

Wenn ich jetzt zb. ein 3D Spiel programmieren will verwende ich java3D (was ich noch nicht verstanden hab).
Aber was genau ist Jogl und der ganze andere kram?
Ich weiß nicht einmal wie ich ein 3D Object exact positionieren kann!
Ist JOGL sowas wie ein Apklatsch von Java3D?
Und wenn ja: Was lohnt es sich eher anzueignen?
Ich finde Java3D ziehmlich kompliziert:

Zuerst dachte ich es wäre so als ob mann einen JFrame verwaltet:Mann übergibt ihm dass Objekt und kann es hinterher noch verändern.
Doch in Java3D geht dass nicht...

Und wenn ich jetzt ein Objekt hinzufügen oder entfernen will muss ich dann die ganze Szene neu aufbauen?
Muss ich wenn ich eine Animation erstellen will alles irgendwie bei diesem Timer einstellen oder kann ich dass auch wie bei Graphics2D alles einfach immer wieder mit den aktuellen koordinaten neuzeichnen lassen?

Es wäre sehr net wenn mir jemand auf diese ganzen Fragen eine Antwort geben könnte!
 

Marco13

Top Contributor
EINE Antwort wird da schwierig. Ohne dich desilliusionieren, demotivieren, diskreditieren oder deinen Enthusiasmus dämpfen zu wollen: Ein 3D-Spiel ist nicht gerade etwas, womit mal einfach so anfängt. (Sei es in bezug auf das Programmieren an sich, oder als Projekt...).

Vielleicht suchst du eher sowas, wie das, was man mit http://www.google.com/search?hl=de&q=3d+game+creator&btnG=Suche&lr= findet?

Aber ich versuch's...

Wenn ich jetzt zb. ein 3D Spiel programmieren will verwende ich java3D (was ich noch nicht verstanden hab).
Das ist eine Möglichkeit. Eine Alternative wäre z.B. JOGL

Aber was genau ist Jogl und der ganze andere kram?
JOGL ist eine Bibliothek, mit der man direkt OpenGL-Befehle in Java ausführen kann. Man kann zwar interessantere Effekte erreichen als mit Java3D (Shader verwenden usw, und effizienter wäre es u.U. auch) aber der Aufwand wäre deutlich (!) höher. Der "ganze andere Kram" ist anderer Kram :roll:

Ich weiß nicht einmal wie ich ein 3D Object exact positionieren kann!
Indem man es an einen TransformNode hängt, dem man die passende Transform3D gibt..... :roll: Siehe dazu ein Java3D-Tutorial...


Ist JOGL sowas wie ein Apklatsch von Java3D?
Siehe oben: Nein. Aber soweit ich weiß gibt es Bestrebungen, Java3D und JOGL zu mischen.

Und wenn ja: Was lohnt es sich eher anzueignen?
Die beiden Technologien sind recht "orthogonal" zueinander. Forensuche liefert Threads, die die beiden vergleichend gegenüberstellen.


Ich finde Java3D ziehmlich kompliziert:

Dann lass' die Finger von JOGL :wink:

Zuerst dachte ich es wäre so als ob mann einen JFrame verwaltet:Mann übergibt ihm dass Objekt und kann es hinterher noch verändern.
Doch in Java3D geht dass nicht...


Doch, das geht, und der Vergleich mit dem JFrame ist hier garnicht sooo unangebracht: Auch mit Components baut man eine Hierarchie auf: Oben der JFrame, darin Panels, darin Buttons. Genau wie der Szenegraph in Java3D: Oben das Universe, darin ein Node, darin ein Shape3D....

Und wenn ich jetzt ein Objekt hinzufügen oder entfernen will muss ich dann die ganze Szene neu aufbauen?

Nein. Um die Objekte zu verändern, muss man wissen, welche Veränderung man machen will, und wie man sie erreicht. Oft müssen passende Capability-Bits gesetzt werden. Siehe dazu ein Java3D-Tutorial...

Muss ich wenn ich eine Animation erstellen will alles irgendwie bei diesem Timer einstellen oder kann ich dass auch wie bei Graphics2D alles einfach immer wieder mit den aktuellen koordinaten neuzeichnen lassen?

Um's Neuzeichnen braucht man sich bei Java3D nicht zu kümmern. Animationen kann man mit Interpolatoren und einem passenden Alpha-Objekt erreichen. Siehe auch dazu: Tutorials, Tutorials, Tutorials....


Vielleicht wäre für den Einstieg sowas wie http://www.jmonkeyengine.com/ am ehesten geeignet. Man bekommt damit zwar vermutlich nicht so mit, was "unter der Oberfläche" eigentlich passiert, aber ... man hat vermutlich schneller Erfolgserlebnisse.........
 

spyboot

Bekanntes Mitglied
Ok!

ich habe mich jetzt in Java3D ein wenig eingearbeitet kann jetzt auch eine Rotation mit Transform3D um mehrer Achsen machen.

Jetzt habe ich noch eine Frage:

Wenn ich wie es bei einem JFrame bzw Frame möglich gewesen wäre die Rotation zb um die X achse nachträglich veränder passiert nichts und wenn ich sie veränder und sie nachträglich wieder der TransformGroup und danach der Banchgruop hinzufüge krieg ich einen Fehler!

Kann mir jetzt einer erklären wie ich sowas nachträglich machen kann?
Einfach mit einem Timer eine Animation einstellen geht nicht da es ja "sofort" passieren soll und weil es ja auch keine Animation werden soll.
 

spyboot

Bekanntes Mitglied
Äh wie kann ich jetzt ein Object um seine eigene Axe drehen?
Wenn ich es über transform drehe dreht es sich immer um die 0,0,0 koordinate!
 

spyboot

Bekanntes Mitglied
^^hatt sich erledigt hab einfach mehrere transform groups gemacht.

rotation>position>banchgroup
 

Landei

Top Contributor
Eine gute Alternative zu Java3D ist

www.jmonkeyengine.com

insbesondere, weil diese mehr "spielorientiert" ist als Java3D mit seinem allgemeinerem Anwendungsbereich, insbesondere was Effekte (Schatten, Wasser, Nebel, Partikelsysteme) angeht. Dokumentation ist manchmal etwas rar, aber es gibt ein paar Demos und Tutorials, und die Communitiy ist auch hilfsbereit.
 

spyboot

Bekanntes Mitglied
Ich hab mir die JMonkeyEngiene jetzt schonmal angeschaut und grafisch macht sie ja einiges her aber: Sie ist im vergleich zu Java3D ungefär 3-mal so langsam (fpps) wenn man nur einen würfel dargestellt haben will.

Nun aber zu einer anderem Problem:

ich habe einen Texturloader aus dem internet:

Code:
private static Appearance textur(String filename) {
        Appearance appear = new Appearance();
		 
        System.out.println("TexturedPlane attempt to load file: "+filename);
        TextureLoader loader = new TextureLoader(filename,frame);
        ImageComponent2D image = loader.getImage();
 
        if(image == null) {
                System.out.println("Fehler: "+filename);
        }
 
        System.out.println("Image width  = " + image.getWidth());
        System.out.println("Image height = " + image.getHeight());
        
       
        Texture2D texture = new Texture2D(Texture.BASE_LEVEL, Texture.RGB,
                                          image.getWidth(), image.getHeight());
        texture.setImage(0, image);
        texture.setEnable(true);
        texture.setMagFilter(Texture.NICEST);
 
        appear.setTexture(texture);
 
        appear.setTransparencyAttributes(
           new TransparencyAttributes(TransparencyAttributes.FASTEST, 0.1f));
       
        return appear;
	}

soweist sogut dochwenn ich ihn jetzt zb mit textur("tex.jpg") starte dann ist mein Objekt lediglich einfarbig!
(es scheint immer die farbe des 1x1 Pixels meines Bildes zu haben).

Hatt einer eine Idee woran dass liegen könnte?
-----
Ich denke ich werde diesen Thread nach dieser Frage schließen.
 

Marco13

Top Contributor
Dass die JMonkeyEngine bei einem Würfel dreimal so langsam ist, wie J3D, kann gut sein. Aber wenn man mal nicht nur EINEN (ggf. sogar noch utexturierten) Würfel hat, sondern 10 Texturierte Würfel, ist J3D vielleicht nurnoch doppelt so schnell, und bei einer komplexen Szene vielleicht nurnoch 10% schneller. Man hat oft diesen Tradeoff: Entweder, man macht alles höchst-optimiert "per Hand", oder man macht sich das Leben leichter. Anders formuliert: Mit reinem JOGL wäre die FPS vielleicht noch dreimal so hoch wie die von J3D, aber der Code auch dreimal so lang :wink:

Zur letzten Frage: Hast du deinem Objekt vernünftige Texturkoordinaten gegeben?
 

Landei

Top Contributor
Nochmal zu JMonkeyEngine: Je nachdem, was du machen willst, gibt es viele Optimierungsmöglichkeiten: Rufst du den Würfel mit StandardGame auf oder dem langsameren SimpleGame usw.? Ich habe schon Szenen mit riesigen Terrains inklusive Bäumen in JME gesehen, und die FPS waren in Ordnung (manchen Modi sind auch ganze bewußt auf einen festen Wert wie 60fps oder so begrenzt - mehr bekommt unser Gehirn ja sowieso nicht mit).
Ich will nicht behaupten das JME die beste Java-3D-Engine ist, aber das eingebaute Java3D ist mit Sicherheit die schlechteste (für Spiele, wohlgemerkt).
 

Marco13

Top Contributor
Java3D erhebt glaubich garnicht den Anspruch, eine "Engine" zu sein - es ist nur eine API ... auf basis derer man eine Engine basteln könnte ... :? oder so
 

Landei

Top Contributor
So kann man es auch sehen.

Ich finde es halt doof, dass sich so viele angehende Spiele-Programmierer mit Java3D rumquälen, wenn es bessere Alternativen gibt, bei denen viele spielspezifische Sachen schon vorgefertigt sind. Ich habe auch mal mit Java3D rumgespielt - ganz nett, aber eigentlich Zeitverschwendung (außer für Leute, die es lieben, beim Urschleim anzufangen). Was nützen dir die FPS, wenn dein Spiel dafür aussieht wie sterile hingeschmissene Bauklötze, weil dir Effekte, Physik usw. fehlen?
 

spyboot

Bekanntes Mitglied
das Spiel muss ja nicht nur aus Vierecken bestehen.
Ich hab mir blender geholt und verwnde den Obj loader von Sun das reicht allemal um zb. ein einfaches Space-Game zu machen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Atten007 Minecraft Hilfe bei benutzerdefinierten Bannervorlagen in MCreator benötigt Spiele- und Multimedia-Programmierung 0
R Flappy Bird Hilfe Spiele- und Multimedia-Programmierung 1
Atten007 Minecraft Hilfe bei der Fehlerbehebung in MCreator benötigt Spiele- und Multimedia-Programmierung 1
Atten007 Minecraft Hilfe beim MCreator Plugin benötigt Spiele- und Multimedia-Programmierung 0
Atten007 Minecraft Hilfe beim MCreator Plugin benötigt Spiele- und Multimedia-Programmierung 5
A [HILFE] - Minecraft-Problem! Spiele- und Multimedia-Programmierung 1
JEP1 Hilfe bei Spiel Spiele- und Multimedia-Programmierung 1
J TreeNode erstellen [Hilfe beim Konstruktor, Zeile 16] Spiele- und Multimedia-Programmierung 2
Z Minecraft Hilfe bei Minecraft PvP Client Spiele- und Multimedia-Programmierung 21
T Hilfe beim Platzieren der Schiffe Spiele- und Multimedia-Programmierung 14
M Brauche Hilfe was zu Programmieren Spiele- und Multimedia-Programmierung 4
P Snake Java Hilfe Spiele- und Multimedia-Programmierung 4
RalleYTN Brauche Hilfe beim Einlesen von PNGs Spiele- und Multimedia-Programmierung 14
P Hilfe für Seminar Arbeit Spiele- und Multimedia-Programmierung 9
T Pong Hilfe bei einer Website Spiele- und Multimedia-Programmierung 4
T Hilfe bei decompilen von Plugin Spiele- und Multimedia-Programmierung 6
E Brauche Hilfe was soll ich tun Spiele- und Multimedia-Programmierung 7
B HILFE bei Spieleprogrammierung mit Slick2D Spiele- und Multimedia-Programmierung 9
S Würfelspiel; Hilfe Spiele- und Multimedia-Programmierung 3
M Hilfe bei vier gewinnt Spiele- und Multimedia-Programmierung 4
S Hilfe bei Java Gui Spiele- und Multimedia-Programmierung 2
C Visual Story programieren/hilfe Spiele- und Multimedia-Programmierung 5
L Hilfe: Moog VCF Diskretisierungs Algorithmen (Smith/Stilson u.A.) Spiele- und Multimedia-Programmierung 0
J Spielfiguren laufen lassen auf einer html Tabelle mit Hilfe von Servlets Spiele- und Multimedia-Programmierung 2
M Hilfe bei Snake Spiele- und Multimedia-Programmierung 4
T Hintergrundmusik eines Spiels mit Hilfe von JLayer Spiele- und Multimedia-Programmierung 12
S 2D mit Slick - Anfänger sucht Hilfe Spiele- und Multimedia-Programmierung 4
C Generelle Hilfe zur lwjgl Spiele- und Multimedia-Programmierung 0
J Hilfe bei Fußballmanager Spiele- und Multimedia-Programmierung 0
C Hilfe bei einem Mosaikspiel Spiele- und Multimedia-Programmierung 16
J Java Steuerberechnung hilfe Spiele- und Multimedia-Programmierung 17
U Hilfe bei Implementierung eines PointSounds in Java3D Spiele- und Multimedia-Programmierung 1
E Hilfe bei Labyrinth Programmierung. Spiele- und Multimedia-Programmierung 9
S Hilfe bei Spiel Spiele- und Multimedia-Programmierung 6
T Aim-Hilfe Spiele- und Multimedia-Programmierung 4
S Shiritori / word chain / Wörterkette Hilfe Spiele- und Multimedia-Programmierung 1
J Hilfe bei mastermind dringend !!!!! Spiele- und Multimedia-Programmierung 3
S Hilfe bei Spielumsetzung Spiele- und Multimedia-Programmierung 6
M Kleines Spongebobspiel / Hilfe gesucht Spiele- und Multimedia-Programmierung 2
L Hilfe bei Entities benötigt Spiele- und Multimedia-Programmierung 6
L Hilfe bei Klassendesign für Spiel Spiele- und Multimedia-Programmierung 2
A Minecraft Hilfe bei Minecraft Mod Spiele- und Multimedia-Programmierung 1
F Einen Sound mit veränderter Tonhöhe und Geschwindigkeit abspielen - Hilfe erbeten Spiele- und Multimedia-Programmierung 29
V Keine Ahnung von OpenGL! Hilfe wäre lieb! Spiele- und Multimedia-Programmierung 8
L Minecraft Minecraft Bukkit Plugin hilfe Spiele- und Multimedia-Programmierung 9
E Hilfe bei Highscore programmierung Spiele- und Multimedia-Programmierung 3
G Acht-Damen-Problem HILFE! Spiele- und Multimedia-Programmierung 11
R Hilfe bei Snake-Programmierung Spiele- und Multimedia-Programmierung 6
B Hilfe bei Minecraft Plugin Spiele- und Multimedia-Programmierung 3
C Java Brauche Hilfe Spiele- und Multimedia-Programmierung 5
M Hilfe bei Spiel Programmierung Spiele- und Multimedia-Programmierung 4
B Hilfe bei GameGrid Spiele- und Multimedia-Programmierung 11
J Spiel mit Java SWING, LWJGL und JMonkey [Anfänger braucht Hilfe] Spiele- und Multimedia-Programmierung 10
N Hilfe bei Tower Defense Spiele- und Multimedia-Programmierung 22
R hilfe bei 2DSpiel. Spiele- und Multimedia-Programmierung 3
S AirHockey Kollisionsprobleme, bitte um Hilfe Spiele- und Multimedia-Programmierung 2
L Abfrage-Fehler? - Hilfe bei Tetris Spiele- und Multimedia-Programmierung 9
R Hilfe bei Reversi/Othello Spiele- und Multimedia-Programmierung 6
J Hilfe: Rotation X und Y Achse (Java3d) Spiele- und Multimedia-Programmierung 12
B Hilfe bekomme den IF befehl nicht hin Spiele- und Multimedia-Programmierung 10
C RFID Überwachung - Hilfe Spiele- und Multimedia-Programmierung 3
javajavajava Java Lotto Zahl 6 aus 49 - Brauche Hilfe Spiele- und Multimedia-Programmierung 3
radiac FullScreenExlusiveMode HILFE!!! Spiele- und Multimedia-Programmierung 6
E TetrisApplet Thread Hilfe Spiele- und Multimedia-Programmierung 6
H PingPong HILFE !!! Spiele- und Multimedia-Programmierung 3
G GO-Spiel in Java noch fehlerhaft hoffe um hilfe Spiele- und Multimedia-Programmierung 7
N Brauche Hilfe bei kleinem Spiel Spiele- und Multimedia-Programmierung 40
N In einem Kasten springende Bälle programmieren...Hilfe Spiele- und Multimedia-Programmierung 7
L Brauche hilfe mit KeyEvent Spiele- und Multimedia-Programmierung 4
B brauche hilfe bei der tastenzuodnung Spiele- und Multimedia-Programmierung 3
E Hilfe bei einer GUI Programmierung mit Graph Spiele- und Multimedia-Programmierung 30
H Decke zeichnen mit Hilfe eines Polygons Spiele- und Multimedia-Programmierung 2
W Hilfe bei Pong mit Bluej Spiele- und Multimedia-Programmierung 4
A Hilfe bei der Methode COLOR (Java) Spiele- und Multimedia-Programmierung 10
N Hilfe bei snake Spiele- und Multimedia-Programmierung 37
C Hilfe bei einfachen Game Spiele- und Multimedia-Programmierung 15
T Bitte um Hilfe bei Animationen Spiele- und Multimedia-Programmierung 10
G Fragespiel, Hilfe ! like Wer wird Millinär Spiele- und Multimedia-Programmierung 12
D Hilfe mit mini-spiel für die Schule. Spiele- und Multimedia-Programmierung 1
F Brauche Hilfe bei Bewegung eines Rechtecks [Applet] Spiele- und Multimedia-Programmierung 5
G Hilfe bei 3Gewinnt! Spiele- und Multimedia-Programmierung 2
C anfänger braucht hilfe für info unterricht Spiele- und Multimedia-Programmierung 21
A Hilfe bei Programmierung von Abalone Spiele- und Multimedia-Programmierung 6
S Hilfe bei Galgenmännchen Spiele- und Multimedia-Programmierung 4
M 'Mensch ärgere Dich nicht' - Hilfe! Spiele- und Multimedia-Programmierung 12
K Hilfe bei Grafikeinbindung in einem Spiel Spiele- und Multimedia-Programmierung 6
H Ich benötige Hilfe [Noob] Spiele- und Multimedia-Programmierung 9
R Probleme mit Sound in Applikation. HILFE Spiele- und Multimedia-Programmierung 5
B Hilfe gesucht!! (bewegen von grafischen Objekten) Spiele- und Multimedia-Programmierung 3
L wo sehe ich die Range und die Hitbox im Minecraft Sourcecode? Spiele- und Multimedia-Programmierung 2
P Zahlenwert durch Methode ersetzen Spiele- und Multimedia-Programmierung 1
D Iterieren durch einen Ordner mit Audiodateien und verketten eine andere Audiodatei Spiele- und Multimedia-Programmierung 17
A Spielfelder erstellen mit Jogl Java durch ein Koordinaten Array Spiele- und Multimedia-Programmierung 1
R Durch String Platform Game erstellen Spiele- und Multimedia-Programmierung 8
lord239123 JMonkey Schatten werden durch Terrain hindurch angezeigt Spiele- und Multimedia-Programmierung 1
R Mp3 Rating (POPM) durch JAudioTagger? Spiele- und Multimedia-Programmierung 2
M Objekte verschwinden durch Explosion Spiele- und Multimedia-Programmierung 2
B j3d Kamera Rotation durch Tastendruck Spiele- und Multimedia-Programmierung 12
I Framerate-Einbrüche durch Synchronisation Spiele- und Multimedia-Programmierung 12
E [JAVA3D] Schattenstrich durch die Szene Spiele- und Multimedia-Programmierung 4

Ähnliche Java Themen

Neue Themen


Oben