Virtual Reality WebXR
WebXR es un estándar abierto que permite experimentar la realidad virtual y la realidad aumentada en su navegador. El objetivo es facilitar que todos accedan a experiencias de realidad ampliada, sin importar el dispositivo que tengas. También permite que el desarrollo cruzado de aplicaciones se ejecute en diferentes entornos.
Se requieren dos cosas para experimentar una aplicación WebXR, un auricular y un navegador compatible. La forma más sencilla de empezar es con unos auriculares básicos como Google Cardboard. Simplemente coloque su teléfono y estará listo para comenzar.
Creating a project
Para habilitar la compatibilidad con vr en su proyecto, haga clic en el objeto del programa en el explorador de objetos y seleccione habilitar vr en el panel del programa como se muestra en la imagen a continuación.
Habilitar WebXR permitirá que el usuario solicite el renderizado de vr cuando el dispositivo sea compatible con WebXR, cuando en VR la cámara en uso se reposicionará automáticamente para que coincida con la posición y la rotación del HMD en el mundo real. Esto significa que la posición original de la cámara se pierde cuando se habilita el modo vr.
Para evitar perder la posición de la cámara, se recomienda que las aplicaciones de realidad virtual coloquen la cámara dentro de un contenedor que pueda usarse como referencia y pueda mantener su posición atribuida al renderizar en modo vr.
Si todo funciona como se esperaba, debería ver algo similar al ejemplo que se muestra a continuación.
VR GBEngine Demo
Using Controllers
Es posible acceder a los controladores de realidad virtual desde el objeto renderizador directamente adjunto al programa en los objetos de script. El objeto del controlador se actualiza automáticamente para que coincida con la posición del controlador físico; sus coordenadas se pueden usar para interactuar con los objetos en la escena. Es un objeto Object3D normal donde otros objetos (por ejemplo, colisionadores físicos, mallas) se pueden adjuntar como hijos.
var controller = renderer.xr.getController(0);
controller.addEventListener("selectstart", (...));
controller.addEventListener("selectend", (...));
scene.add(controller);