Direct3D Camera-Problem
-
Also...
ich habe vor kurzem angefangen mich mit D3D zu beschäftigen, und bin jetzt
soweit, dass in einer leeren Welt ein Mesh, welcher ein Raumschiff darstellen soll geladen wird, und dieser auch "fliegt". Dazu habe ich etwas Hintergrund eingefügt, sodass man den Flug sehen kann. Nun ja... die Kamera, die die Szene zeigt, befindet sich direkt hinter dem Schiff. Man fliegt es so gesehen in einer Third-Person Ansicht. Wenn das Schiff nun allerdings einen Looping fliegt, so wird der Hintergrund, sobald das Schiff größer als 90 Grad nach oben zeigt, um 180 Grad gedreht. Kann mir jemand sagen, wie dies zu beheben ist. Für die Ansicht benutze ich die CD3DCamera-Klasse aus den SDK(8)-Demos.Danke im voraus für alle Antworten.
-
Das ist normal. Sollte sich von allein erklären, wenn man sich mal vor Augen führt, wie aus lookat und up Vektor das Koordinatensystem der Kamera berechnet wird.
Bye, TGGC
-
Das das normal ist ist hab ich mir schon gedacht, nur wie kann man es beheben?
Es müsste doch eine Transformation geben, die diesen Effekt aufhebt.Ich selbst bin allerdings nicht darauf gekommen, aber ich habe ja auch gerade erst Vektoren in der Schule durchgenommen.
-
du mußt den upvector anders ermitteln, z.b. den vector nach vorne nehmen und um zwei verschiedene axen zwei mal um 90° rotieren, dann müßte der vector senkrecht zum vector nach vorne stehen und nutzbare resultate liefern
rapso->greets();
-
Ich würde eher vorschlagen, einfach den UP Vektor anzugeben, den du auch haben möchtest. Zum Beispiel den des Raumschiffes.
Bye, TGGC