Etykiety cezu są zamazane po wyłączeniu fxaa

Jan 06 2021

Postępowałem zgodnie z odpowiedzią w tym poście Etykieta cezu rozmyła się, ale nie miałem szczęścia.

Upewniłem się, że viewer.scene.fxaa = falsenic się nie zmienia. Proszę zobaczyć załączony zrzut ekranu.

Czy ktoś ma na to poprawkę?

Dzięki wielkie!

Odpowiedzi

2 emackey Jan 06 2021 at 21:15

Uważaj na twarde kodowanie czegoś takiego jak viewer.resolutionScale = 2. W tej linijce kodu istnieje założenie, że użytkownik prawdopodobnie ma ekran o wysokiej rozdzielczości DPI, a jego przeglądarka odpowiednio skaluje stronę w górę. Uruchomienie tego wiersza kodu w systemie, który już korzysta ze współczynnika proporcji 1: 1, może spowodować, że renderowanie będzie dwa razy szersze i dwa razy wyższe niż to, co urządzenie może faktycznie wyświetlić.

Oto alternatywna sugestia:

viewer.resolutionScale = window.devicePixelRatio

Nie jest doskonały, ale lepszy niż zakodowany na stałe 2. Będzie próbował ustawić przeglądarkę Cesium tak, aby dokładnie pasowała do natywnych pikseli urządzenia, które mogą nie być tego samego rozmiaru co „piksele CSS”, szczególnie na ekranach o wysokiej rozdzielczości.

Wartość „1” w tym miejscu (wartość domyślna) oznacza, że ​​piksele płótna przeglądarki Cesium mają ten sam rozmiar, co piksele CSS na stronie internetowej, które mogą być większe i bardziej chrupiące niż natywne piksele ekranu. Wyższe liczby działają jako mnożnik w rozdzielczości płótna WebGL, zajmując więcej pamięci graficznej i wydajności. Może się okazać, że maszyna, na której to testujesz, ma już współczynnik window.devicePixelRatio równy 1,5 lub 2,0, więc powyższa linia nie może działać inaczej niż zakodowana na stałe 2 na twoim komputerze. Ale sprawdzenie lokalnego devicePixelRatio jest lepsze niż robienie założeń.

LukeVenter Jan 06 2021 at 15:57

Można to naprawić, dodając:

  viewer.resolutionScale = 2

Może mieć wpływ na wydajność, ale na razie wydaje się w porządku.