Originally Posted by TranquilTempest
Ever play with lego bricks? There are tolerances there at .0004 inches (10 µm), and that's injection molded ABS. There's only one truly critical dimension on an encoder wheel, and that's the diameter of the roller, the encoder isn't going to care if there's a couple thou of runout on the code wheel. Small parts are relatively easy for injection molding, when you have a large part it's a lot harder to deal with varying cooling rates.
Oh, and plastics and metals both have both an elastic region and a plastic region. Even plastic won't plastically deform until you hit its yield strength.
The plastic rollers will deform a lot more than metallic ones, even from the pressure of a ball rolling against it at the speeds we're talking about here.
Of course metal also has a elastic to plastic region, but you need much higher force for that. Yield strength for steel is between 800-1000 MPa while for plastics it's between 60-100 MPa. And that is plastic deformation. Elastic (which is enough to throw off any readings) occurs immediately and to a far higher degree than with steels.
Obviously it works well enough for what it already does, but as we're talking about a ball mouse with up to 8 m/s tracking (similar to current high end optical) you'd need quite a lot of force because you push the ball into the rollers with the same amount as the friction that occurs on the ball. And good luck getting a ball or the rollers no to slip at those speeds.
EDIT: oh well, post above explains this much better already. I should probably have finished my reply earlier instead of going afk