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

Aktuelle Zeit: Di Jul 15, 2025 23:43

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: gluLookAt
BeitragVerfasst: Di Mär 25, 2008 22:44 
Offline
DGL Member

Registriert: Mi Mai 30, 2007 15:15
Beiträge: 20
Was ist daran falsch?
gluLookAt(0, 0, 0, 0, 1, -1, 0,-1,-1);
Ich mächte die Sicht um 45 Grad nach vorne drehen.

der Punkt 0,0,-10 müsste doch in in der Mittes des Bildschirms sein oder?

So setzte ich die Perspektive:
Code:
  1. glMatrixMode(GL_PROJECTION);
  2. glLoadIdentity();
  3. gluPerspective(fielOfView_, ratio_, NEAR_CLIPPING, FAR_CLIPPING);
  4.              
  5. glMatrixMode(GL_MODELVIEW);
  6. glLoadIdentity();
  7. gluLookAt(0, 0, 0, 0, 1, -1, 0,-1,-1);


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mär 26, 2008 01:38 
Offline
DGL Member

Registriert: Mi Mai 30, 2007 15:15
Beiträge: 20
Das drehen habe ich jetzt
gluLookAt(0, 0, 0, 0, 1, -1, 0,-1,1);

Aber ich habe noch nicht verstanden warum 0,0,-10 nicht in der mitte liegt. (Also warum liegt die z- Achse nicht in der mitte?)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mär 26, 2008 12:24 
Offline
DGL Member

Registriert: So Aug 20, 2006 23:19
Beiträge: 564
Ich versteh die frage nicht. Was haben deine Angaben mit dem Wert -10 zu tun?
Laut deinen Angaben setzt du dich selbst (die Kamera) auf den Nullpunkt, blickst nach (0,1,-1) also schraeg nach oben in den Bildschirm hinein (wenn man das so beschreiben kann) und dein kopf ist dabei mit (0,-1,1) auf die Seite gedreht.

Eine sehr eigenartige Art irgendwohin zu gucken, aber wie du jetz da auf 0,0,-10 kommst, verstehe ich null


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mär 26, 2008 15:50 
Offline
DGL Member

Registriert: Mi Mai 30, 2007 15:15
Beiträge: 20
Dann versuche ich mal zu erklären was ich machen möchte.

Also ich möchte ein Strategie Spiel programmieren und dabei ist die sicht leicht geneigt wie z.B bei Warcraft 3 wenn man das Mausrad dreht.

Ich habe also meine Spielfeld Als eine Ebene die dadurch beschrieben wird, dass z konstant ist.

Jetzt möchte ich den sichtbaren Bereich auf der Ebene ermitteln. (Frrustum Culling)

Das versuche ich so:
1. bekannt: Position der Camera, Near und Far clipPlane,fieldOfView (das was mit gluPerspective einstellt) und up view und right ermittel ich aus der Modelview Matrix.
2. die Vier Eckpunkte der NearPlane berechnen

der code (leider java)
Code:
  1.   public void calculate(float nearDist, float farDist, float fieldOfView, float ratio, Vector3D view, Vector3D right, Vector3D up){
  2.     //Camera auf position 0,0,0
  3.    
  4.     //breite Near Plane:
  5.     float heightNear = 2*(float)Math.tan(Math.toRadians(fieldOfView / 2))*nearDist;
  6.     //höhe Near Plane:
  7.     float widthNear = heightNear*ratio;
  8.    
  9.     view.normalize().mul(nearDist*-1);
  10.     up.normalize().mul(heightNear/2);
  11.     right.normalize().mul(widthNear/2);
  12.    
  13.     near00 = new Vector3D(view).add(up).sub(right);
  14.     near01 = new Vector3D(view).sub(up).sub(right);
  15.     near10 = new Vector3D(view).add(up).add(right);
  16.     near11 = new Vector3D(view).sub(up).add(right);
  17.   }

passende Bilder hier: http://www.lighthouse3d.com/opengl/viewfrustum/

3. jetzt muss ich die 4 Eck Vektoren nur noch verlängern bis ihr z gleich dem z der Ebene ist.

Ist das Weg Prinzipel richtig?


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 » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 4 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.008s | 17 Queries | GZIP : On ]