I would use a shader for that.
With this tutorial you can get the fragment world position. Then you need to check if the distance from the fragment to the player is less than R. This should be in the void fragment()
function.
vec3 color = vec3(1., 0., 0.); // RED
if(distance(world_position, player_position) < R){
ALBEDO = color + texture(SCREEN_TEXTURE, SCREEN_UV).xyz;
ALPHA = 1.;
}
else
ALPHA = 0.;
Since you want the ground to be visible, the screen texture should be added to the color (like in the example above). If you want to see the floor better, reduce the ALPHA value.
If you are new to shaders, I would suggest following the tutorials here first.