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

Aktuelle Zeit: Fr Jul 11, 2025 03:05

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: "Kameraposition" herausfinden?
BeitragVerfasst: Sa Jan 10, 2004 21:11 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 24, 2003 21:28
Beiträge: 28
Wohnort: Kiel
Ich möchte in ein´s meiner ersten OpenGL-Programme auch eine Kamerasteuerung (wie z.B. in UT oder Half-Life) einbauen.
Gibt´s irgendne Möglichkeit in OpenGL herauszufinden in welcher "Relation" bzw. in welchem "Winkel" das Blickfeld der Kamera zu den Achsen x,y und z befindet?
Oder muss ich das selber irgendwie rausrechnen?

Mein Problem ist bei der Maus-Kamersteurung die Drehung um die Achse (ich muss da ja um eine mitwandernde X-Achse drehen) sowie das Vorwärts- bzw. Seitwärts-Bewegen per Tastatur (also je nach Blickrichtung geradeaus laufen; im Moment lauf ich bei Druck auf die Cursor-Tasten immer in die selbe Richtung, was nicht so schön ist das bei bestimmten Blickwinkel die Steuerung hässlich invertiert)

Danke für die Antworten, Chri


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 10, 2004 21:21 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Jan 04, 2003 21:23
Beiträge: 674
Wohnort: Köln
du legst avriablen für die Rotation um die x und y achse an, die du dann beim Mousemove veränderst und denen entsprechend du glrotate aufrufst...

zum vorwärtslaufen könntest du sowas nehmen:
Code:
  1. position.X := position.X - sin(yrot * pi / 180) /
  2.       Frames * speed[0];
  3. position.Z := position.Z + cos(yrot * pi / 180) /
  4.       Frames * speed[0];

und zum "strafen" nach links entsprechend das hier:
Code:
  1. position.X := position.X - sin((yrot + 90) * pi / 180) /
  2.       Frames * speed[2];
  3. position.Z := position.Z + cos((yrot + 90) * pi / 180) /
  4.       Frames * speed[2];

_________________
. . .


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 10, 2004 21:23 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Dez 13, 2002 12:18
Beiträge: 1063
Tja, normalerweise gäbs in der Tutorialsektion einen netten Artikel zur Orientierung von Objekten - aber die ist ja leider noch offline.
Ganz kurz und schmerzlos: wenn du eine 4x4 Transformationsmatrix hast, entsprechen die ersten 3x3 Komponenten davon den Richtungsvektoren des lokalen Koordinatensystems, wenn du das in Bezug auf die Vektoren (1,0,0), (0,1,0), (0,0,1) bringst, hast du deine Winkel.

Du kannst deine Kameramatrix der Einfachheit halber auch um irgendwelche Differenzwinkel weitertransformieren, anstatt die Kameramatrix immer neu aufzubauen, musst aber dann darauf achten, dass die Transformationsmatrix nicht auf Grund von Rechenungenauigkeiten irgendwann degeneriert.

Ich hoffe, das klingt jetzt nicht zu unverständlich.

_________________
Viel Spaß beim Programmieren,
Mars
http://www.basegraph.com/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jan 12, 2004 15:33 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Nov 24, 2003 21:28
Beiträge: 28
Wohnort: Kiel
Danke fuer die Antworten. Klappt alles wunderbar.

mfG, McFly


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: 0 Mitglieder und 5 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 | 14 Queries | GZIP : On ]