public override bool TryGetFrame(XRCameraParams cameraParams, out XRCameraFrame cameraFrame) { var remote = ARKitReceiver.Instance; if (remote == null) { cameraFrame = default(XRCameraFrame); return(false); } var remoteFrame = ARKitReceiver.Instance.CameraFrame; if (remoteFrame.timestampNs == default(long)) { cameraFrame = default(XRCameraFrame); return(false); } const XRCameraFrameProperties properties = XRCameraFrameProperties.Timestamp | XRCameraFrameProperties.ProjectionMatrix | XRCameraFrameProperties.DisplayMatrix; cameraFrame = new CameraFrame() { timestampNs = remoteFrame.timestampNs, averageBrightness = 0, averageColorTemperature = 0, colorCorrection = default(Color), projectionMatrix = remoteFrame.projectionMatrix, displayMatrix = remoteFrame.displayMatrix, trackingState = TrackingState.Tracking, nativePtr = new IntPtr(0), properties = properties, averageIntensityInLumens = 0, exposureDuration = 0, exposureOffset = 0 }; // Debug.Log(cameraFrame); return(true); }
public override bool TryGetFrame(XRCameraParams cameraParams, out XRCameraFrame cameraFrame) { if (!Application.isPlaying || !mockCamera.isPrepared) { cameraFrame = default(XRCameraFrame); return(false); } const XRCameraFrameProperties properties = XRCameraFrameProperties.Timestamp // | XRCameraFrameProperties.ProjectionMatrix | XRCameraFrameProperties.DisplayMatrix; Matrix4x4 displayMatrix = GetDisplayTransform( (float)mockCamera.texture.width / mockCamera.texture.height, (float)Screen.width / Screen.height ); cameraFrame = (XRCameraFrame) new CameraFrame() { timestampNs = DateTime.Now.Ticks, averageBrightness = 0, averageColorTemperature = 0, colorCorrection = default(Color), projectionMatrix = Matrix4x4.identity, displayMatrix = displayMatrix, trackingState = TrackingState.Tracking, nativePtr = new IntPtr(0), properties = properties, averageIntensityInLumens = 0, exposureDuration = 0, exposureOffset = 0, mainLightIntensityLumens = 0, mainLightColor = default(Color), ambientSphericalHarmonics = default(SphericalHarmonicsL2), cameraGrain = default(XRTextureDescriptor), noiseIntensity = 0, }; // Debug.Log(cameraFrame); return(true); }
public override bool TryGetFrame(XRCameraParams cameraParams, out UnityEngine.XR.ARSubsystems.XRCameraFrame cameraFrame) { var frame = new XRCameraFrame(); XRCameraFrameProperties properties = 0; if (m_LastLightEstimation.m_AmbientBrightness.HasValue) { frame.AverageBrightness = m_LastLightEstimation.m_AmbientBrightness.Value; properties |= XRCameraFrameProperties.AverageBrightness; } if (m_LastLightEstimation.m_AmbientColorTemperature.HasValue) { frame.AverageColorTemperature = m_LastLightEstimation.m_AmbientColorTemperature.Value; properties |= XRCameraFrameProperties.AverageColorTemperature; } if (m_LastLightEstimation.m_ColorCorrection.HasValue) { frame.ColorCorrection = m_LastLightEstimation.m_ColorCorrection.Value; properties |= XRCameraFrameProperties.ColorCorrection; } #if ARSUBSYSTEMS_3_OR_NEWER if (m_LastLightEstimation.m_AmbientIntensityInLumens.HasValue) { frame.AverageIntensityInLumens = m_LastLightEstimation.m_AmbientIntensityInLumens.Value; properties |= XRCameraFrameProperties.AverageIntensityInLumens; } #endif #if ARSUBSYSTEMS_4_OR_NEWER if (m_LastLightEstimation.m_MainLightColor.HasValue) { frame.MainLightColor = m_LastLightEstimation.m_MainLightColor.Value; properties |= XRCameraFrameProperties.MainLightColor; } if (m_LastLightEstimation.m_MainLightDirection.HasValue) { frame.MainLightDirection = m_LastLightEstimation.m_MainLightDirection.Value; properties |= XRCameraFrameProperties.MainLightDirection; } if (m_LastLightEstimation.m_MainLightIntensityLumens.HasValue) { frame.MainLightIntensityLumens = m_LastLightEstimation.m_MainLightIntensityLumens.Value; properties |= XRCameraFrameProperties.MainLightIntensityLumens; } if (m_LastLightEstimation.m_SphericalHarmonics.HasValue) { frame.AmbientSphericalHarmonics = m_LastLightEstimation.m_SphericalHarmonics.Value; properties |= XRCameraFrameProperties.AmbientSphericalHarmonics; } #endif frame.Properties = properties; var union = new XRCameraFrameUnion { m_OurXRCameraFrame = frame }; cameraFrame = union.m_TheirXRCameraFrame; return(true); }