PVRTC is a block-based texture compression, that means that it works with groups of pixels. Problems mostly show up in high contrast areas where too many different extremes meet.
“It uses a representation that is based on the blending of two ‘low frequency’ signals using a high frequency but low precision modulation signal.” So when compressing, it takes your image, creates two small blurry versions and a modulation image. When putting it back together it calculates the value of each pixel like this: It scales the 2 small images back up and samples the 2 colors from the right location, and then decides which shade in between the 2 values to take based on the modulation image.
There’s an example on page 4 here, just look at Figure 3 and Figure 2: http://web.onetel.net.uk/~simonnihal/assorted3d/fenney03texcomp.pdf
(This is the doc I quoted above)
So the solution is very simple, isn’t it? Just try not to use more than 3 different colors in each 4×4 pixel block… ;]
- A thread on the unity forum about this topic