Problema extraño de representación de fuentes de Windows (con demostración de video)


9

Vea la demostración en video en: vimeo.com/155636855

He lidiado con este problema durante demasiado tiempo; ahora me encantaría recibir ayuda externa.

* Esto no tiene nada que ver con la tecnología VM: vea la nota agregada al final de la publicación *

La imagen adjunta contiene una imagen lado a lado de un archivo de WordPad con texto que representa todas las letras del alfabeto, minúsculas y mayúsculas. La imagen de la izquierda se tomó de una máquina virtual con Windows 10 (el SO "invitado") que se ejecuta en un host con Windows 10 (el SO "host"); la imagen de la derecha fue tomada del host de Windows:

ingrese la descripción de la imagen aquí

Amplíe la imagen y observe bien las diferencias alrededor de los bordes de cada letra: la izquierda es mucho más suave que la derecha, y en caso de que sienta la tentación de llegar a una conclusión rápida, CLEARTYPE NO ES EL PROBLEMA (vea los puntos a continuación) ), al menos no desde una perspectiva de "encendido" versus "apagado" (en otras palabras, una configuración de registro relacionada con ClearType podría estar involucrada, pero nada en la interfaz de usuario de Windows relacionada con ClearType está causando esto porque ambas máquinas están calibradas para ClearType y ClearType está activado tanto en máquinas host como invitadas).

Hechos:


Ambos sistemas operativos están utilizando el mismo archivo de fuente Myriad font TrueType (TTF)

Ambos sistemas operativos están configurados con la misma resolución de pantalla.

Pensé que esto era un problema de controlador de video de Windows, pero tengo el último controlador nVidia y estoy ejecutando una tarjeta GeForce GTX 560 de gama alta con DirectX 12 tanto en el host como en el invitado.

Ambos archivos de WordPad usan la misma fuente, tamaño de fuente, estilo de fuente y zoom (100%).

Ambos sistemas operativos Windows 10 se actualizan completamente con Windows Update.

ClearType está activo (activado) tanto en el host de Windows como en la máquina virtual. He probado varias combinaciones de ClearType (apagándolo en el host y apagándolo en el invitado, y todas las demás combinaciones) y no hay ningún cambio en el artefacto de vanguardia que se muestra en el host en comparación con el invitado.

No conozco ninguna diferencia de DPI entre el invitado y el host. Otras fuentes, como la fuente Arial incluida en Windows, muestran problemas similares similares solo en el host: simplemente elegí Myriad Pro para ilustrar el problema.

El color de ambas fuentes es 100% NEGRO (# 000).

Este problema aparece en TODAS las aplicaciones que pueden representar fuentes TrueType. Usé WordPad solo como ejemplo, pero también ocurre en Microsoft PowerPoint y Camtasia de TechSmith.

Este problema no está relacionado con las fuentes TrueType; sucede también para las fuentes OTF.

Y, por lo que vale, no importa si veo el host desde otra computadora a través de una sesión de escritorio remoto (RDP) o usando algo como TeamViewer; Además, el comportamiento del invitado no cambia cuando uso RDP o TeamViewer.


Claramente, algo está mal con el subsistema de representación de fuentes en el host. Curiosamente, el host era una máquina Windows 7 Ultimate hasta hace aproximadamente una semana (principios de febrero de 2016), cuando lo actualicé instalando Windows 10 Enterprise. Tenía la esperanza de que hacer una actualización de Windows 7 a Windows 10 solucionaría el problema de representación de fuentes, especialmente porque ya vi que Windows 10 ejecutándose en una máquina virtual en el mismo host no tenía el problema de representación de fuentes. Desafortunadamente, la actualización de Windows 10 no solucionó el procesamiento de la fuente (no realicé una nueva instalación de Windows 10, hice la actualización que conserva los archivos y configuraciones anteriores del sistema operativo).

Debido a todo lo que escribí anteriormente, sospecho que hay algún valor dañado, faltante o incorrecto en el registro relacionado con la representación de fuentes para el sistema operativo host, pero ¿qué podría ser?

* Agregado 12/02/2016 * Tomé un disco duro nuevo e instalé una instancia limpia de Windows 10 en el mismo hardware en el que se ejecuta el "host" al que me refiero anteriormente. La nueva instancia de Windows 10 tiene fuentes suaves, al igual que la instancia de máquina virtual (VM) de Windows 10. Esto me dice que el hardware de la máquina no está causando que el problema genere la imagen a la derecha y que la VM (o virtualización tecnología) no es la razón de la disparidad. Ahora tengo el disco duro A con Windows 10 en una máquina física en la que puedo iniciar y ver la imagen a la derecha; Tengo un segundo disco duro B con Windows 10 en la misma máquina en la que puedo iniciar para mostrar la imagen de la izquierda.

Luego limpié ese nuevo disco duro e instalé Windows 7 Ultimate del DVD de instalación de la fuente de Microsoft. También representa la imagen a la IZQUIERDA (las fuentes correctas y suaves). Entonces, el problema no es que Windows 7 tenga el problema en mi hardware y que Windows 10 no lo corrija; ahora tengo claro que Windows 7 no muestra el problema de la fuente en mi hardware si reinstalo Windows 7.

Entonces, dejando de lado la virtualización: parece que estoy presenciando algún tipo de corrupción en el subsistema de representación de fuentes entre mi máquina host existente y una máquina Windows 7/10 "normal" (recuerde, mi máquina host existente se actualizó desde Windows 7 Ultimate a Windows 10 Enterprise y el problema existía en Windows 7 Ultimate antes de realizar la actualización; de hecho, esperaba que la actualización solucionara este problema, por desgracia, no lo hizo).

Intentaré buscar / comparar las entradas clave del registro en busca de disparidades en mi tiempo libre, pero todavía estoy ansioso por saber de cualquier experto que pueda ayudarme a concentrarme en la causa raíz.


¿Qué software de VM?
Yorik

1
El invitado es una máquina virtual VMWare 12 Workstation pero también la he ejecutado en HyperV.
Jazimov

Sé que Word representa a unos 300 ppp internamente y luego muestra descendente para mostrar. La versión de host en su imagen parece que se renderizó con una configuración de DPI más baja. No estoy seguro de por qué. No sé mucho sobre la representación de fuentes en Windows 10, pero me parece que eliminaron la representación de subpíxeles a favor de la escala de grises AA, ya que la representación de subpíxeles tiene una orientación y eso no es útil para dispositivos móviles giratorios. Si tuviera que adivinar, diría que el problema radica en cómo el hardware de video virtual Guest VM se presenta al sistema operativo.
Yorik

Este no es un problema de VM (ver mis notas agregadas), pero fue una suposición razonable. Es posible que tenga algo cuando habla de DPI, pero sus ideas / teorías desafortunadamente no se aplican a mi configuración. Además, este tampoco es un problema de "nueva forma de hacer las cosas en Windows 10". Tenga en cuenta que ambas máquinas son máquinas con Windows 10, y mi nuevo comentario demuestra que Windows 10 se comporta de manera diferente incluso en la misma máquina física ... ¡Cuando dije que había estado lidiando con esto, lo dije en serio! :)
Jazimov

¿estás conectado a través de HDMI? Compruebe la configuración de su tarjeta de video para un ajuste de sobregiro y desactívelo Las tarjetas Radeon del IIRC están habilitadas de manera predeterminada a través de HDMI y se aleja del nativo
Yorik

Respuestas:


2

Nunca me di cuenta de que el renderizado de fuentes ClearType funciona tan mal en un tamaño de fuente grande ... pero en mi Win10 es lo mismo que en su computadora.

El comportamiento que describe, en mi opinión, no es un error ... es una característica :-)

Echa un vistazo a las siguientes imágenes:

Imagen 1 : la representación de ClearType está activada (haga clic en la imagen para verla mejor)

Representación ClearType activada

Cuando ClearType está activado, el motor de representación de fuentes de Windows intenta optimizar la representación de fuentes aprovechando el subpíxel LCD R / G / B. Si marca la imagen ampliada a la izquierda, puede ver que cada fuente tiene un suavizado azulado / rojizo, esto se debe a la estructura del subpíxel de la pantalla LCD ( más información sobre la representación del subpíxel aquí ).
Pero, como notó, esto funciona mal en el tamaño de fuente grande.
Pero aún funciona muy bien en un tamaño de fuente pequeño.

Imagen 2 : la representación de ClearType está DESACTIVADA (haga clic en la imagen para verla mejor) ingrese la descripción de la imagen aquí

Si desactiva la representación de ClearType, el motor de representación de fuentes de Windows dejará de aprovechar la estructura de subpíxeles de la pantalla LCD y ahora la fuente tendrá un suavizado gris simple (en lugar del suavizado azulado / rojizo).
Esto funciona mejor en el tamaño de fuente grande ... pero funciona muy mal en el tamaño de fuente pequeño, como puede comprobar mirando la representación del nombre del archivo, la representación del menú, etc.

Ahora, el hecho de que en su PC huésped la reproducción de la fuente parezca mejor, probablemente se deba al hecho de que la reproducción de la fuente de subpíxeles ClearType se habilita solo cuando Windows detecta una pantalla LCD física. Si la PC virtual no detecta una pantalla LCD física, probablemente usará el suavizado de fuente "estándar" (escala de grises).

Ahora podría intentar forzar a Windows a usar el suavizado de fuente "estándar / escala de grises", en lugar de suavizar Cleartype / subpixel, pero en mi computadora no hizo ninguna diferencia: forzar el suavizado de escala de grises da el mismo resultado que deshabilitar Cleartype de panel de control. ( Más información aquí sobre hacks de registro para intentar modificar la representación de Cleartype )


Gran respuesta, y posiblemente la respuesta correcta. Antes de aceptar, estoy ciertamente perplejo de por qué una nueva instancia de Windows 10 en mi host no detectó la pantalla LCD y luego usó el antialiasing de subpíxeles (a menos que el controlador de video predeterminado que Microsoft seleccione para una nueva instancia de Windows 10 haga algo diferente del controlador) Instalé para mi instancia de Windows 7 que luego actualicé a Windows 10) ... Experimentaré con la VM para ver si puedo forzar la representación de subpíxeles frente a escala de grises, y también experimentaré con el host y publicaré De nuevo pronto.
Jazimov

La detección del monitor @Jazimov es realizada por Windows a través de la tarjeta de video, por lo que el controlador de la tarjeta de video seguramente podría tener un impacto sobre cómo Windows detecta el monitor.
Max

Entonces, ¿cuál es la forma "correcta" de ejecutar un sistema cuando se utilizan pantallas LCD? Si ClearType está desactivado, pierde las mejoras de representación de fuentes pequeñas; si está activado, pierde mejoras en la representación de fuentes grandes ... ¿Qué hacer?
Jazimov

@Jazimov probablemente no haya solución ... Mantengo cleartype ebabled porque generalmente trabajo con fuentes pequeñas, pero solo soy yo. Nunca me di cuenta del problema de representación de cleartype en las fuentes grandes antes de leer tu publicación hace 2 horas (soy desarrollador de software y paso al menos 11/12 horas en la PC cada día ...)
Max

Todavía haré algunos ajustes para ver qué se me ocurre. Mucha gente piensa que necesita mantener ClearType activado para obtener un texto más pequeño aceptable, pero incluso si lo desmarca usando la primera página del sintonizador ClearType, aún puede pasar por el proceso de ajuste para calibrar su pantalla. Esa podría ser la mejor solución: ClearType OFF, pantallas calibradas.
Jazimov
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.