Google独自の3D「O3D」で全方位パノラマを再生してみる
HTML5規格ではブラウザ上で3Dがウンタラ、とかありますが、イマイチ資料など目に付かず。
ブラウザでイケる3D APIといえば、MozillaのCanvas:3Dか、GoogleのO3D。んで、ようやく策定の始まった(?)WebGLと。
HTML5はWebGL規格になるのかな?誰かkwsk。
ま、そんなん待ってても仕方ないので、いっちょ実装してみることに。
互換性を大事にAPIを単純にしてしまってるCanvas:3Dではなく、結構エグいことが出来るO3Dを選択してみました。O3Dのイケてるところは、GPUを活用できちゃう、という点。
Actionscript3+Papervision3Dでなくても、高速に綺麗に3Dの描画が行けるんちゃうか?ということなんですなぁ。
ということで、実装した感じは…
の前に、再生するにはプラグインをインストールする必要があるので、まずは
http://code.google.com/intl/ja/apis/o3d/
上記URLページの右側にある「O3Dのダウンロード」を押してプラグインをインストールした後、いったんブラウザを再起動してから、
http://www.studio-bloom.net/public/o3d_pano/
をご覧くださいませ(環境によっては表示されない場合もあります)。
あぁ、ChromeかFirefoxでお願いしますよ。Mac?知らん。
画像の読み込みが終わるまでグレーになってますが、しばらくお待ちください。マウスでクリックしたまま動かすとグリグリできます。
平面プリミティブ6面を配置して、それぞれにテクスチャを貼り付けてるんですが、平面同士の境目が見えてしまってるんですよね…(PV3Dでは境目も出ないし動作が軽い)
境目を消すには、正方体プリミティブを作って各面にテクスチャを貼ることで解決できないかな?と思いつつ。ただ正方体プリミティブの面ごとにテクスチャを変える方法がイマイチ掴めず。。。ちょっと描画かプリミティブのパラメータをいじったらイイ感じにならないかな?と思ったりしてます。
結果としては、画質なんかはイイ感じなんだけど、GPU使ったりしてる割には妙に重い。PCの問題なのか、ブラウザの問題なのか?V8エンジンを使用すると速くなるよ、とのTipsもあるんだけど…(Chromeだけかよ!)
しかも、なぜかうちのノートPCではテクスチャ画像を読んでくれなくて(オフィシャルのサンプルも)再生できませんでした。
ちょっとここら辺はAPIの熟成を待つしかなさそうですねぇ。。。
再生するにはプラグインの導入が必要だし、一般的に使用されるようになるか、というのは疑問ちょっと疑問。WebGLも策定から各ブラウザへの実装がどれほど時間の掛かることか、と考えると、現状のAS3+PV3Dはしばらく鉄板な気がします。