こっ,腰がぁぁ。

Core2Quadマシン,ホワイトボードなどを譲り受け。でも腰が痛くてセットアップどころじゃないの(;_;)

なんかずれると思ったらマーカのワールド座標が左手系になってやんの。そら合うはず無いわのぉ。
そんなわけで一応完成かしら。

でけたっ

既知の4x3のピンホールカメラ行列を用いてOpenGLで透視変換する方法をメモ。

  • カメラ行列Hから焦点位置,光軸ベクトル,pixel単位の焦点距離と3x3のカメラ回転行列Rを求める [高橋, 富田: ロボットビジョンのためのカメラキャリブレーション, 日本ロボット学会誌 Vol.10 (2), pp.177-184, 1992]
  • tan(θ/2)=カメラY軸方向解像度/(2*焦点距離)よりθを求め,gluPerspective()の第1引数にdeg単位で指定
  • gluLookAt()の第4-6引数に指定する光軸ベクトルはZ成分が常に負
  • gluLookAt()の第7-9引数にはRのY軸成分 (R[2,1]..R_[2,3])を指定

うまいこと行列を変換してやればglLoadMatrixd()一発で済むはずだけど,とりあえず。
そのうちちゃんとまとめますかね。