void LateUpdate() { NativeArray <float>?distances = null; if (stabilizationMode == StabilizationMode.FurthestObject) { var taa = new TransformAccessArray(_TransformList.ToArray()); distances = new NativeArray <float>(taa.length, Allocator.Temp, NativeArrayOptions.UninitializedMemory); var job = new RenderingJobs.CalculateDistancesJob(distances.Value, transform.position); _Handle = job.Schedule(taa); _TransformList.Clear(); } RenderingSettings.cameraScale = RenderingUtility.GetParentScale(transform); ValidateFarClip(); ValidateNearClip(); RenderingSettings.farClipDistance = m_Camera.farClipPlane; RenderingSettings.nearClipDistance = m_Camera.nearClipPlane; RenderingSettings.focusDistance = actualStereoConvergence; #pragma warning disable 0618 RenderingSettings.surfaceScale = m_SurfaceScale; #pragma warning disable 0618 #if ML_RENDERING_VALIDATION CheckClearColor(); #endif switch (stabilizationMode) { case StabilizationMode.Custom: RenderingSettings.stabilizationDistance = ClampToClippingPlanes(stabilizationDistance); break; case StabilizationMode.FarClip: RenderingSettings.stabilizationDistance = m_Camera.farClipPlane; break; case StabilizationMode.FurthestObject: _Handle.Complete(); if (distances.HasValue) { if (distances.Value.Length > 0) { RenderingSettings.stabilizationDistance = distances.Max(); } distances.Value.Dispose(); distances = null; } break; } }
void LateUpdate() { NativeArray <float>?distances = null; if (stabilizationMode == StabilizationMode.FurthestObject) { var taa = new TransformAccessArray(_TransformList.ToArray()); distances = new NativeArray <float>(taa.length, Allocator.Temp, NativeArrayOptions.UninitializedMemory); var job = new RenderingJobs.CalculateDistancesJob(distances.Value, transform.position); _Handle = job.Schedule(taa); _TransformList.Clear(); } var scale = GetCameraScale(); RenderingSettings.cameraScale = scale; // only perform clipping plane validation if the user has added the requisite components. ValidateFarClip(scale); ValidateNearClip(scale); RenderingSettings.farClipDistance = GetFarClippingPlane(scale); RenderingSettings.nearClipDistance = GetNearClippingPlane(scale); RenderingSettings.focusDistance = actualStereoConvergence / scale; #if ML_RENDERING_VALIDATION CheckClearColor(); #endif switch (stabilizationMode) { case StabilizationMode.Custom: RenderingSettings.stabilizationDistance = ClampToClippingPlanes(stabilizationDistance); break; case StabilizationMode.FarClip: RenderingSettings.stabilizationDistance = GetFarClippingPlane(scale); break; case StabilizationMode.FurthestObject: _Handle.Complete(); RenderingSettings.stabilizationDistance = distances.Max(); distances.Value.Dispose(); distances = null; break; } }