2011-04-10 17 views
7

La resa dei caratteri subpixel come ClearType migliora notevolmente la risoluzione di visualizzazione dei caratteri e migliora la leggibilità dello schermo. Come posso programmare il rendering sub-pixel di un font (in generale), e come può essere ottenuto su iPad (C, C++ o Objective-C su un dispositivo iOS)? I caratteri sono abbastanza sfocate alle determinati formati su iPad, e so che il display del iPad dovrebbe funzionare bene con questa tecnica ...Rendering sub-pixel dei caratteri sull'iPad

Così, come potrei sviluppare un motore di rendering dei caratteri per l'iPad (ad esempio, come faccio ancora accesso sub-pixel? Devo usare OpenGL? Esiste un motore di rendering dei font open source esistente scritto in C, C++ o Objective-C per Mac OS X?)?

risposta

14

Ogni pixel sull'iPad è un rettangolo di componenti rosso, verde e blu, quindi si potrebbe pensare che il rendering dei caratteri subpixel sia una buona scelta per il dispositivo.

Tuttavia, è possibile considerare che questo dispositivo può essere facilmente modificato dalle modalità verticale a orizzontale e che le applicazioni rispondono a tale modifica. Ciò implicherebbe che anche il meccanismo dei caratteri sub-pixel avrebbe dovuto rispondere a tale cambiamento e avresti bisogno di due descrizioni sub-pixel separate per ogni carattere.

Ora gettiamo il fatto che gli sviluppatori si aspettano di essere in grado di scrivere applicazioni universali che girano sul pad e sui telefoni in un unico acquisto/download. Ma guarda le diverse configurazioni dei pixel sulle varie generazioni di telefoni nell'immagine qui sotto. Ognuno di questi, ricorda, avrebbe bisogno di descrivere i caratteri in modo diverso in modalità verticale e orizzontale. Ora hai un'esplosione di descrizioni dei font.

Ora ricordiamo che stiamo parlando di dispositivi portatili in cui la risorsa più preziosa è la batteria, e il rendering dei caratteri sub-pixel è più intenso dal punto di vista computazionale.

Immagino che questo non sia molto diverso dal processo di pensiero che ha portato Apple a evitare il rendering dei caratteri sub-pixel in favore della speranza che la tecnologia di visualizzazione aumenti la densità dei pixel fino al punto in cui non è più necessario (la retina display su iPhone 4 è il primo passo in quella direzione.)

Scommetto che in qualche edizione futura dell'iPad avremo un display con densità simile e non avrà importanza. Qualsiasi sforzo che investi cercando di inventare un meccanismo di rendering dei caratteri sub-pixel per la tua applicazione iPad verrà immediatamente eliminato a quel punto, quindi ti consiglio di non seguire questa strada.

enter image description here

+0

Se le attività sono di tipo vettoriale (come testo? Font?) Non è il calcolo del posizionamento del pixel sub automatica/matematica? O mi sbaglio? –

+3

Sembra una decisione di implementazione. Uno potrebbe avere 4 rappresentazioni su disco, o calcolare 4 rappresentazioni al momento dell'installazione (e memorizzarlo su disco) o calcolare 4 rappresentazioni quando il font viene caricato in memoria, o le rappresentazioni di calcolo pigramente mentre il dispositivo risponde al riorientamento. Qualunque cosa tu scelga, stai semplicemente spostando il costo da un posto all'altro, però, non riuscendoti a sbarazzartene. Ognuno di questi potrebbe non essere l'uso più giudizioso delle risorse in un mondo mobile in cui memoria, memoria e CPU dovrebbero essere utilizzate in modo parsimonioso. – pohl