Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Di Jul 15, 2025 18:33

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: gluLookAt Matrix berechnen
BeitragVerfasst: Mo Nov 29, 2010 00:17 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Sep 19, 2007 21:36
Beiträge: 46
Hi Leute, ich bin zur zeit dabei, ein WebGL Projekt in GWT aufzusetzen.
Jetzt bin ich an dem Punkt wo ich die funktion gluLookAt benötige und wollte sie mir nachbauen.
Ich bin dazu auf die Seite im Wiki gegangen und hab alles schön nachgebaut, aber es will einfach nicht funkionieren.

Vielleicht weiß ja jemand weiter, bin am verzweifeln,
Hoffe es gibt einige unter euch, die sich in Java auskennen

Code:

public static FloatMatrix4x4 createLookAtMatrix(Vertex3D eye, Vertex3D center, int upX, int upY, int upZ) {
   
      //F-Vektor
      Vertex3D fVector = new Vertex3D(
            center.getX() - eye.getX(),
            center.getY() - eye.getY(),
            center.getZ() - eye.getZ() );
      
      //UP-Vektor
      Vertex3D upVector = new Vertex3D(upX, upY, upZ);
      
      //F-Vektor normalisieren
      fVector = MathUtil.normalize(fVector);
      
      //UP-Vektor normalisieren
      upVector = MathUtil.normalize(upVector);
      
      //s-vektor als Kreuzprodukt aus f und UP
      Vertex3D sVector = VertexUtil.cross(fVector, upVector);
      
      //s-vektor normalisieren
      sVector = MathUtil.normalize(sVector);
      
      //u-vektor als Kreuzprodukt aus s und f
      Vertex3D uVector = VertexUtil.cross(sVector, fVector);
      
      //matrix zusammenbasteln und translation-matrix dazu multiplizieren
      return new FloatMatrix4x4(new float[][] {
            
            { sVector.getX(),      sVector.getY(),  sVector.getZ(), 0},
            { uVector.getX(),      uVector.getY(),  uVector.getZ(), 0},
            {-fVector.getX(),    -fVector.getY(), -fVector.getZ(), 0},
            {0, 0, 0, 1}
            
      }).multiply(MatrixUtil.createTranslationMatrix(-eye.getX(), -eye.getY(), -eye.getZ()));
   }



Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: gluLookAt Matrix berechnen
BeitragVerfasst: Mo Nov 29, 2010 10:18 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Möglicherweise musst du die Matrix transponieren:

Code:
 { sVector.getX(),      sVector.getY(),  sVector.getZ(), 0},
            { uVector.getX(),      uVector.getY(),  uVector.getZ(), 0},
            {-fVector.getX(),    -fVector.getY(), -fVector.getZ(), 0},
            {0, 0, 0, 1}


=>

Code:
 { sVector.getX(),      uVector.getX(),  -fVector.getX(), 0},
 { sVector.getY(),      uVector.getY(),  -fVector.getY(), 0},
 { sVector.getZ(),      uVector.getZ(),  -fVector.getZ(), 0},
 {0, 0, 0, 1}

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: gluLookAt Matrix berechnen
BeitragVerfasst: Mo Nov 29, 2010 18:28 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Sep 19, 2007 21:36
Beiträge: 46
hm das war es leider nicht, naja wenn hier kein fehler ist, muss ich wohl an anderer stelle suchen.

danke für die antwort


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: gluLookAt Matrix berechnen
BeitragVerfasst: Mo Nov 29, 2010 18:55 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Sep 19, 2007 21:36
Beiträge: 46
ach verdammt, ich hatte vergessen die projection matrix zu setzen. Jetzt funkionierts =)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 9 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 15 Queries | GZIP : On ]