nun benötige ich es genauso wie wir es in einem third person shooter kennen, die figur bewegt sich und die kamera immer brav hinterher damit wir unseren helden nicht aus den augen verlieren( das is jetzt nur mal en beispiel^^)
zuerst dachte ich ich könnte das einfach so machen das ich die werte PositionX und PositionY berechne das Objekt dahin rendere und dann die Kamera auf diesen Punkt stelle aber das ergebniss ist das das sich kamera und objekt genau voneinander wegbewegen
wie rum wir das nun lösen ist eigentlich egal ob wir das objekt nun an die kamera bringen oder die kamera an das objekt aber letzteres wäre mir lieber
hat sowas jemand schonmal gelöst? oder ist wiedermal total einfach und ich depp sehs nur nicht
Also sofern du gluLookAt verwendest um die View-Matrix für die Kamera zu erzeugen, du also deine berechnete Position da einsetzt, dann sollte sich das genauso Verhalten wie eine die Transformation eines Objektes.
Ich vermute das der Fehler an einer anderen Stelle liegt (*). Oder sollte das bei X ebenfalls ein + sein? Falls du nämlich die Kamera mit glTranslate verschiebst musst du immer genau umgekehrt schieben.
(*) Ich würde deine bewegen nämlich als extrem merkwürdig bezeichnen. Du addierst nämlich immer die Rotation auf die alte Position auf, vermutlich solltest du da den Mittelpunkt des Kreises nehmen.
Also sofern du gluLookAt verwendest um die View-Matrix für die Kamera zu erzeugen, du also deine berechnete Position da einsetzt, dann sollte sich das genauso Verhalten wie eine die Transformation eines Objektes.
von gluLookAt hab ich schon öfters gelesen aber genutzt habe ich es bisher noch nicht, ich verschiebe die kamera genau so wie ich es oben beschrieben habe, ich habs auch nochmals überprüft das X muss subtrahiert werden sonst bewege ich mich in die falsche richtung
und wie meinst du das mit dem zentrum des kreises? also so wie ich es mache funktioniert es auf einer ebene sehr gut
das problem ist eben nur das ich das irgendwie umrechnen muss sodass ich eben ein object von der kamera position abhänig machen kann und umgekehrt
Mit gluLookAt kannst du die Kamera exakt in Weltkoordinaten platzieren. Die Funktion rechnet das intern um, du musst nur sagen wo das "Auge" der Kamera sein soll und auf welchen Punkt sie blicken soll. Außerdem brauchst du noch einen Vektor der einfach dahin zeigt wo (ungefähr) oben sein soll, meistens kann man einfach (0,1,0) nehmen.
Zitat:
und wie meinst du das mit dem zentrum des kreises? also so wie ich es mache funktioniert es auf einer ebene sehr gut
Ah, ich merke gerade das du die Bewegungsrichtung deines Objektes als Winkel angibst, jetzt gibt das ganze Sinn. Ich nehme meistens einen Vektor der in die Bewegungsrichtung zeigt da sich damit einfacher rechnen lässt. Z.B. kannst du einwirkende physikalische Beschleunigungen einfach auf diesen Vektor addieren. Wenn man weiß wie eine Matrix aufgebaut ist, kann man außerdem die Matrix des Objektes quasi direkt setzen, ohne das man glRotate/glTranslate braucht.
Zitat:
ich habs auch nochmals überprüft das X muss subtrahiert werden sonst bewege ich mich in die falsche richtung
Das liegt daran wie du dein Koordinatensystem definiert hast. Also linkshändiges Koordinatensystem gegen rechtshändiges Koordinatensystem. Vermutlich verwendest du nicht das was OpenGL braucht, daher musst du an irgendeiner Stelle eine Achse umkehren. Es ist ratsam einfach gluLookAt zu benutzen...macht vieles einfacher.
ok also wenn ich das jetzt richtig verstanden habe nehm ich nicht mehr zum verschieben meiner camera Gltranslatef(X,Y,Z); sondern GluLookAt...
ich werds mir anschauen
danke dir erstmal
€: So ich habs ersetzt und dank dem wiki eintrag weiß ich auch was was macht
das ganze war mit ein bisschen arbeit verbunden da ich nun nicht mehr einfach das objekt drehen kann sondern ja die kamera mitnehmen muss aber es funktioniert super
Mitglieder in diesem Forum: Bing [Bot] und 3 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.