Squareの3D(立体視)用ライブラリーのインストールについて書きました。このライブラリーを使って立体視可能なOpenGLアプリケーションを作ってみました。※画像はイメージです立体視アプリを作るためにはサイドバイサイド画像を表示します。サイドバイサイド画像とは、左半分に左目からの視線に映る映像を、右半分に右目からの視線に映る映像を並べた画像です。左右の画像それぞれ横の解像度を半分に縮小します。サイドバイサイド画像のサンプルです。左右とも同じCGですが少しだけ視点を変えてます。この画像はピアプロ・キャラクター・ライセンスに基づいてクリプトン・フューチャー・メディア株式会社のキャラクター「鏡音リン」「鏡音レン」を描いたものです。3D用ライブラリーは自動的に左右の画像を1ドットずつ交互に並べ替えて視差バリアで左目と右目にそれぞれに映像を見せる処理をしてくれます。立体視アプリを作るに当たり、次の手順は完了しているものとします。targetは2.1以上ならどれでもOK)OpenGLでサイドバイサイド画像を表示するには、1フレームごとに画面の左半分に左目の視線の映像を描画した後、右半分に右目の視線の映像を描画します。codeのソースを参考に立体視アプリ用にアレンジしました。キューブが回転しながら前後左右に動きます。}res/values/string.xmlは自動生成された内容を使ってます。レイアウト用xmlは使用しません。画面をタップするたびに3Dと2Dが切り替わります。画面の向きは横に固定していますが、縦向きでも立体視できます。立体感を演出するポイントはonDrawFrameメソッドの「(1)左の描画」「(2)右の描画」のGLU.gluLookAtによる視点の位置と向きです。左右の視差を大きくすれば立体感も増えますが、大きくしすぎると映像が乱れて見えます。このサンプルでは視点の位置は固定ですが、視点が移動するアプリでも右の描画の時だけ視点のX座標の位置と向きを変えるだけです。ライブラリーのおかげで簡単に立体視化できますし、既存のOpenGLアプリの立体視化も簡単にできそうです。立体視アプリケーションの開発コストはほとんど変わらないと思います。横方向の実質的な解像度が半分になる、描画処理が2倍に増えるなどのデメリットがあります。仕様によってはパフォーマンス向上のため、やむなくポリゴンを減らす必要があるかもしれません。サイドバイサイド方式は、どれだけフレームレートの低い端末でもちゃんとステレオ表示できるのが強みです。立体視アプリ実行中のスクリーンショットはこんな画像です。ポリゴンはサイドバイサイドで表示されてますが、タスクバーが1ドットごとにシャッフルされてます。3Dテレビやニンテンドー3DSなど立体視のコンテンツが増えているので知っていて損はない技術だと思います。SH-12C以上、参考になれば幸いです。当ブログは公開後に内容を修正することがあります。当ブログの内容により発生した損害につきましては一切の責任を負いかねますのでご了承下さい。ユーザーの訪問の際にクッキーやアクセス解析という方法でユーザーの行動を記録しています。これはユーザー個人を特定できない情報であり、サイトの質向上のために用いられます。プライバシー保護のために当ブログのクッキーの取得を拒否するにはお使いのブラウザのクッキーの送受信を拒否するよう設定してください。当サイトは第三者によって配信される広告を表示します。その際、ユーザーが過去に閲覧したサイトの情報からユーザーの興味のある広告を優先的に表示することがあります。このために、ユーザーのインターネット閲覧履歴情報を利用することがありますが、これらは個人を特定できる情報ではなく、個人情報の漏洩や電話、手紙、メールによるセールスはありません。