Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
 protected override void Initialize()
 {
     base.Initialize();
     passId = new ShaderTagId("SimulatorDepthPass");
     CameraTargetTextureReadWriteType = RenderTextureReadWrite.Linear;
     SensorCamera.GetComponent <HDAdditionalCameraData>().customRender += CustomRender;
 }
Ejemplo n.º 3
0
 public void Start()
 {
     base.Start();
     // SemanticCameraSensor always use JpegQuality = 100
     JpegQuality = 100;
     SensorCamera.GetComponent <HDAdditionalCameraData>().customRender += CustomRender;
 }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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();
            }
        }
Ejemplo n.º 7
0
 public override void Start()
 {
     base.Start();
     CameraTargetTextureReadWriteType = RenderTextureReadWrite.Linear;
     SensorCamera.GetComponent <HDAdditionalCameraData>().customRender += CustomRender;
 }
Ejemplo n.º 8
0
 protected override void RenderToCubemap()
 {
     // SensorPassRenderer handles cubemap rendering
     SensorCamera.Render();
 }
Ejemplo n.º 9
0
 void RenderCamera()
 {
     SensorCamera.Render();
 }