varying vec4 v_position;
vec3 packFloatToVec3i(const float value)
{
   const vec3 bitSh = vec3( 256.0 * 256.0, 256.0, 1.0);
   const vec3 bitMsk = vec3( 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0);
   vec3 res = fract(value * bitSh);
   res -= res.xxy * bitMsk;
   return res;
}

void main(void)
{
   gl_FragColor=vec4(packFloatToVec3i(length(v_position)/500.0),1);
}