public override void Start() { base.Start(); // SegmentationCameraSensor always use JpegQuality = 100 JpegQuality = 100; SensorCamera.GetComponent <HDAdditionalCameraData>().customRender += CustomRender; passId = new ShaderTagId("SimulatorSegmentationPass"); // passId = new ShaderTagId("GBuffer"); if (InstanceSegmentationTags.Count > 0) { // Check if instance segmentation has been set (either by Editor or by another SegmentationCamera). if (SimulatorManager.Instance.CheckInstanceSegmentationSetting()) { // TODO: Change both semantic segmentation and instance segmentation from global to per camera. // so that this error can be removed. Debug.LogError("Instance segmentation has been set for some tags. Please only load SegmentationCamera once!"); } foreach (InstanceCandidateTags tag in InstanceSegmentationTags) { SimulatorManager.Instance.SetInstanceColor(tag.ToString()); } SimulatorManager.Instance.ResetSegmentationColors(); } }
protected override void Initialize() { base.Initialize(); passId = new ShaderTagId("SimulatorDepthPass"); CameraTargetTextureReadWriteType = RenderTextureReadWrite.Linear; SensorCamera.GetComponent <HDAdditionalCameraData>().customRender += CustomRender; }
public void Start() { base.Start(); // SemanticCameraSensor always use JpegQuality = 100 JpegQuality = 100; SensorCamera.GetComponent <HDAdditionalCameraData>().customRender += CustomRender; }
protected override void Initialize() { SensorCamera.enabled = false; CurrentWidth = Width; CurrentHeight = Height; CurrentFieldOfView = FieldOfView; SizeChanged = false; var hd = SensorCamera.GetComponent <HDAdditionalCameraData>(); hd.hasPersistentHistory = true; passId = new ShaderTagId("SimulatorLidarPass"); SensorCamera.GetComponent <HDAdditionalCameraData>().customRender += CustomRender; // Create a RenderTexture without alpha channel, so that we can only visualize RGB channels. visualizationTexture = new RenderTexture(Width, Height, 24, RenderTextureFormat.RGB565); }
protected void RenderCamera() { var cmd = CommandBufferPool.Get(); var hd = HDCamera.GetOrCreate(SensorCamera); if (renderTarget.IsCube && !HDAdditionalCameraData.hasCustomRender) { // HDRP renders cubemap as multiple separate images, each with different exposure. // Locking exposure will force it to use the same value for all faces, removing inconsistencies. hd.LockExposure(); SensorCamera.stereoSeparation = 0f; SensorCamera.RenderToCubemap(renderTarget, faceMask, Camera.MonoOrStereoscopicEye.Left); hd.UnlockExposure(); } else { SensorCamera.Render(); } if (Distorted) { if (Fisheye) { LensDistortion.UnifiedProjectionDistort(cmd, renderTarget, DistortedHandle); } else { LensDistortion.PlumbBobDistort(cmd, renderTarget, DistortedHandle); } cmd.SetGlobalVector(ScreenSizeProperty, new Vector4(Width, Height, 1.0f / Width, 1.0f / Height)); var ctx = new PostProcessPassContext(cmd, hd, DistortedHandle); SimulatorManager.Instance.Sensors.PostProcessSystem.RenderLateForSensor(ctx, this); } FinalRenderTarget.BlitTo2D(cmd, hd); HDRPUtilities.ExecuteAndClearCommandBuffer(cmd); CommandBufferPool.Release(cmd); }
public void Start() { base.Start(); // SegmentationCameraSensor always use JpegQuality = 100 JpegQuality = 100; SensorCamera.GetComponent <HDAdditionalCameraData>().customRender += CustomRender; if (InstanceSegmentationTags.Count > 0) { // Check if instance segmentation has been set (either by Editor or by another SegmentationCamera). if (SimulatorManager.Instance.CheckInstanceSegmentationSetting()) { throw new Exception("Instance segmentation has been set for some tags. Reset is not allowed!"); } foreach (InstanceCandidateTags tag in InstanceSegmentationTags) { SimulatorManager.Instance.SetInstanceColor(tag.ToString()); } SimulatorManager.Instance.ResetSegmentationColors(); } }
public override void Start() { base.Start(); CameraTargetTextureReadWriteType = RenderTextureReadWrite.Linear; SensorCamera.GetComponent <HDAdditionalCameraData>().customRender += CustomRender; }
protected override void RenderToCubemap() { // SensorPassRenderer handles cubemap rendering SensorCamera.Render(); }
void RenderCamera() { SensorCamera.Render(); }