HMDで3次元モデルを立体視できるようにViewportをサイドバイサイド表示に設定する(その3)
3次元モデルの背景にカメラ画像を重畳して表示してみます。アスペクト比をとりあえず考えずに画面一杯に表示すればよいことにして、画面に出せるかどうかを確認してみます。
先ず背景を黒にして、3次元モデルを表示しておきます。
ofBackground(0,0);
次に、画像を表示します。その際、OF_BLENDMODE_ADDを指定して重ねて描画するようにします。
// OF_BLENDMODE_ALPHA
// OF_BLENDMODE_ADD
// OF_BLENDMODE_MULTIPLY
// OF_BLENDMODE_SUBTRACT
// OF_BLENDMODE_SCREEN
ofEnableBlendMode(OF_BLENDMODE_ADD);
viewCamera[0].draw(viewGrid[0].x,viewGrid[0].y,viewGrid[0].width, viewGrid[0].height);
viewCamera[1].draw(viewGrid[1].x,viewGrid[1].y,viewGrid[1].width, viewGrid[1].height);
ofDisableBlendMode();
ちゃんと合わせていないので当然ですが、盛大にずれています。
カメラのキャリブレーションをして歪みをキャンセルすることと、ハンドアイキャリブレーション[1]をちゃんとやらないとダメですね。
[1]http://www.taka.is.uec.ac.jp/~suehiro/class2013/presen/lecture14.pdf