Alates hetkest, kui digitaalsete shriftide ja tarkvara arendajad/tüpograafid asusid lahendama skaleeritavate shriftide rasteriseerimise probleemi madala ekraanisagedusega seadmete tarvis, teadvustasid nad endale ka vihjamise komplitseerituse. Skaleeritavate shriftide puhul on see probleem märgatavalt tõsisem, kui ülejäänud muudetava graafika puhul, kuna tekst nõuab süvenemist ja inimese silmad väsivad kiiresti, kui ta peab lugema ebaühtlast teksti. Matemaatiliselt korrektne pikslite esitus tähemärgi erinevate suuruste ja madala ekraani lahutusega kuvarite juures ei ole tihti visuaalselt ilus, või on suisa mitteloetav. Vihjamine on käsustik, koondamaks tehnikaid, mis peavad tagama teksti loetavuse ja maitsekuse nii palju, kui see on parajasti võimalik. Joonis 10. Näide sellest, kuidas bitmapkujutis muutub vastavalt täidetava piirjoone paigutusele ekraaniresolutsiooni suhtes. Ideaalne rasteriseerimine tähendaks aga seda, et täidetud piirjoon on alati (loe: ühe ekraanilaotus sageduse ja suuruse juures) sama kujuga, omadused nagu sümmeetria ja proportsioonid peavad aga kindlasti säilima ka suuruse muutudes. Selline ebakorrektne rasteriseerimine nagu joonisel põhjustabki ebatäpseid tähemärke, seriifide kadumist ja erineva paksusega shriftide teket. Joonis 11. Näha on rasteriseerimisest
tulenev tähemärkide ebakorrektsus, Galumise kaare
puhul on tegemist ära jäämise (ing. drop
out) efektiga e tähemärk muutub kat-kendlikuks. Vihjamine kätkeb endas hoolikalt tehtud ja sageli imepisikesi korrektuure tähemärgi piirjoone täitmise protsessi muutmiseks. Probleemid madalal resolutsiooonil - tähed kaovad osaliselt, mõned detailid ilmuvad paksendatult või peenemalt, tähevahed on erinevad jne. Vihjamine üritab seda parandada, korrigeerides tähemärgi kuju ja üritades tähte teha kuvatavaks ja esteetiliselt korrektseks võimalikult väikese resolutsiooni ja punktide arvu juures. Vihjamine shriftis Vihjamine on shrifti süda. Selle loojad, tuginedes tähelepanekutele ja mitmesugustele arvamustele korrektsest vihjamisest, otsustasid, et ei ole olemas kindlat unikaalset vihjamise parameetrit, mida rakendada automaatselt kõigile tähemärkidele. Selle asemel sidusid nad lihtsa rasteriseerimisrakenduse uue programeerimis-keelega. Iga tähemärk sisaldab oma isiklikku väikest vihjamise tarkvara, millega saab manipuleerida tähemärgi piirjoone kontrollpunkte vahetult enne rasteriseerimist, täpselt nii nagu vihjamise tarkvara soovib. Praktikas tähendab see, et iga tähemärgi piirjooned on hoolikalt painutatud, muudetud on ainult neid piksleid, mida on vaja, saavutamaks perfektset pikselkujutist. Joonis 12. 10 punktine New York shrifti e 300 dpi (punkti tolli kohta) resolutsiooni korral: esmalt rasterdatud ilma vihjamiseta, teise e puhul on näha piirjoone muutumine vastavalt vihjamisjuhistele ja viimane on rasterdus peale vihjamist juba tunduvalt korrektsem ja sarnasem piirjoonena salvestatud tähekujule. Tähemärgi suuruse muutmine Enne kui rakendatakse vihjamist, suurendatakse tähemärk vastava hetke ppem-idele. (Mõõtühik ppem (pixels per em) näitab rasterisatsiooniks vabade pikslite arvu, tuletatud tähemärgi punkti suurusest ja resolutsioonist, kusjuures em võrdub tähemärgi m laiusega.) Kõik tähemärgi koordinaadid on mõõdetud murdosa pikslitega, mitte shrifti loomisel kasutatud täisarvuliste ühikutega. Koordinaadid on 32-bitised korrastatud punktid täpsusega kuus kohta peale koma ühe biti kohta. Iga punkt talletatakse kahel korral: esmalt originaalse asetuse jaoks ja teiseks tema uue parandatud positsiooni jaoks. Punktide liigutamine ja projektsioon On olemas juhendid absoluutseteks ja suhtelisteks punktide liigutamiseks, vastavalt parameetritele, mis on võetud kontrollväärtuste tabelist, või teistest punktidest, mis on juba liigutatud. Kogu punktide liigutamise protsess juhindub kahest vektorist: projektsiooni vektorist P, piki mida võetakse kõik ühikud ja vaba vektoris V, mida mööda muutused tegelikult toimuvad. TrueType tehnoloogia paindlikkus seisneb nende vektorite osalisel iseseisvusel ja võimaluses paigutada neid ka diagonaalselt. Joonis 13. Kolmele punktile p1, p2 ja p3 antakse ühine väärtus projektsiooni vektoril P. Iga punkti liigutatakse piki tema vaba vektorit V, kuni lõikumiskohani projektsioonivektoril defineeritud kaugusega, seejärel defineeritakse sinna punkti uus asukoht. Shrifti ühtlustamine, kasutades kontrollväärtusi Üks vihjamise võtmefunktsioon on säilitada shrifti hinge läbi kõigi tähemärkide. Sellel eesmärgil ongi loodud TT puhul kontrollväärtuste tabel KVT. See peab sisaldama ühikuid, tähemärkide sarnaste omaduste defineerimiseks, et neid siis ühtlustada terve tähestiku lõikes. KVT-tabeli väärtused on alati skaleeritud vastavalt hetkel kasutatavale resolutsioonile (ppem).
Tihti on sobiv manipuleerida punktidega, mis ei ole lõplikul piirjoonel, nende defineerimiseks kasutatakse hämar ala ja nende väärtused talletatakse jällegi KVT-tabelisse. KVT-tabelis asuvad ka vihjamise funktsioonid. Igas programmeerimiskeeles muudavad funktsioonid või asendused programmi väiksemaks ja kergemini hallatavaks. TT võib funktsioone defineerida KVT-tabelis, aga mitte tähemärgi programmis. Enne kui tähemärgid rasteriseeritakse pikselpinnaks, käivitatakse KVT-tabelis asuvad funktsioonid. Delta-vihjamine TT kood (kui ta on hästi kirjutatud) võimaldab shrifti suurendada ja vähendada väga erinevatele suurustele, parimad shriftid kasutavad selleks otstarbeks Delta-vihjamist, juhendit nihutamaks kontrollpunkte veidi erinevate suuruste puhul. Instruktsioon kõlab umbes järgnevalt: 12 pikslise kirja korral nihuta viiendat kontrollpunkti 1,25 pikslit, pöörates tähelepanu vektoritele P ja V. Samuti teeb Delta-juhend korrektuure KVT-tabeli väärtustele, tavaliselt toimub see eelprogrammis ja kiirendab seega tööks vajalikku protsessi. Ära jäämise kontroll Mõningate tähemärkide puhul on vihjamist äärmiselt raske teostada, eelkõige keerukate tähemärkide puhul, või juhul kui tähemärke on keeratud. Sellistel juhtudel on kasulik lülitada välja TT ära jäämise funktsioon, mis tähendab, et tööprotsessi kiirendamiseks ei üritata keerukaid tähemärke kuvada perfektselt. Esitlus Te võite ette kujutada, et eelnevalt kirjeldatud vihjamise programmi jooksutamine tekstide kuvamiseks kulutab suure hulga riistvara ressursist ja kindlasti ei taha ju keegi, et shriftid arvuti aeglaseks teevad. TT vähendab riistvara koormust:
TrueType ja automaatne vihjamine Tarkvara lahendused, mis väidetavalt konverteerivad Type 1 shrifte TT shriftideks, teevad sageli katseid kopeerimaks vihjamist TT shrifti. DTP Type Designer ja FontLab 3.0 tõlgivad vihjamist Type 1 shriftis. Fontographer pakub kolmel tasandil TT shrifti auto-vihjamist: väljajätmise vältimine, auto-vihjamine ja auto-vihjamine + diagonaalne kontroll. Aga ei ole üheselt mõistetav, mis rakendusi kasutatakse auto-vihjamise protsessis, niisiis parimad tulemused saavutab kolmekordse vihjamisega, mis sageli lõppeb paraku veateatega. Probleeme on ka TT shriftide tööstuslikus tootmises, ülesanne kirjutada vihjamisrakendused igale tähele igas shriftis, mis sa lood, on väga ajamahukas (näiteks shriftiperekonnale, kus on 8 shrifti, tuleb kirjutada umbes 2000 pisikest programmi). Isegi ekspert TT vihjajad kasutavad vahel auto-vihjamist, kus nad siis hiljem käsitsi korrektuurid teevad. Shrifti tarkvara StingRay on selleks sobilik, aga Fontographerit või FontLabi on võimalik kasutada ainult mõnedel juhtudel. Auto-vihjamine saab olla efektiivne ainult juhul, kui shriftis on palju tähemärke, mida on vaja omavahel ühendada. Kui automaatseid rakendusi kasutada logo või graafilise kujundi juures, ei muutu see sugugi paremaks, kui vihjamata versioon.
|