Passer au contenu principal

XR8.Babylonjs.xrCameraBehavior()

XR8.Babylonjs.xrCameraBehavior(config, xrConfig)

Description

Obtenez un comportement qui peut être attaché à une caméra Babylon comme suit : camera.addBehavior(XR8.Babylonjs.xrCameraBehavior())

Paramètres

ParamètresDescription
config [Optionnel]Paramètres de configuration à transmettre à XR8.run()
xrConfig [Facultatif]Paramètres de configuration à transmettre à XR8.XrController

config [Facultatif] est un objet avec les propriétés suivantes :

PropriétéTypeDéfautDescription
webgl2 [Facultatif]BooléenfauxSi vrai, utilisez WebGL2 si disponible, sinon utilisez WebGL1. Si faux, utilisez toujours WebGL1.
ownRunLoop [Facultatif]BooléenfauxSi c'est le cas, XR doit utiliser sa propre boucle d'exécution. Si c'est faux, vous fournirez votre propre boucle d'exécution et serez responsable de l'appel à runPreRender et runPostRender vous-même [Utilisateurs avancés uniquement]
cameraConfig : {direction} [Facultatif]Objet{direction: XR8.XrConfig.camera().BACK}Appareil photo souhaité. Les valeurs prises en charge pour la direction `sontXR8.XrConfig.camera().BACKouXR8.XrConfig.camera().FRONT`
glContextConfig [Facultatif]WebGLContextAttributesnulLes attributs permettant de configurer le contexte du support WebGL.
allowedDevices [Facultatif]XR8.XrConfig.device()XR8.XrConfig.device().MOBILESpécifiez la classe d'appareils sur lesquels le pipeline doit fonctionner. Si l'appareil actuel ne fait pas partie de cette classe, l'exécution échouera avant l'ouverture de la caméra. Si allowedDevices est XR8.XrConfig.device().ANY, ouvrez toujours la caméra. Notez que le suivi du monde ne peut être utilisé qu'avec XR8.XrConfig.device().MOBILE.

xrConfig [Facultatif] est un objet ayant les propriétés suivantes :

ParamètresDescription
enableLighting [Facultatif]Si vrai, vous obtiendrez une estimation des informations relatives à l'éclairage.
enableWorldPoints [Facultatif]Si vrai, renvoie les points de la carte utilisés pour le suivi.
disableWorldTracking [Facultatif]Si c'est le cas, désactivez le suivi SLAM pour plus d'efficacité.
imageTargets [Facultatif]Liste des noms de la cible d'image à détecter. Peut être modifié en cours d'exécution. Remarque : Toutes les images cible actuellement actives seront remplacées par celles spécifiées dans cette liste.
leftHandedAxes [Facultatif]Si vrai, utilisez des coordonnées pour gaucher.
imageTargets [Facultatif]Si vrai, inverser la gauche et la droite dans la sortie.

Retours

Un comportement Babylon JS qui connecte le moteur XR à la caméra Babylon et démarre l'alimentation et le suivi de la caméra.

Exemple

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 }) // Ajoutez des objets à la scène et définissez la position initiale de la caméra.

// Connecter la caméra au moteur XR et afficher le flux de la caméra
camera.addBehavior(XR8.Babylonjs.xrCameraBehavior())

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

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