>There's basically no human discernable difference between drawing a white pixel surrounded by black pixels by doing activating the above pattern with sequence 000fff000 meaning the middle RGB is activated vs. doing 008ffe000 which simply shifts the activation pattern one subpixel to the left. I lied, though. There's usually a slight black margin around each full RGB triplet, but I haven't found it to matter in practice.
True - in that example the total colour output for any rectangle of three subpixels is the same. In simplified form for 3-bit pixels:
xxx|000|000|111|000|xxx shifted to
can be viewed as if it were
by shifting what we consider the boundary lines.
>Anyway, against this background subpixel rendering makes perfect sense.
No it doesn't. It's different to your example above because you're not just shifting the boundary line:
xxx|x00|000|111|000|0xx definitely will *not* look the same as
Even assuming everything is correctly gamma corrected, it is fundamentally a mistake to change the balance of colours emitted within a 3-subpixel block, so that the overall hue in that block is objectively incorrect, in the assumption that people won't notice or care about that inaccuracy.
It *is* of course true that the eye's ability to resolve colours is far less than its ability to resolve intensity, but that does not lead to the conclusion that we can just mess with the colours willy-nilly, at least not until we've reached the point where the pixel density is so high that it is literally impossible to discern them. By that point, there's really no need for subpixel rendering anyway.
And besides, however you do it, this is a problem which is insoluble in the general case. Whatever is attempting to render *must* know *for certain* what the pixel arrangement is physically *at this moment* *per pixel*. In many cases, this is logically impossible - think about mirrored heterogeneous output devices for example.
And you can forget about ever taking a screenshot and expecting it to look good on another display if it's BGR, or Pentile, or has horizontal pixels, or...
Anyone here have 3 monitors in PLP configuration? Good luck getting sub-pixel rendering on that.
The only way it could be sanely implemented is for every rendering pipeline to supersample such that 3x3 pixels are generated for every one in the output device, and it is then downsampled with antialiasing applied at the final stage before display. Since that would require rendering nine times as many pixels, it's never likely to happen - and that's ignoring the question of Pentile or other exotic display schemes.
It's a hack. A dirty, nasty, ugly, cheap disgusting hack that happens to work for some people on some devices in certain situations, but which makes the situation *enormously worse* in those situations where it doesn't work, which is a lot of them.
 As distinct from simply 'a pixel' because of the boundary shifting which leaves the result practically the same
 It would need to be 3x3 rather than 3x1 because it might end up going to an output device with horizontal pixels where it would need 1x3.