Zum Hauptinhalt springen

KameraPipelineModul

8th Wall-Kameraanwendungen werden mit Hilfe eines Kamera-Pipeline-Modul-Frameworks erstellt. Anwendungen installieren Module, die dann das Verhalten der Anwendung zur Laufzeit steuern.

Siehe XR8.addCameraPipelineModule() für Details zum Hinzufügen von Kamera-Pipeline-Modulen zu Ihrer Anwendung.

Ein Kamera-Pipelinemodulobjekt muss einen .name String haben, der innerhalb der Anwendung eindeutig ist. Sie sollte eine oder mehrere der folgenden Methoden für den Lebenszyklus der Kamera implementieren. Diese Methoden werden an der entsprechenden Stelle in der Laufschleife ausgeführt.

Während der Hauptlaufzeit einer Anwendung durchläuft jedes Kamerabild den folgenden Zyklus:

onBeforeRun -> onCameraStatusChange (requesting -> hasStream -> hasVideo | failed) -> onStart -> onAttach -> onProcessGpu -> onProcessCpu -> onUpdate -> onRender

Kameramodule sollten eine oder mehrere der folgenden Methoden für den Lebenszyklus der Kamera implementieren:

FunktionBeschreibung
onAppResourcesLoadedWird aufgerufen, wenn wir die mit einer Anwendung verbundenen Ressourcen vom Server erhalten haben.
onAttachWird aufgerufen, bevor ein Modul zum ersten Mal Rahmenaktualisierungen empfängt. Sie wird für Module aufgerufen, die entweder vor oder nach der Ausführung der Pipeline hinzugefügt wurden.
onBeforeRunUnmittelbar nach XR8.run() aufgerufen. Wenn irgendwelche Versprechen zurückgegeben werden, wartet XR auf alle Versprechen, bevor es weitergeht.
onCameraStatusChangeWird aufgerufen, wenn bei der Abfrage der Kamerarechte eine Änderung eintritt.
onCanvasSizeChangeWird aufgerufen, wenn sich die Größe der Leinwand ändert.
onDetachwird aufgerufen, nachdem ein Modul zum letzten Mal Rahmenaktualisierungen erhalten hat. Dies geschieht entweder, nachdem der Motor abgestellt oder das Modul manuell aus der Rohrleitung entfernt wurde, je nachdem, was zuerst eintritt.
onDeviceOrientationChangeWird aufgerufen, wenn das Gerät die Ausrichtung im Quer-/Hochformat ändert.
onExceptionWird aufgerufen, wenn ein Fehler in XR auftritt. Wird mit dem Fehlerobjekt aufgerufen.
onPausedWird aufgerufen, wenn XR8.pause() aufgerufen wird.
onProcessCpuWird aufgerufen, um die Ergebnisse der GPU-Verarbeitung zu lesen und verwertbare Daten zurückzugeben.
onProcessGpuWird aufgerufen, um die GPU-Verarbeitung zu starten.
onRemovewird aufgerufen, wenn ein Modul aus der Pipeline entfernt wird.
onRenderWird nach onUpdate aufgerufen. Dies ist der Zeitpunkt, an dem die Rendering-Engine alle WebGL-Zeichenbefehle ausgibt. Wenn eine Anwendung ihre eigene Ausführungsschleife bereitstellt und sich auf XR8.runPreRender() und XR8.runPostRender() verlässt, wird diese Methode nicht aufgerufen und das gesamte Rendering muss von der externen Ausführungsschleife koordiniert werden.
onResumeWird aufgerufen, wenn XR8.resume() aufgerufen wird.
onStartWird beim Start von XR aufgerufen. Erster Rückruf nach dem Aufruf von XR8.run().
onUpdateWird aufgerufen, um die Szene vor dem Rendern zu aktualisieren. Daten, die von Modulen in onProcessGpu und onProcessCpu zurückgegeben werden, liegen als processGpu.modulename und processCpu.modulename vor, wobei der Name durch module.name = "modulename" gegeben ist.
onVideoSizeChangeWird aufgerufen, wenn sich die Größe der Leinwand ändert.
requiredPermissionsModule können angeben, welche Browserfunktionen sie benötigen, für die möglicherweise Berechtigungsanfragen erforderlich sind. Diese können vom Framework verwendet werden, um die entsprechenden Berechtigungen anzufordern, wenn sie nicht vorhanden sind, oder um Komponenten zu erstellen, die die entsprechenden Berechtigungen anfordern, bevor XR ausgeführt wird.

Hinweis: Kameramodule, die onProcessGpu oder onProcessCpu implementieren, können Daten an nachfolgende Stufen der Pipeline liefern. Dies geschieht über den Namen des Moduls.