Kameralinse / Fisheye-Projektion
-
Hallo!
Ich soll in OpenGL eine bestimmte Kamera nachahmen. Die einzigen Infos die ich habe:
- Die Kamera hat ein sehr grosses Field of View (um die 180 Grad)
- Die Kamera hat eine Brennweite von 0.946 (ich vermute mal cm?)
- Die Kamera liefert ein leicht gekruemmtes Bild (aehnlich wie dieses Bild: http://en.wikipedia.org/wiki/File:Vlg_shop.jpg )
Wenn die Kamera z.B. auf den Boden schaut und eine total gerade weisse Linie filmt, dann ist auf dem auf dem Kamerabild die Linie leicht gekruemmt/rund.Hat jemand eine Ahnung/Idee, wie man so eine Kamera in OpenGL simulieren koennte? Geht das mit einer speziellen Projectionmatrix? (Habs in dieses Forum geschrieben, da es ja eigentlich ein mathematisches Problem ist)
-
Ich vermute mal du sollst einfach nur eine normale perspektivische Projektionsmatrix zu den gegebenen Parametern erstellen. Ein "richtiger" Fisheye-Effekt lässt sich in homogenen Koordinaten nicht mit einer Matrix beschreiben.
-
Du renderst die Szene in eine Textur und legst sie ueber ein Gitter, dass diese Verzerrungen verursacht. Natuerlich ist das nur eine Approximation, aber es faellt nicht auf.
-
dot schrieb:
Ich vermute mal du sollst einfach nur eine normale perspektivische Projektionsmatrix zu den gegebenen Parametern erstellen. Ein "richtiger" Fisheye-Effekt lässt sich in homogenen Koordinaten nicht mit einer Matrix beschreiben.
Ob ich eine Projektionsmatrix nehme oder irgend einen anderen Trick ist egal. Es soll nur irgendwie funktionieren:)
@knivil: Und das Gitter schiebe ich dann vor die Kamera und render die Szene dann mit einer orthografischen Projektion? Meinst du das?