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 Kameraframe-Daten.
Es wird empfohlen, Daten mit 30 oder 60 fps einzugeben. Minimale akzeptable Framerate = 2, jedoch kann die Antwortzeit einiger Algorithmen beeinträchtigt werden. Es kann in jedem Thread aufgerufen werden, vorausgesetzt Ihre APIs sind threadsicher. Diese Daten müssen mit den Daten zum Zeitpunkt der Kamerasensor-Belichtung übereinstimmen. Falls verfügbar, wird empfohlen, Farbdaten in EasyAR Sense einzuspeisen, da dies die Effektivität von EasyAR Mega verbessert. Für optimale Effizienz können Sie die gesamte Datenpipeline so gestalten, dass Original-YUV-Daten direkt über Shared Memory durchgeleitet und mit Datenzeigern an EasyAR Sense übergeben werden. Beachten Sie die Datenbesitzverhältnisse.
protected bool HandleCameraFrameData(DeviceFrameSourceCamera deviceCamera, double timestamp, Image image, CameraParameters cameraParameters, Pose deviceToOriginTransform, MotionTrackingStatus trackingStatus)
Parameter
deviceCameratimestampimagecameraParametersdeviceToOriginTransformtrackingStatus
HandleRenderFrameData(double, Pose, MotionTrackingStatus)
Eingabe von Render-Frame-Daten.
Stellen Sie sicher, dass dies pro Frame aufgerufen wird, sobald die Gerätedaten bereit sind, ohne Frames zu überspringen. Diese Daten müssen mit denen übereinstimmen, die die aktuelle Unity-Renderkamera im selben Frame antreiben.
protected bool HandleRenderFrameData(double timestamp, Pose pose, MotionTrackingStatus trackingStatus)
Parameter
timestampposetrackingStatus