Polypainting lets us apply color onto our model on a per vertex basis. This is also commonly referred to as vertex colors in other 3D programs or game engines.
When using Polypaint, each vertex holds color and material information we can paint. This means the amount of detail we can paint depends on the amount of vertices we have.
For example, in a texture map, each pixel holds color information similar to each vertex we can paint. A typical game texture size would be 1024 x 1024 pixels, which is around one million pixels in total. So if we want to cover the same amount of detail as a 1024 x 1024 texture, we would need at least one million vertices. This is the reason why we always polypaint at the highest level of subdivision where we have the maximum amount of vertices available.