• 締切済み

OpenGLで原寸大表示

リアルタイムのWebカメラ映像にOpenGLで生成した3Dオブジェクトを重ねて表示させてARのようなものを作っています。 OpenGLのオブジェクトの大きさを、現実世界の原寸大の大きさで表示させたいのですが、 どうすればいいのでしょうか? Webカメラの焦点距離と画角はわかったので、 そこからプロジェクション行列を計算しOpenGLに設定はしました。

みんなの回答

  • stomachman
  • ベストアンサー率57% (1014/1775)
回答No.1

 ご質問からは、一体何にお困りなのか、問題の所在がさっぱり分からないんです。  たとえば現実世界の中に1辺10cmの立方体が置いてあって、それをweb camで捉えているとします。その像が画面上でどんな風に写るかは、当然、カメラと立方体との位置関係に依ります。(逆に言えば、勝手な立方体の図をCGで作って表示し、「これは現実世界の原寸大で1辺10cmの立方体なんだ」と言い張れば、誰も否定できません。そういう風に写るような位置関係も確かにあるからです。)また、「リアルタイム」と仰っているからには、カメラが動くことをお考えなのだろうか。もしそうなら、カメラの位置と向きをリアルタイムで常時高い精度で計測する手段がなくては話になりません。  と、こんなオバカなレベルで躓いているというご質問ではないのだとするなら、ですね、「現実世界の立方体の像が、計算とは違って微妙に歪んでいるのをどうする」という問題が次に来る筈です。これはカメラの歪みをきちんと計測して補正関数を決定するほかありません。これを手作業でやると、とても地味で時間が掛かってめんどくさい上に、もしカメラを変えたらその努力は無に帰してしまう。ぜひとも自動化しなくちゃいけません。

関連するQ&A