PLA filaments are pretty transparent in their pure state. Other filaments, especially fiber-filled ones, are opaque in nature. But in the end, the color is determined a lot by the colorful pigments added and the amount of pigments directly correlates to the opacity. The more pigment is added, the more opaque it becomes. There are several screws for the color though: Ammount and type of pigments. For transparent filaments.
Not all pigments are the same. For example, white greatly differs between different brands. For example, my second-favorite brand's white is a little more in the "cream" color range, the filament sample that came with my TronXY X1 was very satin gloss and the first spool I ordered was a very white-opaque white. This all is because of the type of pigment used and the amount.
How can you tell the amount? From the print properties and the looks of a printed filament: a filament that is very laden with pigments tends to print hotter than one that has few to none, but it also blocks light much better. I have experienced up to 20 °C between a transparent and the very heavily pigment laden white filament for the sweetspot. The same white filament was completely opaque after 1.6 mm in walls but most prints are!
Remember: walls are generally thicker than roofs. If you really need to make the white covering fully, you'll need to make more white thickness, but thinner layers can help a slight bit as the included air in each layer helps a little.