旧スペックから変わったところ
- VRHMDDeviceとVRPositionSensorDeviceが廃止され、VRDisplayという1つオブジェクトになった。
- HMDに表示させるにはDOMのAPIであるrequestFullscreenを使用していたが、VRDisplayのrequestPresent()に変わった。
- WebVR独自のrequestAnimationFrameの仕様が追加された。
- Room Scale VRのサポートが追加された。(VRDisplay.VRStageParameters)
-
gamepad APIにVRコントローラーのサポートが追加された?。(displayIdプロパティの追加のみですが)
大きいのが4.のRoom Scale VRのサポートでしょう。
つぎに、DOM API依存の排除。特にWebVR独自のrequestAnimationFrameの仕様が追加されたこと。
DOMのrequestAnimationFrameでは、(仕様には具体的な数字が見当たりませんでしたが)現在の主流のブラウザーにおいて最高でも1秒間に60回(60fps)のコールが限度となり、VRHMDデバイスでの表示に使用するには問題となっていました。
WebVR独自のrequestAnimationFrameは、VRHMDデバイスのスペックに合わせて1秒間に60回以上コールされるようです。
ちょっと気になったこと
このWebVR1.0が実装されたChromeがすでにビルドされ公開されています。
早速ダウンロードしてちょっと試してみたのですが、DOMのrequestAnimationFrameが1秒間に私のマシンでは250回もコールされました。
たぶんバグだとは思いますが、ただ、DOMのrequestAnimationFrameを使用したWebアプリをこのChromeで実行すると少なからず影響が出ると思われます。
3/21に最新のビルドがアップされ、このDOMのrequestAnimationFrameのバグが修正されました。