in this code, what part determines the graininess of the ambient occlusion: float calcAmbientOcclusion(vec4 pos, vec3 norm, vec2 pos_screen);

vec3 getIndirect(vec3 ambient, vec3 norm, vec4 pos, vec2 pos_screen)
{
    return ambient * calcAmbientOcclusion(pos, norm, pos_screen);
}