public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData)
        {
            if (colorMaterial != null && fluidMaterial != null)
            {
                float blurScale = FluidRenderingUtils.SetupFluidCamera(renderingData.cameraData.camera);

                depth_BlurMaterial.SetFloat("_BlurScale", blurScale);
                depth_BlurMaterial.SetFloat("_BlurRadiusWorldspace", blurRadius);

                if (fluidMaterial != null)
                {
                    fluidMaterial.SetFloat("_ThicknessCutoff", thicknessCutoff);
                }

                CommandBuffer cmd = CommandBufferPool.Get(k_RenderGrabPassTag);
                using (new ProfilingSample(cmd, k_RenderGrabPassTag))
                {
                    ObiParticleRenderer[] particleRenderers = GameObject.FindObjectsOfType <ObiParticleRenderer>();
                    FluidRenderingUtils.SetupCommandBuffer(cmd, target, renderTargets, depth_BlurMaterial, normal_ReconstructMaterial, thickness_Material, colorMaterial, fluidMaterial, particleRenderers);
                }

                context.ExecuteCommandBuffer(cmd);
                CommandBufferPool.Release(cmd);
            }
        }
        public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData)
        {
            if (depth_BlurMaterial == null || normal_ReconstructMaterial == null)
            {
                return;
            }

            float blurScale = FluidRenderingUtils.SetupFluidCamera(renderingData.cameraData.camera);

            depth_BlurMaterial.SetFloat("_BlurScale", blurScale);
            depth_BlurMaterial.SetFloat("_BlurRadiusWorldspace", settings.blurRadius);


            CommandBuffer cmd = CommandBufferPool.Get(k_RenderGrabPassTag);

            using (new ProfilingSample(cmd, k_RenderGrabPassTag))
            {
                // surface reconstruction and dependant effects (lighting/reflection/refraction/foam)
                if (settings.generateSurface)
                {
                    // normals/depth buffers:
                    FluidRenderingUtils.SurfaceReconstruction(cmd,
                                                              renderTargets,
                                                              depth_BlurMaterial,
                                                              normal_ReconstructMaterial,
                                                              renderers);

                    // blur fluid surface / reconstruct normals from smoothed depth:
                    cmd.Blit(renderTargets.depth, renderTargets.smoothDepth, depth_BlurMaterial);
                    cmd.Blit(renderTargets.smoothDepth, renderTargets.normals, normal_ReconstructMaterial);
                }
            }

            context.ExecuteCommandBuffer(cmd);
            CommandBufferPool.Release(cmd);
        }