Table of Contents

Class ExternalDeviceMotionFrameSource

Namespace
easyar
Assembly
EasyAR.Sense.dll

Stellt eine Frame-Quelle für externe Geräte mit Bewegungsverfolgungsfähigkeit dar. Bezieht sich typischerweise auf Head-Mounted-Devices, bei denen sowohl das Kamera-Rendering als auch die Geräteverfolgung durch das Geräte-SDK erfolgen.

Diese Frame-Quelle ist ein bewegungsverfolgendes Gerät, das Bewegungsdaten im ARSession ausgibt.

Sie können es durch Vererbung für Geräteeingaben wie Headsets implementieren, müssen jedoch die Bewegungsverfolgungsfunktionalität selbst bereitstellen. EasyARs Bewegungsverfolgung kann nicht direkt auf externen Geräten verwendet werden. Sie müssen Bild- und Pose-Daten selbst von der Hardware oder anderen Quellen beschaffen und in EasyAR einspeisen. EasyAR bietet keine Fähigkeiten zum Erfassen dieser Daten, ermöglicht jedoch den Betrieb seiner Funktionen, nachdem diese Daten eingespeist wurden.

Bei Verwendung von Testprodukten (Personal-Lizenz, Test-XR-Lizenz oder Test-Mega-Service usw.) mit benutzerdefinierten Kameras oder Headsets reagiert EasyAR Sense nach jedem Start für einen festgelegten, begrenzten Zeitraum nicht mehr.

public abstract class ExternalDeviceMotionFrameSource : ExternalDeviceFrameSource
Vererbung
ExternalDeviceMotionFrameSource
Derived
Geerbte Mitglieder

Methoden

HandleCameraFrameData(DeviceFrameSourceCamera, double, Image, CameraParameters, Pose, MotionTrackingStatus)

Eingabe von Kameraframedaten.

Es wird empfohlen, Daten mit 30 oder 60 fps einzugeben. Die minimal akzeptable Bildrate = 2, aber die Antwortzeit einiger Algorithmen kann beeinträchtigt werden. Es kann in jedem Thread aufgerufen werden, solange deine APIs threadsicher sind. Diese Daten müssen mit den Daten übereinstimmen, wenn der Kamerasensor belichtet wird. Wenn möglich, wird empfohlen, Farbdaten in EasyAR-Sense einzugeben, was für den Effekt von EasyAR-Mega hilfreich ist. Für optimale Effizienz kannst du die gesamte Datenkette so gestalten, dass Roh-YUV-Daten direkt über Shared-Memory durchgereicht und mit Datenzeigern direkt an EasyAR-Sense übergeben werden. Bitte beachte die Datenverantwortung.

protected bool HandleCameraFrameData(DeviceFrameSourceCamera deviceCamera, double timestamp, Image image, CameraParameters cameraParameters, Pose deviceToOriginTransform, MotionTrackingStatus trackingStatus)

Parameter

deviceCamera
timestamp
image
cameraParameters
deviceToOriginTransform
trackingStatus

HandleRenderFrameData(double, Pose, MotionTrackingStatus)

Eingabe von Rendering-Framedaten.

Stelle sicher, dass du nach dem Bereitstellen der Gerätedaten für jeden Frame aufrufst und keine Frames überspringst. Diese Daten müssen mit den Daten übereinstimmen, die die aktuelle Unity-Rendering-Kamera im selben Frame antreiben.

protected bool HandleRenderFrameData(double timestamp, Pose pose, MotionTrackingStatus trackingStatus)

Parameter

timestamp
pose
trackingStatus