Displaying Polygon Shaped Areas on Terrain/Surface/Ground

Problem:
I have a set of 2D polygon shapes, each one with a varying amount of points that are determined at runtime.
I need to draw (or “paint”) these polygons on top of a surface.
I also need to fill in the areas of each polygon with a specific color that is also determined at runtime.
The polygons only really need to be drawn once, however solutions that would allow me to update/change the colors would be nice.
The project will be built for WebGL

What are the different/best solutions that may help me achieve this?
Am also open to suggestions and further reading

I’m a relative Beginner to Unity but a somewhat experienced programmer and know a bit about shader programming.

Edit:
By polygons I don’t mean geometry I just mean a regular shape I would like to paint on to a surface. Its just that I will always have polygons with a varying amount of points that are loaded in at runtime.

With only the simple description above, I’d reach for procedural geometry creation. Unity makes it super easy to do. You’re welcome to see plenty of random examples in my MakeGeo project.

There’s even 2D polygon maker that works from mouse drags. Look for the testfingerpolygons scene.

MakeGeo is presently hosted at these locations:

https://bitbucket.org/kurtdekker/makegeo

https://github.com/kurtdekker/makegeo

Thanks for the reply but i’m not exactly after creating geometry. Perhaps I should’ve made it more clear that I didn’t mean the usual polygons in computer graphics. I just need to draw or “paint” a shape on a surface, but my shapes are always going to be polygons.