compositor DeferredShading/SSAO
{
    technique
    {
		compositor_logic SSAOLogic
		
        texture_ref geom DeferredShading/GBuffer mrt_output
        texture scene target_width target_height PF_BYTE_RGBA
        texture ssao target_width_scaled 0.5 target_height_scaled 0.5 PF_BYTE_RGB
        texture ssaoBlurX target_width target_height PF_BYTE_RGB
        texture ssaoBlurY target_width target_height PF_BYTE_RGB

        // the scene we want to modulate
        target scene
        {
            input previous
        }

        

        target ssao
        {
            input none

            pass clear
            {
            }

            pass render_quad
            {
                // our SSAO listener number
                identifier 42

                quad_normals camera_far_corners_view_space

                material ssao
                // pass in the "geometry map"
                input 0 geom 1
            }
        }

        target ssaoBlurX
        {
            input none

            pass clear
            {
            }

            pass render_quad
            {
                identifier 43

                material ssaoBlurX
                input 0 ssao
                input 1 geom 1
            }
        }

        target ssaoBlurY
        {
            input none

            pass clear
            {
            }

            pass render_quad
            {
                identifier 43

                material ssaoBlurY
                input 0 ssaoBlurX
                input 1 geom 1
            }
        }



        target_output
        {
            input none

            pass render_quad
            {
                // just output something, for example, use a modulate
                // material to just multiply the scene by the ssao
                material modulate
                input 0 scene
                input 1 ssaoBlurY
                //input 1 ssao
            }
        }
    }
}
