|
DirectX-Forum - Beitragsübersicht - |
|
Thema | DX8: 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:53:33 |
Antwort |
Da kann ich leider nicht helfen, benutzte VB.Net und managed DirectX. Ich schreibe gerade ein mehrteiliges Tutorial für VB-Fun, das sich mit MDX beschäftigt.
Um in DirectX weiter zu kommen, empfielt sich ein Blick in die SDK oder MSDN. Willst du ernsthaft was machen empfielt sich ein Umstieg auf MDX (DirectX9 Managed) oder XNA.
Matrix
Gruß Sasch |
|
[ Antwort schreiben | Zurück zum DirectX-Forum | Forum-Hilfe ] |
|
Letzte Aktualisierung: Sonntag, 13. Dezember 2015 |
|