Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

19.06.2018, 19:35

Fokalvektor berechnen

Moin!
Ich weiß folgende Dinge: §\mathbf{c}§, die Mitte meiner perspektivischen Kamera, §\mathbf{F}§ und §\mathbf{U}§, also entsprechend forward und upward Vektor, §\phi§ und §\psi§, der vertikale und horizontale Öffnungswinkel. Die Koordinaten auf meiner Kamera im Bereich von §[-1,1]§ habe ich natürlich auch. Meine Richtungsberechnung soll so aussehen: (focalvec + x * cross(forward, up).normalize() + y * upvec).normalize())
Wie komme ich nun aber auf die Unbekannte focalvec? Die Verbindung focalvec = forward * focaldistance ist mir bekannt, jedoch weiß ich dann nicht, wie ich auf focaldistance kommen soll...

MfG
Check

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

19.06.2018, 21:48

Die Verbindung focalvec = forward * focaldistance ist mir bekannt, jedoch weiß ich dann nicht, wie ich auf focaldistance kommen soll...

Wenn forward Länge 1 hat, dann gilt focaldistance = length(focalvec). Alternativ kannst du auch aus der Vektorgleichung drei "skalare" Gleichungen machen (eine für x, eine für y, eine für z) und eine davon lösen. Nur dabei aufpassen, nicht durch Null oder eine betragsmäßig sehr kleine Zahl zu teilen.

PS: Wenn forward und up jeweils Länge 1 haben, dann kannst du dir das normalize nach dem cross sparen.

3

20.06.2018, 20:51

Wenn forward Länge 1 hat, dann gilt focaldistance = length(focalvec).

Hi David!
Da habe ich mich leider missverständlich ausgedrückt, ich kenne die Gleichung, jedoch weder focaldistance noch focalvec. Das lösen der Gleichung bringt mir also leider nichts, da ich auf beiden Seiten unbekannte habe.

MfG
Check

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

20.06.2018, 21:55

Mal dir die Situation mal von oben auf und zeichne die Bildebene und den Öffnungswinkel ein. Dann kannst du mit ein bisschen Trigonometrie die gesuchte Distanz herausfinden.

Werbeanzeige