การแยกภูมิประเทศ Quadtree - ฉันไม่เข้าใจ


12

เอกสารส่วนใหญ่ที่ฉันได้อ่านภูมิประเทศของพวกเขาในบางรูปแบบหรืออื่น ๆ ในรูปสี่เหลี่ยม ดูสิ่งนี้ได้ที่หน้า 38 :

http://www.slideshare.net/repii/terrain-rendering-in-frostbite-using-procedural-shader-splatting-presentation?from=ss_embed

จุดแรกไม่ขัดแย้งกับสองด้านล่างหรือไม่ คุณจะมีตารางจุดยอดคงที่ 33x33 ต่อใบได้อย่างไรพูดคุยเกี่ยวกับการแบ่งการปรับตัวในต้นไม้รูปสี่เหลี่ยม คำศัพท์มีความสับสนและฉันขอขอบคุณความชัดเจนใด ๆ ในเรื่องนี้!


นี่คือสมมติฐานของฉัน:
วางแพทช์ใหม่ทุกครั้งที่การเปลี่ยนแปลงควอดทรีจะเป็นที่นิยม

http://www.dukecg.net/QuadtreeTerrain.png

  1. Quadtree เริ่มต้นที่ขอบเขตของภูมิประเทศ
  2. ทำซ้ำลงไปที่ตำแหน่งผู้สังเกตการณ์
  3. รุ่นที่ จำกัด (ไม่เกิน 1 ระดับที่แตกต่างระหว่างเพื่อนบ้าน)
  4. เฟรลัมคัด
  5. วางแพทช์ภูมิประเทศในแต่ละใบไม้ที่ได้ซึ่งระดับแตกต่างกัน แต่ความละเอียดจะอยู่ที่ 33x33 เสมอ

คำตอบ:


7

ไม่ไม่ได้จริงๆ หากคุณกำลังคิดที่จะใช้ quadtree สำหรับรายละเอียดระดับภูมิประเทศโหนดที่คุณจัดเก็บมักจะมีโครงสร้างข้อมูลเดียวกัน

ในตัวอย่างของคุณโครงสร้างนั้นเป็น submesh 33 × 33 ที่โหนดจะเก็บ ทั้งนี้ขึ้นอยู่กับระดับของโหนดที่ 33 × 33 ตาข่ายจะปรับ (ปรับ) เพื่อครอบคลุมพื้นที่กว้างขึ้น โหนดที่มีขนาดใหญ่กว่าจะเติมเต็มพื้นที่ที่มีขนาดใหญ่ขึ้น แต่ submesh ของมันยังคงเป็นจุดยอด 33 × 33

หลังจากต้นไม้ถูกสร้างขึ้นคุณสามารถทำ frustum ของคุณเลือกสรรโดยการลงไปที่ต้นไม้และทิ้งโหนดที่ไม่ได้ตัดกัน

สิ่งหนึ่งที่ต้องจำไว้คือคุณอาจจำเป็นต้องจัดการกับรอยแตกที่เกิดขึ้นเมื่อมีโหนดขนาดใหญ่ขึ้นถัดจากโหนดที่เล็กกว่า วิธีง่ายๆวิธีหนึ่งก็คือปรับ (ยุบ) จุดยอดที่ไม่ได้ใช้ร่วมกันระหว่างตาข่าย

สำหรับคุณคำถามอื่นเกี่ยวกับต้นไม้ที่ถูกแทนที่ใช่ ถ้าคุณไม่ต้องการเข้าสู่การจัดการข้อมูลต้นไม้ฉันขอแนะนำให้สร้างสแต็กและล้างออกเมื่อมุมมองเคลื่อนที่อย่างเพียงพอ


ปัญหาของตะเข็บที่มองเห็นได้บนแผ่นกระเบื้องขนาดต่างกันอธิบายไว้ในสไลด์ 39-40 ของงานนำเสนอ เห็นได้ชัดว่าพวกเขาเอา T-junctions โดยใช้ตาข่ายที่เป็นไปได้หนึ่งใน 9 ที่ทางแยก (ดู 40 สไลด์)
bummzack

การปฏิเสธความรับผิดชอบ: IDNRTFA ;-)
bitcruncher

3

"หน่วย" ของภูมิประเทศคือ 33x33 บล็อก หากคุณอยู่ใกล้นั่นคือสิ่งที่คุณจะเห็น หากคุณอยู่ห่างออกไปบล็อกเหล่านี้จะถูกรวมเข้ากับชิ้น LOD ที่ต่ำ

เหตุผลที่พวกเขาใช้ชิ้นคงที่ในระดับต่ำสุด (ใบไม้) เป็นเพราะฮาร์ดแวร์ที่ทันสมัยมากขึ้นเร็วขึ้นด้วยรูปทรงเรขาคณิตคงที่ ระบบเช่น ROAM ที่มีการทำงานจำนวนมากเพื่อลดจำนวนรูปหลายเหลี่ยมในที่สุด


ดังนั้นใบสุดท้ายไม่ใช่ใบปลายแต่ละใบที่เป็นไปได้ (ที่ขนาดกริดที่เล็กที่สุด) มันคือปลายใบสำหรับการวนซ้ำนั้นตามระยะทางดังนั้นบางใบอาจเป็น 16x16 และอันไกลโพ้นอาจเป็น 256x256 (หรืออะไรก็ตาม) นั่นไม่ได้หมายความว่าทุกครั้งที่การเปลี่ยนแปลงควอดทรีต้องมีการวางและปรับขนาดอีกครั้งหรือไม่
จอร์จอาร์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.