compositor ssao
{
    technique
    {
        texture geom target_width target_height PF_FLOAT16_RGBA
        texture scene target_width target_height PF_R8G8B8A8
        texture ssao target_width_scaled 0.5 target_height_scaled 0.5 PF_R8G8B8
        texture ssaoBlurX target_width target_height PF_R8G8B8
        texture ssaoBlurY target_width target_height PF_R8G8B8

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

        // the normals + depth render
        // feel free to play with it
        // right now it uses a 64-bit "fat" buffer that contains
        // unnormalized depth and XYZ normals
        target geom
        {
            input none
            material_scheme geom

            pass clear
            {
            }

            pass render_scene
            {
            }
        }

        target ssao
        {
            input none

            pass clear
            {
            }

            pass render_quad
            {
                // our SSAO listener number
                identifier 42

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

        target ssaoBlurX
        {
            input none

            pass clear
            {
            }

            pass render_quad
            {
                identifier 43

                material ssaoBlurX
                input 0 ssao
                input 1 geom
            }
        }

        target ssaoBlurY
        {
            input none

            pass clear
            {
            }

            pass render_quad
            {
                identifier 43

                material ssaoBlurY
                input 0 ssaoBlurX
                input 1 geom
            }
        }



        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
            }
        }
    }
}
