Das bekannte Programm zur optimalen Vorbereitung auf die theoretische Führerscheinprüfung
DirectX-Forum - Beitragsübersicht -
ThemaDX8: Dritte (Dreh-)Achse der Kamera
Von Felix
E-Mail felix.epple@gmx.net
Datum 03. November 2008 um 21:08:49
Frage Hallo,

ich programmiere gerade an einem einfachen "Flugsimulator". Er soll Raumschiffe im Weltall simulieren.
Demnach gibt es keine Schwerkraft und das Raumschiff kann sich an allen Achsen drehen.

Nach den hier angegebenen Beispielprojekten sind nur zwei Achsen angegeben.

Da dachte ich mir dann - kein Problem, einfach die dritte ("AngleZ") hinzufügen und in die View3DMatrix reinziehen.
Das klappte sogar! Man konnte sich um die Z-Achse drehen.
Dann fiel aber ein handfestes Problem auf: Bewegte man in einer Position, wo der Z-Winkel ungleich 0° bzw. 360° war, stimmten die Proportionen der Winkel nicht mehr. Das heißt, wenn man bspw. auf dem Kopf steht (180°), sind alle Achsen gespiegelt.

Anscheinend ist die Z-Achse nicht so einfach mit einzubinden, da sie großen Einfluss auf die anderen beiden Achsen nimmt.

Ich benutze einen leicht abgewandelten Code (nämlich mit einem ViewPoint):
'Sichtpunkt
PLAYER.LookAt.X = Sin(PLAYER.AngleY * PI / 180) + PLAYER.X
PLAYER.LookAt.Z = Cos(PLAYER.AngleY * PI / 180) + PLAYER.Z
'Berechnung der Blickhöhe
PLAYER.LookAt.Y = Sin(-PLAYER.AngleX * PI / 180) + PLAYER.Y
D3DXMatrixLookAtLH View3DMatrix, vec3(PLAYER.X, PLAYER.Y, PLAYER.Z), PLAYER.LookAt, PLAYER.UpVec
'Transformation der ViewPortMatrix durchführen
gD3DDevice8.SetTransform D3DTS_VIEW, View3DMatrix
Wie man direkt sieht, werden die einfachen Formeln zum Bewegen in Blickrichtung angewandt. Diese Formeln beinhalten jedoch nicht die Z-Achse.

Mein Ziel wäre also, sie dort einzubinden - wäre das möglich?

Ich freue mich über jede Hilfe!

Vielen Dank und Gruß,

Felix
Antwort:
Von sasch
E-Mail mdx.net@t-online.de
Datum 04. November 2008 um 19:30:10
Antwort Du sitzt also im Raumschiff uns schaust heraus...
Erstelle eine 4x4 Matrix und wende diese auf deine Kamera an. Benutzt du VB.Net und MDX kannst du die integrierten Matrixrotationen nutzen.
[ Antwort schreiben | Zurück zum DirectX-Forum | Forum-Hilfe ]
Antworten
DX8: Dritte (Dreh-)Achse der Kamera - Felix 03. November 2008 um 21:08:49
Re: Dritte (Dreh-)Achse der Kamera - sasch 04. November 2008 um 19:30:10
Re: Dritte (Dreh-)Achse der Kamera - Felix 04. November 2008 um 19:35:32
Re: Dritte (Dreh-)Achse der Kamera - sasch 04. November 2008 um 19:53:33
Hat noch jemand eine Idee? - Felix 05. November 2008 um 13:36:49

Ihre Antwort
(Nick-)Name   Wichtige Informationen zur Namensangabe
E-Mail (opt.)  Wichtige Informationen zur Angabe einer eMail-Adresse
Thema   Wichtige Informationen zur Angabe eines Themas
Betrifft (IDE)  DirectX 8
Ihre Antwort
Smilies
Mehr...
FettKursivUnterstrichen   Übersicht der Tipp-KürzelÜbersicht der Projekt-KürzelÜbersicht der Bücher-Kürzel 
Homepage
Titel
Root-Smilies              
             
             
[ Zurück zum DirectX-Forum | Forum-Archiv | Forum-Hilfe | Chat ]

Zum Seitenanfang

Startseite | VB-/VBA-Tipps | Projekte | Tutorials | API-Referenz | Komponenten | Bücherecke | Gewinnspiele | VB.Net | .Net-Forum | DirectX | DirectX-Forum | Chat | Ausschreibungen | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Sonntag, 13. Dezember 2015