วิธีการใช้กลไกของความเครียด / ความเครียดในภูมิประเทศ voxel?


13

ฉันอยู่ในขั้นตอนการพัฒนาโลกที่เหมือน Minecraft ซึ่งภูมิประเทศแบ่งออกเป็น voxels อย่างไรก็ตามฉันยังต้องการให้การกำหนดค่าของภูมิประเทศที่ไม่เสถียรลดลงอย่างไม่แน่นอน ยกตัวอย่างเช่นแขวนที่หนักเกินไปจะแตกหักและทำลายปิดที่ชุ 'ความเครียดสูง'ราวกับจะก่อเสาที่มีฐานการกัดเซาะไม่สมมาตร ฉันกำลังคิดที่จะเพิ่มฟิลด์ 'stress vector' ลงในแต่ละ voxel ในภูมิประเทศและทำสิ่งต่อไปนี้ (pseudocode):

foreach voxel in terrain
    foreach neighbor in voxel.neighbor_voxels()
        if magnitude(voxel.stress - neighbor.stress) > stressThreshold
            detach_voxels(voxel, neighbor)

แต่ปัญหาคือฉันไม่รู้ว่าจะคำนวณความเค้นเหล่านี้อย่างไร มีอัลกอริธึมที่ใช้ FEA แบบพิเศษสำหรับการแยกย่อยด้วย voxel ที่ฉันสามารถใช้ในการคำนวณความเค้นบนพื้นฐานของต่อ voxel หรือไม่? หรือฉันกำลังเข้าใกล้สิ่งนี้ผิดทั้งหมดและมีวิธีอื่นที่จะทำเช่นนี้?

คำตอบ:


1

คุณอาจพิจารณาการค้นหา DFS ของ voxels ที่เชื่อมต่อทั้งหมดและพิจารณา voxel ที่ขึ้นอยู่กับส่วนใหญ่หรือ "แยก" จาก จากนั้นเรียกใช้โค้ดหลอกที่ดีน้อยของคุณ :)

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