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