MaterialDef SSAOBlur {

    MaterialParameters {       
        Int NumSamples
        Int NumSamplesDepth
        Texture2D Texture
        Texture2D SSAOMap
        Texture2D DepthTexture
        Vector2 FrustumNearFar
        Boolean UseAo
        Boolean UseOnlyAo        
        Float XScale
        Float YScale
    }

    Technique {
        VertexShader GLSL150:   Common/MatDefs/Post/Post15.vert
        FragmentShader GLSL150: Common/MatDefs/SSAO/ssaoBlur15.frag

        WorldParameters {
            WorldViewMatrix
        }

        Defines {
            USE_AO : UseAo
            USE_ONLY_AO : UseOnlyAo
            RESOLVE_MS : NumSamples
            RESOLVE_DEPTH_MS : NumSamplesDepth
        }
    }

    Technique {
        VertexShader GLSL120:   Common/MatDefs/Post/Post.vert
        FragmentShader GLSL120: Common/MatDefs/SSAO/ssaoBlur.frag

        WorldParameters {            
            WorldViewMatrix
        }
        
        Defines {
            USE_AO : UseAo
            USE_ONLY_AO : UseOnlyAo
            RESOLVE_MS : NumSamples
            RESOLVE_DEPTH_MS : NumSamplesDepth
        }
    }
}