Saya sedang dalam proses mengembangkan dunia seperti Minecraft di mana medannya dibagi menjadi voxels. Namun, saya juga ingin konfigurasi lansekap yang tidak stabil runtuh. Sebagai contoh, overhang yang terlalu berat akan retak dan putus pada voxel 'tekanan tinggi' , seperti halnya formasi pilar dengan dasar yang terkikis secara asimetris . Saya sedang berpikir tentang menambahkan bidang 'stres vektor' ke setiap voxel di medan, dan melakukan hal berikut (pseudocode):
foreach voxel in terrain
foreach neighbor in voxel.neighbor_voxels()
if magnitude(voxel.stress - neighbor.stress) > stressThreshold
detach_voxels(voxel, neighbor)
Tetapi masalahnya adalah saya tidak tahu bagaimana cara menghitung tekanan individu ini. Apakah ada semacam algoritma berbasis FEA khusus untuk diskritisasi voxel yang dapat saya gunakan untuk menghitung tekanan pada basis per-voxel? Atau apakah saya mendekati ini semua salah dan ada cara lain untuk melakukan ini?
sumber