![]() |
[DirectX] FOVY/Sichtfeld berechnen
Hi, also ich habe schon wieder ein Problem. Ich muss für meine 2DEngine die Fläche berechnen, die von der Kamera gezeigt wird. Habe nun im Internet nach allem möglichen gesucht, Sinus, Kosinus, Tangens...ich konnte einfach keine Lösung dafür finden.
Delphi-Quellcode:
D3DXMatrixPerspectiveFovLH(Mat, [b]1[/b], Parent.Width / Parent.Height, 1, 0);
Parent.Device.SetTransform(D3DTS_PROJECTION, Mat);
Delphi-Quellcode:
So setze ich bisher die Kamera. Dabei dachte ich eigentlich, dass wenn ich FOVY auf 1 setze, dann mit einer Kameraentfernung von 1 auch eine Vertikale Fläche mit der Höhe 1 gezeigt wird. Dem ist aber nicht so.
D3DXMatrixLookAtLH(Mat, D3DXVector3(Position.X, Position.Y, [b]-ZoomY[/b]), D3DXVector3(Position.X, Position.Y, 0), D3DXVector3(0, 1, 0));
Parent.Device.SetTransform(D3DTS_VIEW, Mat); Also FOVY ist ja der Winkel im Bogenmaß, dh Alpha/180*PI. Aber wie ich nun damit berechne wie weit meine Kamera vom Objekt entfernt sein muss, um die bei ZoomY angezeigt Fläche abzudecken weiss ich nicht. Kann mir das bitte wer sagen? ^^ Ist sonst etwas schwer die Kamera genau einzustellen :P Grüße, chicken |
Re: [DirectX] FOVY/Sichtfeld berechnen
Kleine Zwischenfrage: 2D und perspektivische Projektion? Passt das zusammen :freak: ?
Zum Problem: Das DX-SDK installiert gerade noch *g* , aber aus dem Kopf würde ich für Zitat:
![]() [*]Zu dieser Uhrzeit lieber keine Absolutismen :mrgreen: . |
Re: [DirectX] FOVY/Sichtfeld berechnen
Danke, wenn ich heute Abend auser Schule wieder da bin, teste ich das.
Zu deiner ersten Frage. Wie sollte ich es denn stattdessen machen? Gibt es noch ne andere Projektionsmöglichkeit? Grüße und Danke, .ch!cken |
Re: [DirectX] FOVY/Sichtfeld berechnen
In einer 2D-Engine wird der Z-Wert doch nur benutzt, um die Reihenfolge der Sprites festzulegen, ein oben liegendes Sprite soll dadurch ja nicht größer werden. Also würde ich mal eine Parallelprojektion vorschlagen => http://msdn.microsoft.com/en-us/library/bb205347(VS.85).aspx
|
Re: [DirectX] FOVY/Sichtfeld berechnen
Och super, das macht die Sache ja viel einfacher. Danke dir :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz