Sono in procinto di sviluppare un mondo simile a Minecraft in cui il terreno è diviso in voxel. Tuttavia, vorrei anche che le configurazioni instabili dei paesaggi crollassero prevedibilmente. Ad esempio, uno sbalzo troppo pesante si spezzerebbe e si spezzerebbe in voxel "ad alto stress" , così come una formazione di pilastri con una base erosa asimmetricamente . Stavo pensando di aggiungere un campo "stress vector" a ciascun voxel nel terreno e di fare quanto segue (pseudocodice):
foreach voxel in terrain
foreach neighbor in voxel.neighbor_voxels()
if magnitude(voxel.stress - neighbor.stress) > stressThreshold
detach_voxels(voxel, neighbor)
Ma il problema è che non so come farei per calcolare questi stress individuali. Esiste un qualche tipo di algoritmo basato su FEA specializzato per le discretizzazioni voxel che posso usare per calcolare le sollecitazioni su base per voxel? O mi sto avvicinando a questo tutto sbagliato e c'è qualche altro modo per farlo?