ป้ายซีเซียมเบลอหลังจากปิดใช้งาน fxaa

Jan 06 2021

ฉันได้ติดตามคำตอบในโพสต์นี้ฉลากซีเซียมเบลอแต่ไม่มีโชค

ฉันแน่ใจแล้วviewer.scene.fxaa = falseและดูเหมือนจะไม่มีอะไรเปลี่ยนแปลง โปรดดูภาพหน้าจอของฉันที่แนบมา

ใครมีวิธีแก้ไขสำหรับสิ่งนี้หรือไม่?

ขอบคุณมาก!

คำตอบ

2 emackey Jan 06 2021 at 21:15

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 นั้นดีกว่าการตั้งสมมติฐาน

LukeVenter Jan 06 2021 at 15:57

สามารถแก้ไขได้โดยเพิ่ม:

  viewer.resolutionScale = 2

อาจส่งผลกระทบต่อประสิทธิภาพการทำงาน แต่ดูเหมือนว่าจะใช้ได้ดี