googlefonts / opensans

Open Sans font
Other
212 stars 31 forks source link

Hinting of variable fonts will not match static fonts #12

Open laerm0 opened 5 years ago

laerm0 commented 5 years ago

I believe I have finally reached the end of a long road VTT hinting Open Sans VF. Here are some fun facts.

First off, pixel deltas in variation CVTs are not possible. The method is to open the variation CVT window, choose a variation, and apply the delta as you would to a standard CVT...only this is just for font unit deltas. Those are only really appropriate for stem weights, really, and even then it's a bit fidgety. So, as far as heights not matching between the VF and static fonts currently served, nothing further can be done to improve it at this time. (With some time, I can maybe write some functions to help us out, but I'd have to see what the variation support in functions is like.)

Personally, I think that we should just back away from this and call it finished until there are improvements to VTT (and, ultimately, hinting bytecode). Mike @ MS says this is unlikely in the near future, and, really, that makes sense: with DirectWrite, this level of granular control is not often necessary.

Second, DWrite is also a reason why I say we should let this be. There are some stem weight issues on a handful of glyphs at a couple sizes, and individual glyph deltas aren't something @davelab6 wants me to spend time on. The percentage of browsers out there old enough to not use DWrite is less than 1%. Everything else is fine. Let's not worry about tweaking things for ClearType ever again. 🎉

Now then, between this and #11, we are going to break the internet. I don't know what to say to that.

davelab6 commented 5 years ago

I agree that we can skip B&W, GreyScale, and ClearType hinting levels, and review Windows rendering only under DirectWrite - used in Windows 7, 8, and 10.

I think its important to understand at the key text sizes, say 8px up to 30px, what the differences are. Please could you post screenshot GIFs here that toggle between the before/after

laerm0 commented 5 years ago

The differences are in the bold x-height at 3 sizes: 14, 20, and 21 pt.

dec-22-2018 11-03-14

dec-22-2018 11-01-18

dec-22-2018 11-03-50

dec-22-2018 10-57-16

davelab6 commented 5 years ago

(I can't tell in the image which is old/new :)

laerm0 commented 5 years ago

The new ones are 1px shorter in x-height.

davelab6 commented 5 years ago

The 20pt j tittle falls down to the right

Overall though this isn't too bad and if it is undoing what previous hinting did to distort the vector outlines, I think it can be acceptable

Which renderer is this, again?