Interest and Appreciation for the Article
Several commenters expressed strong positive opinions about the article itself.
- dustbunny: "This is incredibly well written, interesting and useful."
The Merits and Drawbacks of Subpixel Rendering
The discussion centered heavily on the usefulness and limitations of subpixel rendering, with opinions varying based on display technology and specific use cases. Some argued for its continued relevance, while others viewed it as an outdated technique.
- vecplane: "Subpixel font rendering is critical for readability but, as the author points out, it's a tragedy that we can't get pixel layout specs from the existing display standards."
- crazygringo: "But the world has increasingly moved to Retina-type displays, and there's very little reason for subpixel rendering there... It was a temporary innovation for the LCD era between CRT and Retina, but at this point it's backwards-looking. There's a good reason Apple removed it from macOS years ago."
- f33d5173: "Because apple controls all their hardware and can assume that everyone has a particulr set of features and not care about those without. The rest of the industry doesn't have that luxury."
- LoganDark: "The artifacts created by subpixel AA are dumb and unnecessary when the pixel density is high enough for grayscale to look good. Plus, with display scaling, subpixel AA creates artifacts. (Not like display scaling itself doesn't also create artifacts - I cannot tolerate the scaling artifacts on iPad, for example)"
- akdor1154: "Apple could easily have ensured screens across their whole ecosystem had a specific subpixel alignment - yet they still nixed the feature."
The Challenge of Inconsistent Subpixel Layouts
A significant issue raised was the lack of standardization in subpixel layouts, especially with OLED displays, and the difficulties this poses for rendering engines.
- jasonthorsness: "I don't understand why, this has been a thing for decades :(. The article is excellent and links to this 'subpixel zoo' highlighting the variety: https://geometrian.com/resources/subpixelzoo/"
- shmerl: "> One of those new OLEDs that look so nice, but that have fringing issues because of their non-standard subpixel structure From what I understood, it's even worse. Not just non standard, but multiple incompatible subpixel layouts that OLEDs have. That's the reason freetype didn't implement subpixel rendering for OLEDs and it's a reason to avoid OLEDs when you need to work with text. But it's also not limited to freetype, a lot of things like GUI toolkits (Qt, GTK. etc.) need to play along too."
- shmerl: "> I really wish that having access to arbitrary subpixel structures of monitors was possible, perhaps given via the common display protocols. Yeah, this is a good point. May be this should be communicated in EDIDs."
- account42: "There are oleds with somewhat standard subpixel layouts. E.g. my laptop has a vertical(!) BGR layout that FreeType and KDE support just fine. I think the weird layouts are mostly due to needing different sizes for the different colors in HDR displays in order to not burn out one color (blue) too fast."
- zozbot234: "It looks like the DisplayID standard (the modern successor to EDID) is at least intended to allow for this, per https://en.wikipedia.org/wiki/DisplayID#0x0C_Display_device_... . Do display manufacturers not implement this? Either way, it's information that could be easily derived and stored in a hardware-info database, at least for the most common display models."
GPU-Based Text Rendering: Alternatives to Atlases and SDFs
Several comments addressed the possibility of directly rendering text on the GPU, questioning the continued reliance on techniques like texture atlases and Signed Distance Fields (SDFs). The trade-offs between performance, power consumption, and complexity were central to this discussion.
- vFunct: "I still don't understand why we need text rendered offline and stored in an atlas alongside tricks like SDFs, when GPUs have like infinite vertex/pixel drawing capabilities.. Even the article mentions writing glyph curves to an atlas. Why can't the shaders render text directly? There has to be a way to convert bezier to triangle meshes. I'm about to embark on a GPU text renderer for a CAD app and I hope to figure out why soon."
- ben-schaaf: "GPUs don't have infinite vertex/pixel drawing capabilities. Rendering text directly is simply more expensive. Yes, you can do it, but you'll be giving up a portion of your frame budget and increasing power usage for no real benefit."
- account42: "To expand on this, GPUs cannot rasterize text directly because they only work with triangles. You need to either implement the rasterization in shaders or convert the smooth curves in the font into enough triangles that the result doesn't look different (number of triangles required increases with font pixel size)."
- MindSpunk: "The triangle density of even a basic font is crazy high at typical display sizes. All modern GPU architectures are very bad at handling high density geometry. It's very inefficient to just blast triangles at the GPU for these cases compared to using an atlas or some other scheme."
- modeless: "It's simply less expensive in most cases to cache the results of rendering when you render the same glyph over and over. GPUs are fast but not infinitely fast, and they are extremely good at sampling from prerendered textures. Also it's not just about speed, but power consumption."
- dxuh: "GPUs are very fast, but not quite infinite. If you spend your GPU time on text, you can't spend it on something else. And almost always you would like to spend it on something else. Also the more GPU time you require, the faster the minimum required hardware needs to be. Text is cool and important, but maybe not important enough to lose users or customers."
- account42: "GPU rasterizers don't do sub-pixel rendering. This is OK for most 3D geometry but for small text you want to take advantage of any additional resolution you can squeeze out. On the other hand, if you are rendering to an atlas anyway then you don't really need to bother with a GPU implementation for that an can just use an existing software font rasterizer like FreeType to generate that atlas for you."