fragment_program SSAO/CreaseShading_fp_hlsl hlsl
{
    source CreaseShading.hlsl
    entry_point CreaseShading_fp
    target ps_4_0
}

fragment_program SSAO/CreaseShading_fp_cg cg
{
    source CreaseShading.cg
    entry_point CreaseShading_fp
    profiles ps_2_x arbfp1
}

fragment_program SSAO/CreaseShading_fp_glsl glsl
{
    source CreaseShadingFP.glsl
	
	default_params
	{
		param_named sNormal int 0
		param_named sPosition int 1
		param_named sRandom int 2
	}
}

fragment_program SSAO/CreaseShading_fp unified
{
	delegate SSAO/CreaseShading_fp_glsl 
	delegate SSAO/CreaseShading_fp_hlsl 
	delegate SSAO/CreaseShading_fp_cg
}

material SSAO/CreaseShading
{
    technique
    {
        pass
        {
            depth_check off

			vertex_program_ref Ogre/Compositor/StdQuad_vp {}
            fragment_program_ref SSAO/CreaseShading_fp
            {
                param_named_auto cViewportSize viewport_size
            }

            texture_unit // normals
            {
                content_type compositor SSAO/GBuffer mrt 0
                tex_address_mode clamp
                filtering none
            }

            texture_unit // view space position
            {
                content_type compositor SSAO/GBuffer mrt 1
                tex_address_mode clamp
                filtering none
            }

            texture_unit // random texture will be replace by 11x11 stipple
            {
                texture rand1x32.png
                tex_address_mode clamp
                filtering none
            }
        }
    }
}
