Hardwarebeschleunigung durch die Grafikkarte ist ein Feature, mit dem Google, Microsoft und Mozilla die Nutzer von ihren Browsern überzeugen wollen. Die aktuellen Betas von Chrome, Firefox und Internet Explorer nutzen die GPU der Grafikkarte, um Inhalte auf den Bildschirm zu bringen.
Wichtig ist das vor allem bei dynamischen Websites, die mit Javascript arbeiten. Wenn sich der Bildschirminhalt ständig ändert, sollte das in akzeptabler Geschwindigkeit passieren. Die Browserhersteller zeigen dazu zahlreiche Anwendungsfälle.
Microsoft hat etwa auf seiner IE9-Website Demos zusammengestellt, die demonstrieren, wie wichtig Hardwarebeschleunigung ist. Insbesondere in Verbindung mit HTML5-Elementen, etwa Canvas, lassen sich viele Dinge realisieren, die bisher nur mit Flash möglich waren. Ein schönes Beispiel dafür ist das Asteroid-Game von Kevin Roast, das es auch in einer Benchmark-Version gibt.
Es ist also keine Frage, dass Hardwarebeschleunigung im Browser neue Anwendungsfelder eröffnet, bei denen Softwarerendering einfach zu langsam ist. Allerdings gibt es Probleme, wo man eigentlich keine vermutet, nämlich beim Rendering von Fonts. Die Probleme treten derzeit nur in den Betas von IE9 und Firefox 4 unter Windows auf. Chrome ist nicht betroffen.
Der Grund liegt darin, dass IE9 und Firefox 4 bei aktivierter Hardwarebeschleunigung Direct2D und DirectWrite verwenden. Die aktuellen Chrome-Betas setzen hingegen OpenGL ein. Das für das Fontrendering verantwortliche DirectWrite-API nutzt eine neue Technik bei der Darstellung von Fonts, die zu einer anderen Metrik der fertig gerenderten Fonts führt, als dies bei den traditionellen APIs GDI und GDIplus der Fall ist. Den Unterschied zeigen die Bilder 1 und 2.
![Bild 1: Ein Ausschnitt aus der Website von ZDNet.de, wie er bei GDI-Rendering dargestellt wird.](/i/et/sw/2010/ie9-fonts/lab-ie9-ie8mode.png)
Bild 1: Ein Ausschnitt aus der Website von ZDNet.de, wie er bei GDI-Rendering dargestellt wird.
![Bild 2: Derselbe Ausschnitt sieht mit IE9 und Firefox 4 bei aktivierter Hardwarebeschleunigung anders aus.](/i/et/sw/2010/ie9-fonts/lab-ie9-ie9mode.png)
Bild 2: Derselbe Ausschnitt sieht mit IE9 und Firefox 4 bei aktivierter Hardwarebeschleunigung anders aus.
ZDNet hat über das Problem bereits berichtet. Es ist sofort offensichtlich, dass die Schrift in den drei untersten Zeilen enger wirkt. Sie sieht ziemlich „gestaucht“ aus. Aber auch der hellblaue Vorspanntext unter der Überschrift hat eine andere Metrik. In Bild 1 geht die erste Zeile bis zum Wort „IPv6“. In Bild 2 hingegen kommt noch das Wort „für“ hinzu. Das ganze pflanzt sich bis in die fünfte Zeile fort. In Bild 1 beginnt sie mit den Wörtern „um es“, während sie in Bild 2 erst bei „ohne“ beginnt.
Neueste Kommentare
6 Kommentare zu Unscharfe Fonts im Browser: Die Probleme von DirectWrite
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.
diese schrift im kommentarfeld
“ Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *
Kommentar “
ist kaum noch zu lesen !
Fix für unscharfe Schriftdarstellung in Internet Explorer 9 jetzt verfügbar
Viele Anwender haben in der Vergangenheit die Darstellung kleiner Schriftgrößen im Internet Explorer 9 besonders bei niedrigen Bildschirmauflösungen kritisiert: Subpixel-Positionierung mit DirectWrite (IE9, Firefox) vs. pixelgenaue Positionierung über GDI (IE8, Chrome)
Während die einen Cleartype und Subpixel-Positionierung besser lesbar finden, präferieren andere die eckige Darstellung ohne Cleartype & Co und kritisieren “blurry fonts”.
Am 27.06.2011 haben wir nun eine Aktualisierung der Schriftarten Arial, Verdana und Tahoma für Windows Vista, Windows Server 2008, Windows 7 und Windows Server 2008 R2 an, um diesen Konflikt zu entschärfen: http://bit.ly/jll76a
Viele Grüße,
Daniel Melanchthon
Microsoft Deutschland GmbH
In einigen Fällen hat es aber auch Vorteile
Ich habe das ganze noch nie als unscharf empfunden. Vielleicht bin ich auch nur die Darstellung von OS X gewohnt. Dort war das schon immer so. GDI-Glättung sieht von den Standardschriften abgesehen oft sehr grausam aus. IE9 – eigentlich bereits IE4 (das Format war aber sehr exotisch) – beherrscht Webfonts, die nachgeladen werden. Ohne vernünftige Glättung sind viele Seiten bei denen der Gestalter mal etwas Abwechslung zu Arial, Times New Roman, Verdana, Tahoma und Konsorten liefern recht schlecht lesbar. Das alte ClearType (ohne Direct2D/Write) wurde für Screenreader unter WindowsCE entwickelt und setzt auf Hinting welches speziell vorbereitete Fonts so manipuliert, dass der Eindruck entsteht sie wären schärfer. Ohne Hints wird die Glättung gegenüber GDI verbessert aber der volle Effekt ist nicht da. Außer bei einer Hand voll Windows-Bildschirmschriftarten kommt dieser Vorteil nicht zu tragen. Die Veränderung hilft natürlich in anderen Anwendungen (z. B. DTP) bei der Vorabbeurteilung eines Layout (es sei denn es ist ein E-Book) nicht wirklich weiter. In meinen Augen ist das Ganze Geschmackssache. Ich persönlich fand die GDI-Schriftglättung (war nie für LCDs gedacht) in Windows XP furchtbar pixelig (ClearType (klassische Version) musste erst aktiviert werden, danach ging es besser).
Update
Microsoft hat mittlerweile ein Update herausgebracht (welches AFAIK Bestandteil von Windows 7 SP1 ist), welches die Schärfe von hellem Text auf dunklen Grund verbessert, das sieht dann also nicht mehr so aus wie auf dem Screenshot im Teil 1.
Die Nutzer mit 19-Zoll-Bildschirmen mit 1280×1024-Auflösung tun mir Leid, da lob ich mir meine 137 PPI.
AW: Update
Ich habe das Problem auch bei Chrome. Jetzt hab ich das Service Pack 1 installiert und es hat kaum etwas geholfen. Solange die Schriftdarstellung nicht wie gewohnt ist, werde ich die Hardwarebeschleunigung (leider) deaktivieren müssen, die Darstellung ist schlicht inakzeptabel, hoffentlich wird dieses Problem bald gelöst, es sind ja sehr viele Nutzer davon betroffen.
AW: AW: Update
Chrome verwendet GDI, also das was IE8 und davor verwendete. Der einzige andere Browser der auch DirectWrite unterstützt ist Firefox 4 mit aktivierter Hardwarebeschleunigung oder gesetztem gfx.font_rendering.directwrite.enabled Flag.