Problem mit KameraPositionierung
-
Hallo, ich erlerne OpenGL mit Hilfe der NeHe Tutorials, klappt alles sehr gut nur möchte ich nun in einem tutorial etwas weiter gehen... undzwar:
Das Tut 10 behandelt das Thema bewegen in dynamischen 3D Welten, ich habe nun eine Classe "CCamera" geschrieben, die die Positionierung der "Camera" übernimmt bzw die Welt um den Betrachter entsprechend dreht, das klappt alles wunderbar, nun möchte ich aber "freelook" (noclip) der camera machen, d.h. ich möchte die camera nicht mehr fest an der Y-Coordinate festhalten, sondern entsprechend dem look-winkel nach oben und nach unten bewegen ... das hört sich kompliziert an, ich glaube ich formulier das hier etwas ungünstigfX += (float) (sin(fHorizontal * (M_PI/180.0f)) * 0.05f); fZ += (float) (cos(fHorizontal * (M_PI/180.0f)) * 0.05f); glRotatef(360.0f - fHorizontal, 0.0f, 1.0f, 0.0f); glTranslatef(fX, 0.0f, fZ);Dieser Part entstammt (nicht Codegenau) aus den Tutorials, also die Idee...
Dieser Code versetzt die "Camera" auf er Horizontalen ebene entsprechend dem Winkel fHorizontal, (nach links bzw. nach rechts), so nun habe ich das ganze mal "erweitert"fX += (float) (sin(fHorizontal * (M_PI/180.0f)) * 0.05f); fZ += (float) (cos(fHorizontal * (M_PI/180.0f)) * 0.05f); fY += (float) (sin(fVertical * (M_PI/180.0f)) * 0.05f); glRotatef(fVertical, 1.0f, 0.0f, 0.0f); glRotatef(360.0f - fHorizontal, 0.0f, 1.0f, 0.0f); glTranslatef(fX, fY, fZ);Damit klappt es einen "freelook" zu simulieren, aber das problem ist nun, dass man maximal mit einem winkel von 45° nach oben bzw unten gehen kann, alles darüber wirkt nicht anders... z.b. kann ich damit nicht senkrecht nach unten "fahren" wenn ich auf den boden schaue...
Hat da jemand eine Idee ?
Und nochmal Entschuldigung für den Umstand xD
Gruß Chris
-
dann solltest du dir den Winkel als float und max und min speichern und die Rotationen nur so lange durchführen, wie es erlaubt ist..
-
Guck mal ob das hilft:
http://www.codecolony.de/download/camera2/Camera2_SrcExeDoc.zip
http://www.codecolony.de/download/camera2/Camera2_SrcExe.zip
http://www.codecolony.de/docs/camera2.htm
-
ja in der tat das hat sehr geholfen danke !