Estou no processo de desenvolver um mundo semelhante ao Minecraft, onde o terreno é dividido em voxels. No entanto, eu também gostaria que configurações instáveis de paisagens colapsassem previsivelmente. Por exemplo, uma saliência muito pesada fraturaria e quebraria em voxels de 'alta tensão' , assim como uma formação de pilar com uma base erodida assimetricamente . Eu estava pensando em adicionar um campo 'vetor de estresse' a cada voxel no terreno e fazer o seguinte (pseudocódigo):
foreach voxel in terrain
foreach neighbor in voxel.neighbor_voxels()
if magnitude(voxel.stress - neighbor.stress) > stressThreshold
detach_voxels(voxel, neighbor)
Mas o problema é que não sei como calcular esse estresse individual. Existe algum tipo de algoritmo baseado na FEA especializado em discretizações de voxel que eu possa usar para calcular as tensões por voxel? Ou estou abordando tudo errado e há outra maneira de fazer isso?