カメヲラボ

主にプログラミングとお勉強全般について書いてます

Stereo Graphics Programming(6)

SGLの描画速度

まず、3D液晶での描画方法についてはhttp://marina.sys.wakayama-u.ac.jp/~tokoi/3dlcd/3dlcd.pdfを見ていただきたい。非常にわかりやすい。床井さんというと、GLUTによる「手抜き」OpenGL入門http://www.wakayama-u.ac.jp/~tokoi/opengl/libglut.htmlで有名だと思う。OpenGLでちょっとプログラミングやってみたいなーという人は、迷わずここをチェックしましょう。


3D液晶の視差バリアによって、左右の眼に届く光の成分はRBとGに分けられるようなので、左-RB, 左-G, 右-RB, 右-Bと、計4回描画する必要がある。これって、めちゃくちゃ遅いんじゃないのかと誰もが思うわけで、尚更SGLライブラリに期待がかかるわけだ。

そんなわけで、私はSGLで書いたプログラムと、ステンシルバッファを使って左右RB-Gと4回描画するプログラムを作って描画速度を大雑把に比較してみた。・・・SGL早くないやーん(´д`)2つのプログラムには大きな差が現れなかった。っちゅうことはSGLでもほぼ同じ動作をしてるってことか、ふむふむ。まあ、一緒ぐらいならSGLの方がお手軽なわけだし、ちょっとしたプログラムを書くには良いかもナァ。


と思ったのもつかの間。フルスクリーンモードにした瞬間「SGLはダメじゃ」という意見に逆戻りした。SGLではフルスクリーンモードにすると、Stereo画像自体が正しく表示されない。おそらく、描画関数が呼ばれる際にデプスバッファがちゃんとクリアされていないんじゃないかと思う。ウィンドウ表示だと普通に動くプログラムも、フルスクリーン表示にするとおかしくなるのはよくあることで、Stereoグラフィックスの場合はバッファのクリアと、ステンシルを使うなら正しくマスクされているかを慎重に確認しなければならない。


この辺りは実際にコードを書いて確かめていきたい。


つづく