I'm still trying to wrap my head around what exactly is in between a font's vector outlines and what we see on screen in web browsers. Based on a little reading, as well as the excellent replies in a previous thread (Who else wants to understand hinting?), this is the gauntlet I imagine a glyph must survive on its way to being rendered in a web page...
- A glyph starts as a bezier-based shape.
- This shape is made in or brought into a font-creation program like FontLab.
- Settings like UPM (units per em), key dimensions (for vertical measurements like x-height, cap height, ascenders and descenders), and metrics (for horizontal measurements like sidebearings and kerning) determine how the letterform will act as a glyph in a font—e.g., how much room it will occupy at a given size, how close other letters may live.
- Hinting or instructions are added (automatically and/or manually) which can provide directions for conservation of the fonts design character in environments where less-than ideal output is to be employed.
- The glyph is exported as part of a font, in either OTF or TTF format (in this context, I am ignoring all other formats—let me know if I shouldn't). TrueType hints are ditched if the font is OTF.
- The glyph is confronted by operating-system-level and browser-level rendering algorithms. I am still trying to list these combinations for myself. I would want to cross-reference technologies like Quartz and ClearType with headings like OS rendering engine, browser rendering engine, result of combination (overrides, any ignored font data).
- User settings in various places (browser preferences, OS preferences) can modify how and when the rendering engines interact with font files. Windows users can turn ClearType on or off. Users can turn antialiasing off altogether. Certain preferences can limit the size at which antialiasing is applied. Listing these variables is another item on my to-do list.
- Finally, there are the physical qualities of a user's hardware, such as the kind of monitor they use, its resolution, whether they run it at native resolution or not, and their settings for color and luminosity.
Have I missed any steps or failed to articulate these well enough? What details might you add? Also, sorry the title of this thread is so juicy compared to the content! What a way to start a conversation about rasterization, eh?