fragment_program SSAO/Volumetric_fp_hlsl hlsl { source Volumetric.hlsl entry_point Volumetric_fp target ps_4_0 } fragment_program SSAO/Volumetric_fp_cg cg { source Volumetric.cg entry_point Volumetric_fp profiles arbfp1 ps_3_0 } fragment_program SSAO/Volumetric_fp_glsl glsl { source VolumetricFP.glsl default_params { param_named sMRT1 int 0 param_named sMRT2 int 1 param_named sRand int 2 } } fragment_program SSAO/Volumetric_fp unified { delegate SSAO/Volumetric_fp_glsl delegate SSAO/Volumetric_fp_hlsl delegate SSAO/Volumetric_fp_cg } material SSAO/Volumetric { technique { pass { depth_check off vertex_program_ref Ogre/Compositor/StdQuad_vp {} fragment_program_ref SSAO/Volumetric_fp { param_named_auto cViewportSize viewport_size param_named_auto cFov fov param_named cSampleInScreenspace float 0 param_named cSampleLengthScreenSpace float 0.06 param_named cSampleLengthWorldSpace float 2 } 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 { texture 4InterleavedKMeansDisk8x4.png tex_address_mode wrap filtering none } } } }