Etiquetas de cesio borrosas después de desactivar fxaa

Jan 06 2021

He seguido la respuesta en este post con etiqueta de cesio borrosa pero no he tenido suerte.

Me he asegurado de eso viewer.scene.fxaa = falsey nada parece cambiar. Por favor, vea mi captura de pantalla adjunta.

¿Alguien tiene una solución para esto?

¡Muchas gracias!

Respuestas

2 emackey Jan 06 2021 at 21:15

Tenga cuidado con la codificación rígida de algo como viewer.resolutionScale = 2. Hay una suposición incorporada en esta línea de código de que el usuario probablemente tiene una pantalla de DPI alto, y su navegador está ampliando la página web en consecuencia. Ejecutar esta línea de código en un sistema que ya está usando una proporción de píxeles de 1: 1 puede hacer que se muestre el doble de ancho y el doble de alto de lo que el dispositivo realmente puede mostrar.

Aquí hay una sugerencia alternativa:

viewer.resolutionScale = window.devicePixelRatio

No es perfecto, pero es mejor que un 2. Intentará que el visor de Cesium coincida exactamente con los píxeles nativos del dispositivo, que pueden no tener el mismo tamaño que los "píxeles CSS", especialmente en pantallas de alta resolución.

Un valor de "1" aquí (el valor predeterminado) significa que los píxeles del lienzo del visor de Cesium tienen el mismo tamaño que la idea de píxeles CSS de la página web, que pueden ser más grandes y más gruesos que los píxeles nativos de la pantalla. Los números más altos actúan como un multiplicador en la resolución del lienzo de WebGL, lo que requiere más memoria de gráficos y rendimiento. Puede encontrar que la máquina en la que está probando esto ya tiene una window.devicePixelRatio de 1.5 o 2.0, por lo que la línea anterior puede no actuar de manera diferente a un 2 codificado en su máquina en particular. Pero comprobar el devicePixelRatio local es mejor que hacer suposiciones.

LukeVenter Jan 06 2021 at 15:57

Esto se puede solucionar agregando:

  viewer.resolutionScale = 2

Puede afectar el rendimiento, pero parece estar bien hasta ahora.