introduce a shading difference for a selection area in terrain

How can I introduce a difference in shading similar to the image below (taken from Civ5), where the selection is shaded slightly (with a circle outline) differently than the area outside. I understand I can change the look of some geometry by changing a parameter like the diffuse color. But, what I don’t understand is how to render the same surface where only some part of the surface is different.


There are probably multiple ways to achieve this effect. One way is to use multiple textures and mix them. With simple geometries like circles you can also write a fragment shader function that only adds the selection colour to the texture if the fragment is outside the circle.