私のSLAMプロジェクトのレンズ歪み効果をシミュレートしようとしています。 スキャンされたカラーの3D点群は既にOpenGLで与えられ、ロードされています。 私がしようとしているのは、2Dシーンを与えられた姿勢でレンダリングし、魚眼カメラからの実際の画像とレンダリングされた画像の間にいくつかの視覚的オドメトリを行います。 レンズの歪みがひどいため、レンダリング段階でも考慮する必要があります。OpenGLのカメラレンズ歪み
問題は、レンズの歪みをどこに置くかわからないということです。シェイダー?
some open codesがジオメトリシェーダに歪みを与えています。しかし、私はこの歪みモデルがコンピュータビジョンコミュニティのレンズ歪みモデルとは違うと考えています。 CVコミュニティでは、通常、投影された面にレンズ歪みが発生します。
This oneは私の仕事とよく似ていますが、歪みモデルは使用しませんでした。
誰でも良いアイデアはありますか?
ただ見つけたanother implementation。それらのコードは、フラグメントシェーダとジオメトリシェーダの両方で歪みを実装しました。しかし、私の状況では、フラグメントシェーダのバージョンを適用することができます。したがって、次のようになります:
# vertex shader
p'=T.model x T.view x p
p_f = FisheyeProjection(p') // custom fish eye projection
もう1つの方法は、テクスチャにレンダリングして、次に矩形にマップし、次に形状を歪ませることです。 – p10ben