Passer au contenu principal

XR8.Threejs.pipelineModule()

XR8.Threejs.pipelineModule()

Description​

Un module de pipeline qui s'interface avec l'environnement et le cycle three.js. La scène three.js peut être interrogée à l'aide de XR8.Threejs.xrScene() après que XR8.Threejs.pipelineModule()la méthodede onStart soit appelée. La configuration peut être effectuée dans la méthode onStart d'un autre module de pipeline en se référant à XR8.Threejs.xrScene() à condition que XR8.addCameraPipelineModule() soit appelé sur le second module après avoir appelé XR8.addCameraPipelineModule(XR8.Threejs.pipelineModule()).

  • onStart, un moteur de rendu et une scène three.js sont crĂ©Ă©s et configurĂ©s pour dessiner sur le flux d'une camĂ©ra.
  • onUpdate, la camĂ©ra three.js est pilotĂ©e par les mouvements du tĂ©lĂ©phone.
  • onRender, la mĂ©thode render() du moteur de rendu est invoquĂ©e.

Notez que ce module ne dessine pas le flux de la caméra sur le canevas, GlTextureRenderer s'en charge. Pour ajouter un flux de caméra en arrière-plan, installez le module XR8.GlTextureRenderer.pipelineModule() avant d'installer ce module (afin qu'il soit rendu avant que la scène ne soit dessinée).

Paramètres​

Aucun

Retours​

Un module de pipeline three.js qui peut être ajouté via XR8.addCameraPipelineModule().

Exemple​

// Ajoutez XrController.pipelineModule(), qui permet l'estimation du mouvement de la caméra 6DoF.
XR8.addCameraPipelineModule(XR8.XrController.pipelineModule())

// Ajoutez un GlTextureRenderer qui dessine le flux de la caméra sur le support.
XR8.addCameraPipelineModule(XR8.GlTextureRenderer.pipelineModule())

// Ajoutez Threejs.pipelineModule() qui crée une scène, une caméra et un moteur de rendu three.js, et
// pilote la caméra de la scène en fonction du mouvement de la caméra 6DoF.
XR8.addCameraPipelineModule(XR8.Threejs.pipelineModule())

// Ajoutez une logique personnalisée à la boucle de la caméra. Cela se fait à l'aide de modules de pipeline de caméra qui fournissent
// une logique pour les moments clés du cycle pour le traitement de chaque image. Dans ce cas, nous allons
// ajouter la logique onStart pour l'initialisation de la scène, et la logique onUpdate pour les mises à jour de la scène.
XR8.addCameraPipelineModule({
// Les modules de pipeline de caméra ont besoin d'un nom. Il peut être ce que vous voulez mais doit être unique
// dans votre application.
name : 'myawesomeapp',

// onStart est appelé une fois lorsque le flux de la caméra commence. Dans ce cas, nous devons attendre que la scène
// XR8.Threejs soit prête avant de pouvoir y accéder pour ajouter du contenu.
onStart : ({canvasWidth, canvasHeight}) => {
// Récupère la scène three.js. Il a été créé par XR8.Threejs.pipelineModule().onStart(). La
// raison pour laquelle nous pouvons y accéder maintenant est que 'myawesomeapp' a été installé après
// XR8.Threejs.pipelineModule().
const {scene, camera} = XR8.Threejs.xrScene()

// Ajoutez quelques objets à la scène et définissez la position initiale de la caméra.
initScene({scene, camera})

// Synchronisez la position 6DoF du contrôleur xr et les paramètres de la caméra avec notre scène.
XR8.XrController.updateCameraProjectionMatrix({
origin : camera.position,
facing : camera.quaternion,
})
},

// onUpdate est appelé une fois par boucle de caméra avant le rendu. Toute scène géométrique three.js
// se déroulerait typiquement ici.
onUpdate : () => {
// Mettre à jour la position des objets dans la scène, etc.
updateScene(XR8.Threejs.xrScene())
},
})