2017-10-19 1 views
3

Entwickeln in ThreeJS r87 mit der standard example WebVR script. Ich habe eine 3D-Szene erfolgreich in VR über Chrome auf meinem Handy mit Google-Pappe gerendert.Three.js + WebVR Set "Höhe" der Kamera Sichtposition

Wenn ich VR benutze, ist der Standpunkt der Kamera/des Betrachters im Zentrum der Welt (0, 0, 0). Die Bodenebene verläuft horizontal über meine Sichtlinie und ich sehe alle Objekte an.

Ich habe versucht, den Standpunkt des VR-Headset zu ändern, mit:

camera.position.set(0, 15, 0); 

Aber es scheint, nur um es zu ignorieren/außer Kraft setzen.

Ist die Position jetzt immer fixiert? Muss ich alle meine Szenenobjekte in einer Gruppe zusammenfassen und verschieben, um den Effekt zu erzeugen, dass mein Benutzer sich in der Szene bewegt?

Durch die ThreeJS-Bibliothek kann ich sehen, dass Konzepte wie Benutzer Höhe in anderen Headsets existiert: https://github.com/mrdoob/three.js/blob/dev/examples/js/controls/VRControls.js#L58 Aber Unterstützung für sie scheinen auch flockig.

grub ich tiefer über ThreeJS zu VRDisplay und fand Dinge wie VRDisplay.getPose() eine Instanz von VRPose zu bekommen, aber das ist in dem Prozess als veraltet zu werden, und ich bin nicht sicher, warum?

Erklärung und Lösung würde sehr geschätzt werden.

Antwort

1

Haben Sie versucht, die Kamera in eine Gruppe zu setzen?

var user = new THREE.Group(); 
user.position.set(0, 15, 0); 
scene.add(user); 
user.add(camera); 

See from Line #60 here.