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?


Log in to reply