Saltar al contenido principal

XR8.Babylonjs.xrCameraBehavior()

XR8.Babylonjs.xrCameraBehavior(config, xrConfig)

Descripción

Obtén un comportamiento que pueda adjuntarse a una cámara Babylon de la siguiente manera: camera.addBehavior(XR8.Babylonjs.xrCameraBehavior())

Parámetros

ParámetroDescripción
config [Opcional]Parámetros de configuración para pasar a XR8.run()
xrConfig [Opcional]Parámetros de configuración para pasar a XR8.XrController

config [Opcional] es un objeto con las siguientes propiedades:

PropiedadTipoPor defectoDescripción
webgl2 [Opcional]BooleanofalseSi es verdadero, utiliza WebGL2 si está disponible; si no, pasa a WebGL1. Si es falso, utiliza siempre WebGL1.
ownRunLoop [Opcional]BooleanofalseSi es verdadero, XR debe utilizar su propio bucle de ejecución. Si es falso, proporcionarás tu propio bucle de ejecución y serás responsable de llamar tú mismo a runPreRender y runPostRender [Sólo usuarios avanzados]
cameraConfig: {direction} [Opcional]Objeto{direction: XR8.XrConfig.camera().BACK}Cámara que desea utilizar. Los valores admitidos para la dirección son XR8.XrConfig.camera().BACK o XR8.XrConfig.camera().FRONT
glContextConfig [Opcional]WebGLContextAttributesnuloLos atributos para configurar el contexto del lienzo WebGL.
allowedDevices [Optional]XR8.XrConfig.device()XR8.XrConfig.device().MOBILEEspecifique la clase de dispositivos en los que debe ejecutarse la canalización. Si el dispositivo actual no pertenece a esa clase, la ejecución fallará antes de abrir la cámara. Si allowedDevices es XR8.XrConfig.device().ANY, abra siempre la cámara. Ten en cuenta que el seguimiento mundial sólo puede utilizarse con XR8.XrConfig.device().MOBILE.

xrConfig [Opcional] es un objeto con las siguientes propiedades:

ParámetroDescripción
enableLighting [Opcional]Si es verdadero, devuelve una estimación de la información de iluminación.
enableWorldPoints [Opcional]Si es verdadero, devuelve los puntos del mapa utilizados para el seguimiento.
disableWorldTracking [Opcional]Si es verdadero, desactiva el seguimiento SLAM para mayor eficiencia.
imageTargets [Opcional]Lista de nombres del objetivo de imagen a detectar. Puede modificarse en tiempo de ejecución. Nota: Todos los objetivos de imagen actualmente activos serán sustituidos por los especificados en esta lista.
leftHandedAxes [Opcional]Si es verdadero, utiliza coordenadas zurdas.
imageTargets [Opcional]Si es verdadero, voltea a izquierda y derecha en la salida.

Devuelve

Un comportamiento Babylon JS que conecta el motor XR a la cámara Babylon e inicia la alimentación y el seguimiento de la cámara.

Ejemplo

let surface, engine, scene, camera

const startScene = () => {
const canvas = document.getElementById('renderCanvas')

engine = new BABYLON.Engine(canvas, true, { stencil: true, preserveDrawingBuffer: true })
engine.enableOfflineSupport = false

scene = new BABYLON.Scene(engine)
camera = new BABYLON.FreeCamera('camera', new BABYLON.Vector3(0, 3, 0), scene)

initXrScene({ scene, camera }) // Añade objetos a la escena y fija la posición inicial de la cámara.

// Conecta la cámara al motor XR y muestra el contenido de la cámara
camera.addBehavior(XR8.Babylonjs.xrCameraBehavior())

engine.runRenderLoop(() => {
scene.render()
})

window.addEventListener('resize', () => {
engine.resize()
})
}