ป้ายซีเซียมเบลอหลังจากปิดใช้งาน fxaa
ฉันได้ติดตามคำตอบในโพสต์นี้ฉลากซีเซียมเบลอแต่ไม่มีโชค
ฉันแน่ใจแล้วviewer.scene.fxaa = false
และดูเหมือนจะไม่มีอะไรเปลี่ยนแปลง โปรดดูภาพหน้าจอของฉันที่แนบมา
ใครมีวิธีแก้ไขสำหรับสิ่งนี้หรือไม่?
ขอบคุณมาก!
คำตอบ
viewer.resolutionScale = 2
ระวังสิ่งที่ยากเช่นการเข้ารหัส มีข้อสันนิษฐานเบื้องต้นเกี่ยวกับโค้ดบรรทัดนี้ว่าผู้ใช้อาจมีหน้าจอ DPI สูงและเบราว์เซอร์ของพวกเขากำลังขยายหน้าเว็บตามนั้น การรันโค้ดบรรทัดนี้บนระบบที่ใช้อัตราส่วน 1: 1 พิกเซลอยู่แล้วอาจทำให้เรนเดอร์กว้างเป็นสองเท่าและสูงกว่าที่อุปกรณ์สามารถแสดงได้จริงถึงสองเท่า
นี่คือคำแนะนำทางเลือก:
viewer.resolutionScale = window.devicePixelRatio
มันไม่สมบูรณ์แบบ แต่ดีกว่าฮาร์ดโคด 2 มันจะพยายามทำให้ตัวแสดงซีเซียมตรงกับพิกเซลเนทีฟของอุปกรณ์ซึ่งอาจมีขนาดไม่เท่ากันกับ "พิกเซล CSS" โดยเฉพาะบนหน้าจอ DPI สูง
ค่า "1" ที่นี่ (ค่าเริ่มต้น) หมายความว่าพิกเซลผ้าใบของผู้ดูของ Cesium มีขนาดเท่ากับความคิดของพิกเซล CSS ของหน้าเว็บซึ่งอาจใหญ่และหนากว่าพิกเซลดั้งเดิมของหน้าจอ ตัวเลขที่สูงกว่าทำหน้าที่เป็นตัวคูณบนความละเอียดพื้นที่ทำงานของ WebGL โดยใช้หน่วยความจำกราฟิกและประสิทธิภาพที่มากขึ้น คุณอาจพบว่าเครื่องที่คุณกำลังทดสอบอยู่นั้นมี window.devicePixelRatio เป็น 1.5 หรือ 2.0 อยู่แล้วดังนั้นบรรทัดด้านบนอาจจะไม่ทำงานต่างจากฮาร์ดโค้ด 2 บนเครื่องของคุณโดยเฉพาะ แต่การตรวจสอบอุปกรณ์ภายในเครื่อง PixelRatio นั้นดีกว่าการตั้งสมมติฐาน
สามารถแก้ไขได้โดยเพิ่ม:
viewer.resolutionScale = 2
อาจส่งผลกระทบต่อประสิทธิภาพการทำงาน แต่ดูเหมือนว่าจะใช้ได้ดี