Label Cesium Buram setelah menonaktifkan fxaa
Saya telah mengikuti jawabannya di posting ini Label Cesium kabur tetapi tidak berhasil.
Saya telah memastikan itu viewer.scene.fxaa = false
dan sepertinya tidak ada yang berubah. Silakan lihat tangkapan layar saya terlampir.
Apakah ada yang bisa memperbaiki ini?
Terima kasih banyak!
Jawaban
Berhati-hatilah dengan pengkodean keras seperti viewer.resolutionScale = 2
. Ada asumsi yang tertanam pada baris kode ini bahwa pengguna mungkin memiliki layar DPI tinggi, dan browser mereka meningkatkan ukuran halaman web yang sesuai. Menjalankan baris kode ini pada sistem yang sudah menggunakan rasio piksel 1: 1 dapat menyebabkannya merender dua kali lebih lebar dan dua kali lebih tinggi dari yang sebenarnya dapat ditampilkan perangkat.
Berikut saran alternatif:
viewer.resolutionScale = window.devicePixelRatio
Ini tidak sempurna, tetapi lebih baik daripada 2. hard-coded 2. Ini akan mencoba untuk membuat penampil Cesium agar sama persis dengan piksel asli perangkat, yang mungkin tidak berukuran sama dengan "piksel CSS", terutama pada layar DPI tinggi.
Nilai "1" di sini (default) berarti piksel kanvas penampil Cesium memiliki ukuran yang sama dengan ide halaman web tentang piksel CSS, yang mungkin lebih besar dan lebih tebal daripada piksel asli layar itu sendiri. Angka yang lebih tinggi bertindak sebagai pengganda pada resolusi kanvas WebGL, yang membutuhkan lebih banyak memori grafis dan kinerja. Anda mungkin menemukan bahwa mesin tempat Anda mengujinya sudah memiliki window.devicePixelRatio 1.5 atau 2.0, jadi baris di atas mungkin tidak bertindak berbeda dari versi 2 yang di-hardcode pada mesin Anda. Tapi memeriksa devicePixelRatio lokal lebih baik daripada membuat asumsi.
Ini bisa diperbaiki dengan menambahkan:
viewer.resolutionScale = 2
Mungkin memengaruhi kinerja, tetapi sejauh ini tampaknya baik-baik saja.