// Here you can implement the rendering logic. // Use <c>ScriptableRenderContext</c> to issue drawing commands or execute command buffers // https://docs.unity3d.com/ScriptReference/Rendering.ScriptableRenderContext.html // You don't have to call ScriptableRenderContext.submit, the render pipeline will call it at specific points in the pipeline. public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { CommandBuffer cmd = CommandBufferPool.Get(m_ProfilerTag); using (new ProfilingSample(cmd, m_ProfilerTag)) { //context.ExecuteCommandBuffer(cmd); //cmd.Clear(); var cam = renderingData.cameraData; var w = cam.camera.pixelWidth / _host.Downscale; var h = cam.camera.pixelHeight / _host.Downscale; var rtd = renderingData.cameraData.cameraTargetDescriptor; rtd.depthBufferBits = 0; //rtd.graphicsFormat = UnityEngine.Experimental.Rendering.GraphicsFormat. //cmd.GetTemporaryRT(123, rtd); var sortFlags = renderingData.cameraData.defaultOpaqueSortFlags; var drawSettings = CreateDrawingSettings(m_ShaderTagId, ref renderingData, sortFlags); drawSettings.perObjectData = PerObjectData.None; ref CameraData cameraData = ref renderingData.cameraData; Camera camera = cameraData.camera; if (cameraData.isStereoEnabled) { context.StartMultiEye(camera); } var mat = CoreUtils.CreateEngineMaterial("SDF"); drawSettings.overrideMaterialPassIndex = mat.FindPass("CamSeed"); drawSettings.overrideMaterial = mat; context.DrawRenderers(renderingData.cullResults, ref drawSettings, ref m_FilteringSettings); cmd.BakeSDF(TargetRT, SdfRT, w, h); cmd.SetGlobalTexture("_MainTex", SdfRT); //SDF.BakeCommandBuffer() //cmd.SetGlobalTexture("_CameraDepthNormalsTexture", depthAttachmentHandle.id); }