Nhãn Cesium bị mờ sau khi tắt fxaa
Tôi đã làm theo câu trả lời trong bài đăng này Nhãn Cesium bị mờ nhưng không gặp may.
Tôi đã đảm bảo điều đó viewer.scene.fxaa = false
và dường như không có gì thay đổi. Vui lòng xem ảnh chụp màn hình của tôi đính kèm.
Có ai có một sửa chữa cho điều này?
Cám ơn rất nhiều!
Trả lời
Hãy cảnh giác với những thứ như thế này viewer.resolutionScale = 2
. Có một giả định được đúc kết trong dòng mã này rằng người dùng có thể có màn hình DPI cao và trình duyệt của họ đang mở rộng trang web tương ứng. Chạy dòng mã này trên hệ thống đã sử dụng tỷ lệ pixel 1: 1 có thể khiến nó hiển thị rộng gấp đôi và cao gấp đôi so với những gì thiết bị thực sự có thể hiển thị.
Đây là một gợi ý thay thế:
viewer.resolutionScale = window.devicePixelRatio
Nó không hoàn hảo, nhưng tốt hơn so với mã cứng 2. Nó sẽ cố gắng làm cho trình xem Cesium khớp chính xác với pixel gốc của thiết bị, có thể không có cùng kích thước với "pixel CSS", đặc biệt là trên màn hình DPI cao.
Giá trị "1" ở đây (mặc định) có nghĩa là pixel canvas của trình xem Cesium có cùng kích thước với ý tưởng của trang web về pixel CSS, có thể lớn hơn và phức tạp hơn pixel gốc của chính màn hình. Các số cao hơn đóng vai trò như một hệ số trên độ phân giải canvas WebGL, chiếm nhiều bộ nhớ và hiệu suất đồ họa hơn. Bạn có thể thấy rằng máy bạn đang kiểm tra điều này đã có window.devicePixelRatio là 1.5 hoặc 2.0, vì vậy dòng trên có thể không hoạt động khác với dòng mã cứng 2 trên máy cụ thể của bạn. Nhưng kiểm tra thiết bị cục bộPixelRatio tốt hơn là đưa ra các giả định.
Điều này có thể được khắc phục bằng cách thêm:
viewer.resolutionScale = 2
Có thể ảnh hưởng đến hiệu suất, nhưng nó có vẻ ổn cho đến nay.