Estoy en el proceso de desarrollar un mundo similar a Minecraft donde el terreno se divide en vóxeles. Sin embargo, también me gustaría que las configuraciones inestables de los paisajes colapsen previsiblemente. Por ejemplo, un voladizo demasiado pesado se fracturaría y se rompería en vóxeles de 'alto esfuerzo' , al igual que una formación de pilar con una base erosionada asimétricamente . Estaba pensando en agregar un campo de 'vector de estrés' a cada vóxel en el terreno y hacer lo siguiente (pseudocódigo):
foreach voxel in terrain
foreach neighbor in voxel.neighbor_voxels()
if magnitude(voxel.stress - neighbor.stress) > stressThreshold
detach_voxels(voxel, neighbor)
Pero el problema es que no sé cómo haría para calcular estas tensiones individuales. ¿Existe algún tipo de algoritmo basado en FEA especializado para las discretizaciones de voxel que pueda usar para calcular las tensiones por voxel? ¿O me estoy acercando a todo esto mal y hay alguna otra forma de hacerlo?