Seltsames Problem beim Rendern von Windows-Schriftarten (mit Video-Demo)

9

Siehe Video-Demo unter: vimeo.com/155636855

Ich habe mich zu lange mit diesem Thema auseinandergesetzt - jetzt würde ich gerne Hilfe von außen bekommen.

* Dies hat nichts mit der VM-Technologie zu tun - siehe zusätzlichen Hinweis am Ende des Beitrags *

Das angehängte Bild enthält ein nebeneinander liegendes Bild einer WordPad-Datei mit Text, der alle Buchstaben des Alphabets in Klein- und Großbuchstaben darstellt. Das Bild links wurde von einer virtuellen Windows 10-Maschine (dem "Gast" -Betriebssystem) aufgenommen, die auf einem Windows 10-Host (dem "Host" -Betriebssystem) ausgeführt wird. Das Bild rechts wurde vom Windows-Host übernommen:

Geben Sie hier die Bildbeschreibung ein

Vergrößern Sie das Bild und sehen Sie sich die Unterschiede an den Rändern der einzelnen Buchstaben genau an: Die linke Seite ist viel glatter als die rechte - und falls Sie versucht sind, schnell zu einer Schlussfolgerung zu gelangen, ist CLEARTYPE NICHT DAS PROBLEM (siehe Punkte unten) ), zumindest nicht aus der Perspektive "Ein" oder "Aus" (mit anderen Worten, eine Registrierungseinstellung in Bezug auf ClearType ist möglicherweise beteiligt, aber nichts auf der Windows-Benutzeroberfläche in Bezug auf ClearType verursacht dies, da beide Computer für ClearType und ClearType kalibriert sind ClearType ist sowohl auf Host- als auch auf Gastcomputern aktiviert.

Fakten:


Beide Betriebssysteme verwenden dieselbe TTF-Schriftartendatei (Myriad Font TrueType)

Beide Betriebssysteme sind auf die gleiche Bildschirmauflösung eingestellt.

Ich dachte, dies sei ein Problem mit dem Windows-Videotreiber, aber ich habe den neuesten nVidia-Treiber und verwende eine relativ hochwertige GeForce GTX 560-Karte mit DirectX 12 auf Host und Gast.

Beide WordPad-Dateien verwenden dieselbe Schriftart, Schriftgröße, denselben Schriftstil und denselben Zoom (100%).

Beide Windows 10-Betriebssysteme werden mithilfe von Windows Update vollständig aktualisiert.

ClearType ist sowohl auf dem Windows-Host als auch in der virtuellen Maschine aktiv (ein). Ich habe verschiedene Kombinationen von ClearType ausprobiert (Deaktivieren auf dem Host und Deaktivieren auf dem Gast sowie alle anderen Kombinationen), und es gibt keine Änderung des auf dem Host angezeigten rauen Artefakts im Vergleich zum Gast.

Mir sind keine DPI-Unterschiede zwischen Gast und Gastgeber bekannt. Andere Schriftarten, wie die in Windows enthaltene Arial-Schriftart, zeigen ähnliche Probleme nur auf dem Host. Ich habe nur Myriad Pro ausgewählt, um das Problem zu veranschaulichen.

Die Farbe beider Schriftarten ist 100% SCHWARZ (# 000).

Dieses Problem tritt in ALLEN Anwendungen auf, die TrueType-Schriftarten rendern können. Ich habe WordPad nur als Beispiel verwendet, aber es kommt auch in Microsoft PowerPoint und TechSmiths Camtasia vor.

Dieses Problem hängt nicht mit TrueType-Schriftarten zusammen. Dies gilt auch für OTF-Schriftarten.

Und für das, was es wert ist, spielt es keine Rolle, ob ich den Host von einem anderen Computer aus über eine Remotedesktopsitzung (RDP) oder mithilfe von TeamViewer ansehe. Außerdem ändert sich das Verhalten des Gastes nicht, wenn ich RDP oder TeamViewer verwende.


Offensichtlich ist etwas mit dem Subsystem zum Rendern von Schriftarten auf dem Host nicht in Ordnung. Interessanterweise war der Host ein Windows 7 Ultimate-Computer, bis ich ihn vor etwa einer Woche (Anfang Februar 2016) durch die Installation von Windows 10 Enterprise aktualisiert habe. Ich hatte gehofft, dass ein solches Upgrade von Windows 7 auf Windows 10 das Problem beim Rendern von Schriftarten beheben würde, insbesondere weil ich bereits gesehen hatte, dass Windows 10, das auf einer virtuellen Maschine auf demselben Host ausgeführt wurde, kein Problem beim Rendern von Schriftarten hatte. Leider hat das Update auf Windows 10 das Rendern der Schriftarten nicht behoben (ich habe keine Neuinstallation von Windows 10 durchgeführt - ich habe das Update durchgeführt, bei dem die vorherigen Betriebssystemdateien und -einstellungen beibehalten wurden).

Aufgrund von allem, was ich oben geschrieben habe, vermute ich, dass in der Registrierung ein beschädigter, fehlender oder falscher Wert für das Rendern von Schriftarten für das Host-Betriebssystem vorhanden ist - aber was könnte das sein?

* Hinzugefügt am 12.02.2016 * Ich habe eine brandneue Festplatte genommen und eine saubere Windows 10-Instanz auf derselben Hardware installiert, auf der der oben genannte "Host" ausgeführt wird. Die neue Windows 10-Instanz verfügt über glatte Schriftarten, genau wie die VM-Instanz (Virtual Machine) von Windows 10. Dies zeigt mir, dass die Hardware der Maschine nicht das Problem verursacht, das Image auf der rechten Seite zu generieren, und dass die VM (oder Virtualisierung) Technologie) ist nicht der Grund für die Ungleichheit. Ich habe jetzt Festplatte A mit Windows 10 auf einem physischen Computer, auf den ich booten kann, und sehe das Bild rechts. Ich habe eine zweite Festplatte B mit Windows 10 auf demselben Computer, auf den ich booten kann, um das Bild links anzuzeigen.

Ich habe dann diese neue Festplatte gelöscht und Windows 7 Ultimate von der Microsoft Source Setup DVD installiert. Außerdem wird das Bild LINKS gerendert (die richtigen, glatten Schriftarten). Das Problem ist also nicht, dass Windows 7 das Problem auf meiner Hardware hat und dass Windows 10 es nicht behebt - es ist mir jetzt klar, dass Windows 7 das Schriftartenproblem auf meiner Hardware nicht anzeigt, wenn ich Windows 7 neu installiere.

Abgesehen von der Virtualisierung scheint es, dass im Subsystem für die Schriftwiedergabe zwischen meinem vorhandenen Hostcomputer und einem "normalen" Windows 7/10-Computer eine Art Beschädigung auftritt (denken Sie daran, mein vorhandener Hostcomputer wurde von Windows 7 Ultimate aktualisiert auf Windows 10 Enterprise und das Problem bestand in Windows 7 Ultimate, bevor ich das Upgrade durchgeführt habe. Tatsächlich hatte ich gehofft, dass das Upgrade dieses Problem beheben würde - leider nicht).

Ich werde versuchen, wichtige Registrierungseinträge in meiner Freizeit auf Unterschiede zu untersuchen, aber ich bin immer noch gespannt darauf, von Experten zu hören, die mir helfen könnten, die Grundursache herauszufinden.

Jazimov
quelle
Welche VM-Software?
Yorik
1
Der Gast ist eine virtuelle VMWare 12 Workstation-Maschine, aber ich habe sie auch unter HyperV ausgeführt.
Jazimov
Ich weiß, dass Word intern mit etwa 300 dpi rendert und dann für die Anzeige Downsamples erstellt. Die Host-Version in Ihrem Bild scheint mit einer niedrigeren DPI-Einstellung gerendert worden zu sein. Nicht sicher warum. Ich weiß nicht viel über das Rendern von Schriftarten in Windows 10, aber es sieht für mich so aus, als hätten sie das Subpixel-Rendering zugunsten von Graustufen-AA abgeschafft, da das Subpixel-Rendering eine Ausrichtung hat und dies für mobile, drehbare Geräte nicht nützlich ist. Wenn ich raten müsste, würde ich sagen, dass das Problem darin liegt, wie die virtuelle Videohardware der Gast-VM dem Betriebssystem präsentiert wird.
Yorik
Dies ist kein VM-Problem (siehe meine hinzugefügten Hinweise), aber das war eine vernünftige Vermutung. Wenn Sie von DPI sprechen, haben Sie vielleicht etwas vor, aber Ihre Ideen / Theorien gelten leider nicht für mein Setup. Dies ist auch kein Problem mit "neuen Windows 10-Methoden". Beachten Sie, dass beide Computer Windows 10-Computer sind - und mein neuer Kommentar zeigt, dass sich Windows 10 auch auf demselben physischen Computer unterschiedlich verhält ... Als ich sagte, dass ich mich damit auseinandergesetzt habe, meinte ich das! :)
Jazimov
Sind Sie über HDMI verbunden? Überprüfen Sie Ihre Grafikkarteneinstellung auf eine Überziehungsanpassung und deaktivieren Sie sie? IIRC Radeon-Karten sind standardmäßig über HDMI aktiviert und
Yorik

Antworten:

2

Ich habe nie bemerkt, dass das Rendern von ClearType-Schriftarten bei großen Schriftgrößen so schlecht funktioniert ... aber unter Win10 ist es dasselbe wie auf Ihrem Computer.

Das Verhalten, das Sie beschreiben, ist meiner Meinung nach kein Fehler ... es ist eine Funktion :-)

Schauen Sie sich folgende Bilder an:

Bild 1 : Das ClearType-Rendering ist aktiviert (klicken Sie auf das Bild, um es besser zu sehen).

ClearType-Rendering EIN

Wenn ClearType aktiviert ist, versucht die Windows-Schriftwiedergabe-Engine, die Schriftwiedergabe zu optimieren, indem sie das LCD-R / G / B-Subpixel nutzt. Wenn Sie das vergrößerte Bild links überprüfen, können Sie sehen, dass jede Schriftart eine bläuliche / rötliche Glättung aufweist. Dies liegt an der LCD-Subpixelstruktur ( weitere Informationen zum Subpixel-Rendering hier ).
Wie Sie bereits bemerkt haben, funktioniert dies jedoch bei großen Schriftgrößen schlecht.
Aber es funktioniert immer noch sehr gut bei kleinen Schriftgrößen.

Bild 2 : ClearType-Rendering ist AUS (klicken Sie auf das Bild, um es besser zu sehen) Geben Sie hier die Bildbeschreibung ein

Wenn Sie das ClearType-Rendering deaktivieren, nutzt die Windows-Rendering-Engine für Schriftarten die LCD-Subpixel-Struktur nicht mehr und die Schriftart weist jetzt eine einfache graue Glättung auf (stattdessen die bläuliche / rötliche Glättung).
Dies funktioniert besser bei großen Schriftgrößen ... aber bei kleinen Schriftgrößen sehr schlecht, wie Sie anhand der Dateinamenwiedergabe, der Menüerneuerung usw. überprüfen können.

Die Tatsache, dass auf Ihrem Gast-PC die Schriftwiedergabe besser zu sein scheint, ist wahrscheinlich darauf zurückzuführen, dass die ClearType-Subpixel-Schriftwiedergabe nur aktiviert ist, wenn Windows einen physischen LCD-Bildschirm erkennt. Wenn der virtuelle PC kein physisches LCD erkennt, wird wahrscheinlich die "Standard" -Schriftglättung (Graustufen) verwendet.

Jetzt könnten Sie versuchen, Windows zu zwingen, die "Standard- / Graustufen" -Schriftglättung zu verwenden, anstatt die Cleartype- / Subpixel-Glättung, aber auf meinem Computer machte es keinen Unterschied: Erzwingen Sie die Graustufenglättung, um das gleiche Ergebnis wie beim Deaktivieren von Cleartype zu erzielen Schalttafel. ( Weitere Informationen hier zu Registrierungs-Hacks, um das Cleartype-Rendering zu optimieren. )

Max
quelle
Tolles Feedback - und möglicherweise die richtige Antwort. Bevor ich akzeptiere, bin ich zugegebenermaßen ratlos darüber, warum eine neue Instanz von Windows 10 auf meinem Host das LCD nicht erkannt hat und dann Subpixel-Antialiasing verwendet (es sei denn, der Standardvideotreiber, den Microsoft für eine neue Windows 10-Instanz auswählt, unterscheidet sich vom Treiber Ich habe für meine Windows 7-Instanz installiert, die ich später auf Windows 10 aktualisiert habe. Ich werde mit der VM experimentieren, um festzustellen, ob ich das Rendern von Subpixeln gegenüber Graustufen erzwingen kann. Außerdem werde ich mit dem Host experimentieren und Beiträge veröffentlichen bald wieder.
Jazimov
Die @ Jazzimov-Monitorerkennung wird von Windows über die Grafikkarte durchgeführt, sodass der Grafikkartentreiber sicherlich einen Einfluss darauf haben kann, wie der Monitor von Windows erkannt wird.
Max
Was ist der "richtige" Weg, um ein System zu betreiben, wenn LCD-Displays verwendet werden? Wenn ClearType deaktiviert ist, verlieren Sie Verbesserungen beim Rendern kleiner Schriftarten. Wenn es aktiviert ist, verlieren Sie Verbesserungen beim Rendern großer Schriftarten ... Was tun?
Jazimov
@Jazimov wahrscheinlich gibt es keine Lösung ... Ich halte cleartype ebabled, weil ich normalerweise mit kleinen Schriftarten arbeite, aber ich bin es nur. Ich habe das Cleartype-Rendering-Problem bei großen Schriftarten vor dem Lesen Ihres Beitrags vor 2 Stunden noch nie bemerkt (ich bin Softwareentwickler und verbringe jeden Tag mindestens 11/12 Stunden am PC ...)
Max
Ich werde noch einige Anpassungen vornehmen, um zu sehen, was mir einfällt. Viele Leute denken, dass Sie ClearType eingeschaltet lassen müssen, um akzeptablen kleineren Text zu erhalten, aber selbst wenn Sie es auf der ersten Seite des ClearType-Tuners deaktivieren, können Sie den Einstellungsprozess durchlaufen, um Ihre Anzeige zu kalibrieren. Das könnte die beste Lösung sein: ClearType OFF, Anzeigen kalibriert.
Jazimov