示例#1
0
        public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData)
        {
            // Get MotionData
            var        camera = renderingData.cameraData.camera;
            MotionData motionData;

            if (!m_MotionDatas.TryGetValue(camera, out motionData))
            {
                motionData = new MotionData();
                m_MotionDatas.Add(camera, motionData);
            }

            // Calculate motion data
            CalculateTime();
            UpdateMotionData(camera, motionData);

            // Motion vector pass
            m_MotionVectorRenderPass.Setup(motionData);
            renderer.EnqueuePass(m_MotionVectorRenderPass);

            // Motion blur pass
            var stack      = VolumeManager.instance.stack;
            var motionBlur = stack.GetComponent <MotionBlur>();

            if (motionBlur.IsActive() && !renderingData.cameraData.isSceneViewCamera)
            {
                m_MotionBlurRenderPass.Setup(motionBlur);
                renderer.EnqueuePass(m_MotionBlurRenderPass);
            }
        }
        public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData)
        {
            // Get MotionData
            var camera = renderingData.cameraData.camera;

            // These flags are still required in SRP or the engine won't compute previous model matrices...
            camera.depthTextureMode |= DepthTextureMode.MotionVectors | DepthTextureMode.Depth;

            MotionData motionData;

            if (!m_MotionDatas.TryGetValue(camera, out motionData))
            {
                motionData = new MotionData();
                m_MotionDatas.Add(camera, motionData);
            }

            // Calculate motion data
            CalculateTime();
            UpdateMotionData(camera, motionData);

            // Motion vector pass
            m_MotionVectorRenderPass.Setup(motionData);
            renderer.EnqueuePass(m_MotionVectorRenderPass);

            // Motion blur pass
            var stack      = VolumeManager.instance.stack;
            var motionBlur = stack.GetComponent <MotionBlur>();

            if (motionBlur.IsActive() && !renderingData.cameraData.isSceneViewCamera)
            {
                m_MotionBlurRenderPass.Setup(motionBlur);
                renderer.EnqueuePass(m_MotionBlurRenderPass);
            }
        }