3D-Grafik JOGL - Verschiedene Perspektiven darstellen

JavaJ

Mitglied
Hallo zusammen,

ich bin gerade dabei mit JOGL (Java + OpenGL) eine 3D Ansicht zu realisieren. Dafür lasse ich mein Model in GLEventListener rendern (display()). In der init() Methode wird zuvor das Model geladen und die Perspektive festgelegt. Ich kann das Ganze auch schon anzeigen lassen in einem Frame. Jetzt will ich jedoch die Szene von mehreren verschiedenen Perspektiven anzeigen lassen (Frontansicht, Seitenansicht ...) Dafür könnte man ja mehrere GLEventListener erstellen, immer mit den gleichen Daten. Das müsste doch aber auch anderst gehen, oder? Dass man irgendwie in der display() Methode je nach Aufrufer vorher eine Rotation bzw. Translation durchführen kann.

Wie wird das umgesetzt? Kann mir da jemand helfen?
Danke schonmal!

Viele Grüße
 

Marco13

Top Contributor
Wenn alles in EINEN GLCanvas gerendert werden soll, sollte es eigentlich reichen, sowas zu machen wie (Pseudocode: )
Java:
void display()
{
    displayFront();
    displayLeft();
    ...
}

void displayFront()
{
    glViewPort(0,0,100,100);
    setViewMatrixForFront();
    renderScene();
}

void displayLeft()
{
    glViewPort(0,100,100,100);
    setViewMatrixForLeft();
    renderScene();
}
....

Oder meintest du was konkreteres?
 

JavaJ

Mitglied
Ja, so ähnlich hatte ich es auch gedacht. Muss ich dann meinen eigenen Animator dafür schreiben? Weil bei dem Standard Animator von Opengl sind die so schlau die run() Methode anonym zu machen, so dass man sie nicht überschreiben kann, also immer display() augerufen wird. Ich will die canvas nämlich in 2 verschiedenen JFrames anzeigen. Also einmal müsste ich dann display1() aufrufen und einmal display2() wobei diese Methoden zuerst die Perspektive ändern und dann display() aufrufen.
 

Marco13

Top Contributor
Bei zwei verschiedenen Frames (d.h. 2 verschiedenen GLCanvassen) wird es auch 2 verschiedene display-Methoden geben, die aber für das eigentliche Zeichnen ggf. nur eine gemeinsame "displayEverythingWithCurrentViewConfiguration"-Methode aufrufen...
 
G

Guest2

Gast
Moin,

der Ansatz von Marco bezieht sich auf der Darstellung von zwei verschiedenen Perspektiven innerhalb einer GL-Zeichenfläche (GLWindow, GLCanvas, GPJPanel). Von OpenGL aus gesehen ist das auch der bessere Ansatz. Es gibt dort dann auch nur einen Animator (und der von jogl reicht auch vollkommen).

Wenn Du das in zwei verschiedenen JFrames darstellen willst, brauchst Du auch zwei verschiedene GL-Zeichenflächen mit auch jeweils einem eigenen Animator. Ein Beispiel mit zwei GLCanvas gibt es hier.

Gruß,
Fancy
 

JavaJ

Mitglied
Moin,

der Ansatz von Marco bezieht sich auf der Darstellung von zwei verschiedenen Perspektiven innerhalb einer GL-Zeichenfläche (GLWindow, GLCanvas, GPJPanel). Von OpenGL aus gesehen ist das auch der bessere Ansatz. Es gibt dort dann auch nur einen Animator (und der von jogl reicht auch vollkommen).

Wenn Du das in zwei verschiedenen JFrames darstellen willst, brauchst Du auch zwei verschiedene GL-Zeichenflächen mit auch jeweils einem eigenen Animator. Ein Beispiel mit zwei GLCanvas gibt es hier.

Gruß,
Fancy

Ok, also zwei Canvases erstellen und dann den glEventListener bei display() auf eine externe, gemeinsame display() Funktion lassen. Also grob so:

Code:
externedisplay() {
 ...
 Hier werden die Models gezeichnet
...
}

Code:
glEventListener1 Klasse
...
display() {
 Ansicht einstellen
 externedisplay() aufrufen
}


Code:
glEventListener2 Klasse
...
display() {
 Ansicht einstellen
 externedisplay() aufrufen
}

Und die init() funktioniert dann entsprechend.

Und wofür ist der Context genau? Verstehe die englische Beschreibung dazu nicht so richtig.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Jogl und Java 3d AWT, Swing, JavaFX & SWT 0
S Jogl und JavaFX AWT, Swing, JavaFX & SWT 6
K Jogl tutorial gesucht AWT, Swing, JavaFX & SWT 2
N JOGL-Code != C OpenGL-Code? AWT, Swing, JavaFX & SWT 9
H JOGL Programmierung - glRotatef() AWT, Swing, JavaFX & SWT 4
D 3D-Grafik [JOGL] streifen im bild AWT, Swing, JavaFX & SWT 2
E 3D-Grafik JOGL (lädt sehr lange) AWT, Swing, JavaFX & SWT 20
M 2D-Grafik Performante Scatterplots mit J2d oder jOGL AWT, Swing, JavaFX & SWT 3
D 3D-Grafik Jogl download AWT, Swing, JavaFX & SWT 7
-horn- WorldWindJava+JOGL soll einen animierten Graphen anzeigen, wie? AWT, Swing, JavaFX & SWT 4
M java2D/jogl interoperability AWT, Swing, JavaFX & SWT 22
S Swing Komponente mit jogl AWT, Swing, JavaFX & SWT 18
T Jogl? AWT, Swing, JavaFX & SWT 2
G listener repaint() - verschiedene Darstellung AWT, Swing, JavaFX & SWT 24
E verschiedene Cursor setzen AWT, Swing, JavaFX & SWT 1
I GUI, das verschiedene Panels hat (Von Seite zu Seite navigieren) AWT, Swing, JavaFX & SWT 7
RedEagle JavaFX Verschiedene Bereiche miteinander verknüpfen AWT, Swing, JavaFX & SWT 7
H 3 verschiedene Nachrichten in einer FXML View die Infos kommen aus DB AWT, Swing, JavaFX & SWT 4
E wie fängt man verschiedene Ereignisse ein mit MVC ? AWT, Swing, JavaFX & SWT 42
S JavaFX Optimierung für verschiedene Auflösungen AWT, Swing, JavaFX & SWT 12
Bartertown JTable - Verschiedene Komponenten in einer Spalte unterbringen AWT, Swing, JavaFX & SWT 3
H Verschiedene JPanels aus eigenen Klassen in JFrame einfügen, nur ein Panel sichtbar AWT, Swing, JavaFX & SWT 4
V Swing Nimbus Look And Feel verschiedene Buttons AWT, Swing, JavaFX & SWT 8
W Verschiedene Foreground color in Combo SWT Auswahlliste AWT, Swing, JavaFX & SWT 5
L AWT Window, Dialog und verschiedene Betriebssysteme AWT, Swing, JavaFX & SWT 2
M 3D-Grafik verschiedene Texturen auf einen Würfel mappen AWT, Swing, JavaFX & SWT 15
T Swing verschiedene Auflösungen AWT, Swing, JavaFX & SWT 7
R JTree - verschiedene Verzeichnisse AWT, Swing, JavaFX & SWT 3
T AWT verschiedene Oberflächen programmieren AWT, Swing, JavaFX & SWT 5
D verschiedene Zeichenebenen AWT, Swing, JavaFX & SWT 10
M Verschiedene Layouts anzeigen AWT, Swing, JavaFX & SWT 5
Dit_ Verschiedene Icons in einer JTable-Zelle AWT, Swing, JavaFX & SWT 2
H Swing TableCellRenderer für verschiedene Spalten AWT, Swing, JavaFX & SWT 11
N Verschiedene FormLayout in einem Panelbuilder AWT, Swing, JavaFX & SWT 3
D Verschiedene ActionEvents für ein JButton-Array AWT, Swing, JavaFX & SWT 2
M Swing Swing, MVC über verschiedene Panel AWT, Swing, JavaFX & SWT 4
P verschiedene JPanels einblenden je nach auswahl AWT, Swing, JavaFX & SWT 2
L Focus für KeyListener auf verschiedene Panels AWT, Swing, JavaFX & SWT 2
K Verschiedene ComboBoxen in JTable AWT, Swing, JavaFX & SWT 9
D 2 verschiedene Frames mit einem Button schliessen AWT, Swing, JavaFX & SWT 2
D Mit der Maus in verschiedene Modi wechseln AWT, Swing, JavaFX & SWT 15
I JTable: "GLEICHZEITIG" zwei verschiedene TableMode AWT, Swing, JavaFX & SWT 2
F GridLayout: verschiedene Spaltenbreiten AWT, Swing, JavaFX & SWT 2
S verschiedene Menuleisten AWT, Swing, JavaFX & SWT 2
S In einem button Panel 2 verschiedene TiteledBoarder erzeugen AWT, Swing, JavaFX & SWT 5
T verschiedene Farben in einem Text/Editfeld AWT, Swing, JavaFX & SWT 11
R Fenster in verschiedene Bereiche teilen - aber wie? AWT, Swing, JavaFX & SWT 4
D Mehrere verschiedene Textfelder auslesen? AWT, Swing, JavaFX & SWT 10
Icewind Verschiedene Farben in einer JTextArea AWT, Swing, JavaFX & SWT 3
F Verschiedene Vordergrundfarben in einer TextArea AWT, Swing, JavaFX & SWT 4
G JFileChooser in verschiedene Sprachen? AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben