unzwar wollte ich zum reinlernen mal so mit der zeit stück für stück ein kleines autorennspiel erstellen..
und jedenfalls habe ich erstmal einige tests mit 3d-objekten gemacht und kam dann zur "kameraführung"
..also wie kann ich einen bestimmten weg gehen und von diesem dann z.b. auch weiter?
konkret liegt mein problem dabei: wenn ich "meine welt" bewege und dann drehe, dann dreht er ja alles um den nullpunkt wo ich garnicht mehr bin... so wenn ich das aber umdrehe: also erst meine sicht drehe und dann bewege, dann kann ich schonmal, obwohl ich weiter weg vonner null in mich direkt dort drehen.. aaallerdings, wenn ich mich dort nun gedreht habe und dann von dort aus weitergehen will also in meinem fall geradeaus wo ich hinschau-- dann klappt das nicht.. also er geht ja dann eben dadurch seitlich..
Registriert: Sa Okt 22, 2005 20:24 Beiträge: 291 Wohnort: Frauenfeld/CH
du musst einfach rotieren bevor du translate aufrufst.
ich weiss etz gar nicht ob du um die kamera ansicht zu ändern einfach alles drehst und verschiebst usw. Für die Kamera gibt es eine zweite matrix namens GL_PROJECTION, dann gibt es da zb den praktischen befehl wie gluLookat(..); damit kannst du die kamera position bestimmen.
Imho gibt es auch eine Kameraklasse im DGLSDK. Die manipuliert, glaube ich, direkt die Projektionsmatrix. Alternativ kannst Du im Wiki mal nach 'Kamera' suchen, da findest Du drei Tuts für.
_________________ Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.
danke schonmal.. also mir geht es eigendlich nur darum, in die richtung laufen zu können, in die man auch sieht (wenn man sich zuvor gedreht hat)
..und ansich macht es doch keinen unterschied ob ich das in projektion oder modelview mache oder?.. also bei meinen tests sah es gleich aus...
edit: so.. hab mal noch ein bild erstellt.. vllt kann sich ja jetzt das jemand besser vorstellen .. also 3. ist praktisch gesucht.. ich will ja von meinem bisherigen standpunkt 2 (was ich so schon geschafft hab) jetzt weiter in sichtrichtung gerade aus.. aber ohne andere tasten zu benutzen.. also ich will bei den pfeiltasten bleiben..
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Also eigentlich musst Du die Translationen/Rotationen nur in umgekehrter Reihenfolge durchführen, als es intuitiv logisch erscheint. In
Deinem Falle translate/rotate/translate anstatt translate/rotate/translate
vom Ursprung zu pos 1 wäre ja intuitiv ert translate, dann rotate. OpgenGL verlangt zuerst das rotate. demzufolge muss der zweite translate dann vor dem Rotate erfolgen.
_________________ Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.
(deinen kleinen tippreihenfolgefehler abgesehen)
die frage ist ja .. woher weiß ich wieviel ich translaten muss am anfang?.. also weil es ja praktisch zu einer seitwärtsbewegung wird... muss ich das mathematisch ausrechnen irgendwie?
[und ganz nebenbei.. ich hab schon anders als intuitiv mich bewegt^^ also im echten leben würde ich mich nicht erst drehen und dann seitwärts vor gehen xD]
Rechtschreibfehler darfst Du behalten. Zum weiteren Verständnis empfehle ich Dir dieses Tutorial.
_________________ Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.
Ich geb da mal Gaukler Recht, ich glaub nämlich, hier liegt ein Verständnisproblem vor.
Um das Auto an die entsprechende Stelle in der Welt zu setzen bedienst Du Dich am besten mit nem Orts- und nem Richtungsvektor. Wenn Du das Auto nun zeichnen willst, drehst Du die Welt erst in die richtige Richtung und verscheibst sie dann an den Ort, wo das Auto gezeichnet werden soll. Soll sich das Auto nun nach vorne bewegen, addierst Du einfach den Richtungsvektor*Geschwindigkeit*Zeitfaktor mit dem Ortsvektor und hast die neue Position für Dein Auto.
Um nun jetzt das Auge des Betrachters in das Auto hineinzuversetzen, musst Du einfach im primitivsten Fall gluLookAt() nehmen. Mit eye als die Position des Autos, center als Position+Richtung(hier ist die Länge des Vektors nicht maßgeblich) und up als (0,0,1) solltest Du Deine Szene genau vom Mittelpunkt des Autos aus in Fahrtrichtung sehen. Hierbei ist noch zu beachten, dass die Kamera vor dem Zeichnen der Szene gesetzt werden muss.
gluLookAt ist nicht sehr elegant und auch nicht besonders schnell, drum habe ich Dir weiter oben schon empfohlen, Dir mal die Kameraklasse im Wiki anzusehen. Diese ist zumindest als Vorlage für Diene eigene sehr gut geeignet.
_________________ Manchmal sehen Dinge, die wie Dinge aussehen wollen, mehr wie Dinge aus, als Dinge.
<Esmerelda Wetterwax>
Es kann vorkommen, dass die Nachkommen trotz Abkommen mit ihrem Einkommen nicht auskommen und umkommen.
Mitglieder in diesem Forum: 0 Mitglieder und 20 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.