Three.js でビルドしたプロジェクトに WebVR を実装しようとしていますが、正しく機能させるのに苦労しています。
その光景を眺めていると、さまざまな問題が発生します。
VRMode が false の場合、シーンはレンダリングされますが、VR モードに切り替えると、シーンのレンダリングが突然停止します。2 つの立体視ウィンドウが表示されますが、他には何も表示されません。
シーンをデスクトップにロードすると、カメラが真下を向きます。デバイスにロードすると、シーンが上下逆になります。カメラに画像の中心を見るように指示していますが、効果がないようです。WebVR マネージャーと VRControls をサポートするためにコントロールとレンダリングをいじる前は、問題なく動作していました。
camera.position.set(-300, -800, 200); camera.up = new THREE.Vector3(0, 0, 1); camera.lookAt(new THREE.Vector3(0, 0, 0));
うまく位置を合わせられます。
- GUI の下部にあるフルスクリーン ボタンをクリックすると、画面が 2 つに分割されます。上半分は黒 (私の体の背景と clearfix の色は青) で、下半分は私のシーンをレンダリングします。ウィンドウのサイズを手動で変更すると正常に動作するイベント リスナーがあるため、これは VR マネージャーに関連付ける必要があります。
これらのエラーの原因は何ですか?
レンダラーを定義する方法は次のとおりです。
var width = window.innerWidth,
height = window.innerHeight;
var renderer = new THREE.WebGLRenderer({
antialias: true
});
renderer.setSize(width, height);
renderer.setClearColor(0x1D76BB, 1);
// Effect and Controls for VR
effect = new THREE.VREffect(renderer);
controls = new THREE.VRControls(camera);
effect.setSize(width, height);
var manager = new WebVRManager(renderer, effect);
ここに私のアニメーション機能があります:
function animate() {
requestAnimationFrame(animate);
if (controls) {
controls.update();
}
if (manager.isVRMode()) {
renderer.setRenderTarget(null); // add this line
manager.render(scene, camera);
} else {
renderer.render(scene, camera);
}
}
私のライブラリは今朝、bower から届いたばかりなので、すべて最新の状態です。