sequence firstPass hblur vblur finalRender passes firstPass draw DRAW_QUAD program FirstPass inputs a_position a_position-symbol u_colorSampler COLOR outputs color firstPass_color hblur draw DRAW_QUAD program HorizontalBlur inputs a_position a_position-symbol u_colorSampler firstPass_color outputs color hblur_color vblur draw DRAW_QUAD program VerticalBlur inputs a_position a_position-symbol u_colorSampler hblur_color outputs color bothblurs_color finalRender draw DRAW_QUAD program FinalRender inputs a_position a_position-symbol u_blurmapSampler bothblurs_color u_colorSampler COLOR outputs color COLOR targets firstPass_color size 512x512 type color hblur_color size 512x512 type color bothblurs_color size 512x512 type color symbols u_blurRadius-symbol type float u_viewportSize-symbol type vec2 u_blurKernel-symbol type mat4 a_position-symbol semantic vertex