แสงสว่างในโลก Minecraftian
Minecraft เป็นเกมที่มีพื้นฐานมาจากความสูงและใช้ข้อมูล heigtmap เพื่อทำให้โลกสว่าง จากความเข้าใจของฉันจุดสูงสุดในแผนผังความสูงคือจุดสิ้นสุดของพื้นที่ที่ได้รับผลกระทบจากแสงแดด ทุกสิ่งที่อยู่ด้านบนนั้นสว่างไสวด้วยแสงแดดทุกอย่างด้านล่างที่เพิ่งได้รับอิทธิพลจากแสงใกล้เคียงในรัศมี 8 ช่วงตึก ดังนั้นหากคุณมีเกาะลอยอยู่ด้านบนของโลกของคุณทุกอย่างด้านล่างที่จะถูกมองว่าเป็นถ้ำ เมื่อแสงสองดวงมีอิทธิพลต่อจุดเดียวกันแสงที่สว่างกว่าจะเป็นฝ่ายชนะ (ไม่แน่ใจเกี่ยวกับเรื่องนั้น) ทั้งสองวิธีมีปัญหาสองสามอย่างเกี่ยวกับรูปแบบการจัดแสง minecrafts: อย่างแรกเลยถ้าโลกของคุณไม่มีแผนผังความสูงมันจะยากกว่าที่จะคิดออกว่าควรจะปล่อยแสงแดดออกมาอย่างไร วิธีง่าย ๆ คือสมมติว่าโลกนี้ (ในกรณีของฉัน) เป็นหินลอยและจากนั้นสำรวจแต่ละแกนจากทั้งสองทิศทางและหาจุดที่หินเริ่มต้นและสิ้นสุด แต่สิ่งนี้ไม่ได้ขจัดปัญหาอย่างเต็มที่เนื่องจากรอยบุบในหินไม่ควรอยู่ในความมืด Minecraft นั้นจะทำการแคชข้อมูลแสงในส่วนของมันพร้อมกับข้อมูลเกี่ยวกับเนื้อหาของบล็อก ดังนั้นถ้าโลกมีการปรับเปลี่ยนแสงจะต้องมีการปรับปรุง น่าเสียดายที่กระบวนการยังค่อนข้างช้าในการอัปเดตและเมื่อมีการเปลี่ยนแปลงของแสงอย่างรวดเร็วคุณจะเห็นความล่าช้าของแสงด้านหลัง โดยเฉพาะอย่างยิ่งหากมีการเปลี่ยนแปลงบล็อกจำนวนมาก (ภายหลังพระอาทิตย์ตก ฯลฯ ) และคุณไม่ได้ใช้คอมพิวเตอร์ที่เร็วที่สุด (หรือ Java บน Mac) จากความเข้าใจที่ จำกัด ของฉันเกี่ยวกับแสงกราฟิก 3D โลกอย่าง Minecraft ไม่ควรเป็นปัญหาที่ใหญ่ที่สุด คุณจะจัดการกับปัญหาอย่างไร ฉันคิดว่าข้อกำหนดขั้นพื้นฐานสำหรับการให้แสงในโลก voxel น่าจะเป็น อัปเดตเร็วพอที่จะเกิดขึ้นในเฟรมเดียว หนึ่งอาจทำแสงสว่างในอุปกรณ์กราฟิกและดาวน์โหลดข้อมูลแสงที่เปลี่ยนแปลงไปยัง RAM หลัก ข้อมูลแสงจะต้องพร้อมใช้งานอย่างรวดเร็วสำหรับตรรกะของเกมหลักดังนั้นจึงไม่ได้ขึ้นอยู่กับอุปกรณ์กราฟิกทั้งหมด: การให้เหตุผล: …