« Mitaka Plus 機能強化中 | 年末Hack »
「立体ドームでGoogle Earth」に挑戦
高解像度で大迫力の立体ドームシアターで、大勢でGoogle Earthを楽しみたい!これは可能でしょうか?
もちろんGoogle Earthのソースは公開されていませんから、限られたCOM APIと外部からのHackのみで実現する必要があります。(立体)ドームシアターへの投影に必要な条件は大まかに言って
- 歪み補正とエッジブレンディング
- PCクラスタでの視点同期
- 視野角と視界範囲の設定
などが挙げられます。
参考までに、こちらの例では9台のMacProを使って18画面の多画面同期表示をしています。これはChromiumを使ってOpenGL描画コマンドをネットワーク配信し、ひとつのクライアントで巨大な仮想スクリーンにレンダリングするという仕組み。1.の補正が不要で視野角の広さもオリジナルのままですが、Chromiumの可能性を垣間見せてくれます。いつかどこかでディスプレイを大量に拾ったらやってみたい。
さて、立体ドームの場合ですが、全天周投影のために広い視野が必要なのでChromiumを使った上記の方法は使えません。ここでは複数のPCそれぞれでGoogle Earthを走らせ、これらをネットワーク越しに視点同期させることにします。
1.の歪み補正とエッジブレンディングはOpenGL Override DLLの手法を応用します。そのままでは動かなかったので、DLLからGoogle Earthにデバッガで潜って手探りで修正していくことで何とか成功。Google Earthの実装が素直で助かりました。さらにCOM API経由でGUIからレンダリングエリアだけ抜き出してフルスクリーン表示にしました。この結果は下の画像を参照。コンパスや下のステータスバーを消せば完璧です。ちなみに、Google Earthのレンダリングエリアを引っこ抜くことは簡単だったので、自作プログラムやブラウザに埋め込んだり、Xtra化することもできそうです。
2.の視点同期は、COM APIで操作用PCの視点情報を取得してネットワーク配信し、表示用クライアントPC群はこれを受信して視点を上書き設定します。もちろんドーム投影用に、各PC(プロジェクタ)ごとの角度と位置のオフセットも適用します。ただし、COM APIで設定する視点情報は、行列ではなく方位と仰角で指定しなければなりません。おまけに仰角は0度から90度の範囲内である必要があります。これではドーム内の注視点を任意の高さに設定できず、地上付近の俯瞰表示が難しくなりそうです。この制限はGoogleに何とかして欲しいところ。定期的な視点情報の更新で、多少の遅れはあるものの、およそ複数PCで視点同期することを確認しました。もともと衛星画像の読み込みでわずかな引っかかりがあるのと同程度の遅れといった感じです。外部からの直接視点指定ということでデータの先読みが難しいのではないかと予想。視点ジャンプではなく超高速の視点移動だと騙してやればもう少し効率的に動作するかも知れません。
3.の視野角と視界範囲の設定というのは、要は歪み補正のためにプロジェクターの投影範囲以上のエリアをレンダリングさせる必要があるということです。ここに至って気付いたのですが、実はGoogle Earthには視野角の設定方法が無いような気がします!GUI上にも、COM APIによる制御でも視野角に関する設定項目がありません。これは困った。Google Earthから実行されるOpenGLの視界範囲設定をごまかすことで必要な視野角に強制的に設定した結果が下の画像。危惧していたとおり、Google Earthが内部で持っている視野角の範囲内しかまともに描画していないことが判明(画面の端で、エッジブレンドで消えかかっているあたりにタイル状の描画欠損領域が見える)。現状ではこれはどうにもなりません。投影角度の狭いプロジェクターを束ねて投影するくらいですかね。ぜひ今後のGoogle Earthのアップデートで視野角の調整ができるようになってもらいたいものです。(そんなに無茶な注文ではないはず...)
とりあえず現状はここまで。2.の視線方向格の制限と3.の視野角の制限が残っていますが、とりあえずドームで絵はつながるのではないかと期待。今度実際に試してみようと思います。
Googleもこういうこと(Work->Dome->Zeitgeist)やってるわけですし、Univiewだけでなく、ぜひGoogle Earthにもドーム上映の道を開いて欲しいと思います。
2008.01.13 19:27 | パーマリンク
開発中のつぶやきや裏話など、筆に任せて綴っています。
- 無事帰国しました
- [04.25] あの噴火の影響で
- 山梨県立科学館に初現場入り
- [02.14] こにちわ。すごい
- 光るキーボードの新製品二つ
- [11.25] 7色に光るキーボ
- 第1回テクニカルデモ、参加ありがとうございました
- [11.07] テクニカルデモご
- シンラドーム テクニカルデモやりました
- [09.25] ご招待いただいて