Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » OpenGL » lookAt Funktion

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
06.12.2008, 16:10 Uhr
banshee



hallöchen,

also es geht um folgendes. Ich habe eine Kamera-Klasse, die Position, Blickpunkt und upVector speichert und u.a. eine Funktion lookAt, die einen neuen Blickpunkt festlegen soll.

Gibt es jetzt eine bessere Möglichkeit, diesen zu fixieren, als diesen:

1) z-Koordinate in Position und neuem Blickpunkt auf 0 setzen und über cosinus den Winkel zwischen akt. Blickrichtung und neuer Blickrichtung bestimmen.

2) Selbiges für die yz-Ebene

3) rotieren

Erscheint mir irgendwie etwas umständlich, aber mir fällt keine andere Lösung ein...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
05.01.2009, 14:16 Uhr
rapso



die zeilen (oder reihen, je nach auslegung) deiner matrix sind der front, up, und lookat vector.

dir = normalize(lookat-pos)
right = cross(dir,up);
up = cross(dir,right);//damit alle vectoren orthogonal zueinander sind.


right.x up.x dir.x 0
right.y up.y dir.y 0
right.z up.z dir.z 0
-pos.x -pos.y -pos.z 1

wenn's nicht klappt, transponiere sie, sollte aber stimmen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ OpenGL ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: